dietary_dsl 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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: