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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ad41b81801c85ca443e980827a5406499051862a
4
- data.tar.gz: b19ab754323d2a0ba736655eded800d933924e1b
3
+ metadata.gz: bb58c2b451ebba6d0ec9a96b33d91f3e467b2930
4
+ data.tar.gz: d98851c53f4a99e70980405269661a806357fe04
5
5
  SHA512:
6
- metadata.gz: 56bc71fba5af55a4b199052b76ffe6035e03195b1c99cb4c74c8d7950e9dc688fb34f647f1d6031fbb8bc81aac6a80e8c07da49b658e8c3b2e17caa8992abfe9
7
- data.tar.gz: b671ffe188c5ddb889980940c51876fbd4090abf2458cb81602e48785740ce46b9e815f2b427916d728ad8058282524f515a68423eb6bbdc7205ee64959cb04b
6
+ metadata.gz: e73448cbe33d56978b16c587cd3f87f0598c139b1dee4ac06e576522ea6031987a592af483e696fcbce2e7cd56d2e606bdd0d594e42c1a8fa8226d05946017e5
7
+ data.tar.gz: 0719f8c27917249157a6b9ecaac63f52da47af9ca2928764847de3e41e33a784678c8794b2b4a794be3f7bd93f699962ce4ac676f91b4742ea4928416428e695
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
- like: 'LIKE'
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[:like])
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)
@@ -44,7 +44,7 @@ module DietaryDsl
44
44
  end
45
45
 
46
46
  def cena(menu)
47
- @menus[:menu] = menu
47
+ @menus[:cena] = menu
48
48
  end
49
49
  end
50
50
  end
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module DietaryDsl
4
- VERSION = '0.4.1'
4
+ VERSION = '0.5.0'
5
5
  end
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.1
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-23 00:00:00.000000000 Z
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: