dietary_dsl 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/console +0 -0
- data/lib/dietary_dsl/bedca_api/constants/relations.rb +8 -1
- data/lib/dietary_dsl/bedca_api/food/orm.rb +13 -1
- data/lib/dietary_dsl/dsl/dia.rb +1 -1
- data/lib/dietary_dsl/dsl/menu.rb +17 -3
- data/lib/dietary_dsl/measures/mass.rb +12 -0
- data/lib/dietary_dsl/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb58c2b451ebba6d0ec9a96b33d91f3e467b2930
|
4
|
+
data.tar.gz: d98851c53f4a99e70980405269661a806357fe04
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e73448cbe33d56978b16c587cd3f87f0598c139b1dee4ac06e576522ea6031987a592af483e696fcbce2e7cd56d2e606bdd0d594e42c1a8fa8226d05946017e5
|
7
|
+
data.tar.gz: 0719f8c27917249157a6b9ecaac63f52da47af9ca2928764847de3e41e33a784678c8794b2b4a794be3f7bd93f699962ce4ac676f91b4742ea4928416428e695
|
data/bin/console
CHANGED
File without changes
|
@@ -4,8 +4,15 @@ module DietaryDsl
|
|
4
4
|
# Módulo que agrupa las constantes y funciones útiles respecto a la base de datos BEDCA
|
5
5
|
module BEDCA
|
6
6
|
RELATIONS = {
|
7
|
+
not_equal: 'NOTEQUAL',
|
8
|
+
more: 'MORE',
|
9
|
+
like: 'LIKE',
|
7
10
|
equal: 'EQUAL',
|
8
|
-
|
11
|
+
lessi: 'LESSI',
|
12
|
+
not_pattern: 'NOTPATTERN',
|
13
|
+
less: 'LESS',
|
14
|
+
begin_with: 'BEGINW',
|
15
|
+
morei: 'MOREI'
|
9
16
|
}.freeze
|
10
17
|
end
|
11
18
|
end
|
@@ -67,6 +67,8 @@ module DietaryDsl
|
|
67
67
|
data.each do |(key), value|
|
68
68
|
where(b, key, relation, value)
|
69
69
|
end
|
70
|
+
order(b, :nombre)
|
71
|
+
yield b if block_given?
|
70
72
|
end
|
71
73
|
|
72
74
|
data = sanitize_response request xml
|
@@ -75,6 +77,12 @@ module DietaryDsl
|
|
75
77
|
Food.new(data)
|
76
78
|
end
|
77
79
|
|
80
|
+
def self.order(b, field, direction = 'ASC')
|
81
|
+
b.order(ordtype: direction) do
|
82
|
+
b.atribute3(name: ATTRIBUTES.key(field))
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
78
86
|
def self.find(id)
|
79
87
|
find_by(id: id)
|
80
88
|
end
|
@@ -84,7 +92,11 @@ module DietaryDsl
|
|
84
92
|
end
|
85
93
|
|
86
94
|
def self.find_by_like(data)
|
87
|
-
find_by_and_relation(data, RELATIONS[:
|
95
|
+
find_by_and_relation(data, RELATIONS[:equal]) do |b|
|
96
|
+
data.each do |(key), value|
|
97
|
+
where(b, key, RELATIONS[:begin_with], value[0])
|
98
|
+
end
|
99
|
+
end
|
88
100
|
end
|
89
101
|
|
90
102
|
def initialize(values)
|
data/lib/dietary_dsl/dsl/dia.rb
CHANGED
data/lib/dietary_dsl/dsl/menu.rb
CHANGED
@@ -5,13 +5,14 @@ require 'dietary_dsl/dsl/alimento'
|
|
5
5
|
module DietaryDsl
|
6
6
|
# Clase que representa un menú. Un menú se compone de distintos platos (entrantes, primeros platos, postres...)
|
7
7
|
class Menu
|
8
|
-
attr_reader :title
|
8
|
+
attr_reader :title, :racion
|
9
9
|
|
10
10
|
include Enumerable
|
11
11
|
|
12
12
|
def initialize(title, &block)
|
13
13
|
@title = title
|
14
14
|
@platos = []
|
15
|
+
@racion = nil
|
15
16
|
instance_eval(&block)
|
16
17
|
end
|
17
18
|
|
@@ -23,9 +24,10 @@ module DietaryDsl
|
|
23
24
|
@platos.each { |i| yield i }
|
24
25
|
end
|
25
26
|
|
26
|
-
def plato(datos)
|
27
|
+
def plato(datos, options = {})
|
27
28
|
return plato_single(datos) if datos.is_a?(Hash)
|
28
29
|
@platos = @platos.push datos
|
30
|
+
@racion = options[:racion]
|
29
31
|
end
|
30
32
|
|
31
33
|
def plato_single(datos)
|
@@ -33,9 +35,21 @@ module DietaryDsl
|
|
33
35
|
end
|
34
36
|
|
35
37
|
def kcal
|
36
|
-
@platos.inject(0) do |sum, plato|
|
38
|
+
kilocalorias = @platos.inject(0) do |sum, plato|
|
37
39
|
sum + plato.kcal
|
38
40
|
end
|
41
|
+
return racionar(kilocalorias) unless @racion.nil?
|
42
|
+
kilocalorias
|
43
|
+
end
|
44
|
+
|
45
|
+
def masa
|
46
|
+
@platos.inject(0) do |sum, plato|
|
47
|
+
sum + plato.masa.to.g
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def racionar(kilocalorias)
|
52
|
+
(@racion.to.g * kilocalorias) / masa
|
39
53
|
end
|
40
54
|
end
|
41
55
|
end
|
@@ -21,6 +21,10 @@ module DietaryDsl
|
|
21
21
|
DietaryDsl::Masa.new(number)
|
22
22
|
end
|
23
23
|
|
24
|
+
def self.rodaja(number)
|
25
|
+
DietaryDsl::Masa.new(number * 20)
|
26
|
+
end
|
27
|
+
|
24
28
|
# Métodos para heredar
|
25
29
|
|
26
30
|
def big
|
@@ -90,4 +94,12 @@ class Numeric
|
|
90
94
|
def kilogramos
|
91
95
|
kg
|
92
96
|
end
|
97
|
+
|
98
|
+
def rodaja
|
99
|
+
kg
|
100
|
+
end
|
101
|
+
|
102
|
+
def rodajas
|
103
|
+
kg
|
104
|
+
end
|
93
105
|
end
|
data/lib/dietary_dsl/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dietary_dsl
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Ramos
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-06-
|
11
|
+
date: 2017-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: builder
|
@@ -164,6 +164,20 @@ dependencies:
|
|
164
164
|
- - "~>"
|
165
165
|
- !ruby/object:Gem::Version
|
166
166
|
version: '3.0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: wdm
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0.1'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0.1'
|
167
181
|
description: Esta gema sirve para realizar una representación de menús dietéticos
|
168
182
|
usando un lenguaje de dominio específico.
|
169
183
|
email:
|