emeals 0.1.3 → 0.1.4

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: 3178b11e5267513c28c8c178cb50c6d1e0ea0c72
4
- data.tar.gz: 1e9a05ec92c3c5d0fa9f15a424b79249be5532a5
3
+ metadata.gz: 72bbcfc0bf9eb42f2fd070b8145572155aecbe5a
4
+ data.tar.gz: 2898f7171af096a3f1c5a979b50882768c2ff92e
5
5
  SHA512:
6
- metadata.gz: ab3d1c6435c055ea4599d107bff6023f9aba496bb83e3f1a0f65503029a2a1593d046270797d561e0368f343c4de9593c0c07e113f51c9b622d2939d1cb25edd
7
- data.tar.gz: 4283bf336564364166326488a249556c5a6b265165308b0cba948e782d52419d81029ba07753f9717a0f8e1ec9d790ba1b8c18628c8e55f1c901739aa33bcc2c
6
+ metadata.gz: 0164e07c96ff77105126b006722216583e5b5ba68718709006257411bb1f67d10c2b816182d5d37784cbd562ce90b5e01bc93368406d2830b804c375be3f9d0f
7
+ data.tar.gz: e37e6a775c9309d518b9b34d52258ae86b2e1d4fcfcf00e17c3240478c9cbbf668a9003fe9c72546f3afb3c3d9854f34b914e43f950c0beb6cb6e87462d1af46
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'emeals'
4
+
5
+ filename = ARGV.shift
6
+ menu = Emeals::Client.new.parse(filename)
7
+
8
+ puts menu.to_json
@@ -8,9 +8,11 @@ Gem::Specification.new do |gem|
8
8
  gem.version = Emeals::VERSION
9
9
  gem.authors = ["Matt Moriarity"]
10
10
  gem.email = ["matt@mattmoriarity.com"]
11
- gem.description = %q{A client for interpreting eMeals menus.}
11
+ gem.description = %q{A client for reading eMeals menus.}
12
12
  gem.summary = %q{eMeals Client}
13
- gem.homepage = ""
13
+ gem.homepage = "https://github.com/mjm/emeals"
14
+
15
+ gem.add_runtime_dependency "multi_json"
14
16
 
15
17
  gem.files = `git ls-files`.split($/)
16
18
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
@@ -0,0 +1,32 @@
1
+ require 'multi_json'
2
+
3
+ module Emeals::JSON
4
+ def to_json
5
+ MultiJson.dump(meals.map { |meal| meal_json(meal) }, pretty: true)
6
+ end
7
+
8
+ private
9
+
10
+ def meal_json(meal)
11
+ {entree: dish_json(meal.entree), side: dish_json(meal.side)}
12
+ end
13
+
14
+ def dish_json(dish)
15
+ {name: dish.name, ingredients: ingredients_json(dish.ingredients), instructions: dish.instructions.join("\n")}
16
+ end
17
+
18
+ def ingredients_json(ingredients)
19
+ ingredients.map do |ing|
20
+ {amount: format_amount(ing.quantity.amount), unit: ing.quantity.unit, description: ing.description}
21
+ end
22
+ end
23
+
24
+ def format_amount(number)
25
+ num_str = number.to_s
26
+ if num_str.end_with? "/1"
27
+ num_str[0..-3]
28
+ else
29
+ num_str
30
+ end
31
+ end
32
+ end
@@ -1,8 +1,11 @@
1
1
  require 'emeals/meal'
2
+ require 'emeals/json'
2
3
 
3
4
  class Emeals::Menu
4
5
  attr_reader :meals
5
6
 
7
+ include Emeals::JSON
8
+
6
9
  def initialize(meals)
7
10
  @meals = meals
8
11
  end
@@ -1,3 +1,3 @@
1
1
  module Emeals
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  end
metadata CHANGED
@@ -1,19 +1,34 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: emeals
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Moriarity
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-25 00:00:00.000000000 Z
12
- dependencies: []
13
- description: A client for interpreting eMeals menus.
11
+ date: 2013-08-31 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: multi_json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: A client for reading eMeals menus.
14
28
  email:
15
29
  - matt@mattmoriarity.com
16
- executables: []
30
+ executables:
31
+ - menu_to_json
17
32
  extensions: []
18
33
  extra_rdoc_files: []
19
34
  files:
@@ -25,10 +40,12 @@ files:
25
40
  - LICENSE.txt
26
41
  - README.md
27
42
  - Rakefile
43
+ - bin/menu_to_json
28
44
  - emeals.gemspec
29
45
  - lib/emeals.rb
30
46
  - lib/emeals/client.rb
31
47
  - lib/emeals/dish.rb
48
+ - lib/emeals/json.rb
32
49
  - lib/emeals/meal.rb
33
50
  - lib/emeals/menu.rb
34
51
  - lib/emeals/version.rb
@@ -40,7 +57,7 @@ files:
40
57
  - spec/meal_parser_spec.rb
41
58
  - spec/spec_helper.rb
42
59
  - spec/support/templates.rb
43
- homepage: ''
60
+ homepage: https://github.com/mjm/emeals
44
61
  licenses: []
45
62
  metadata: {}
46
63
  post_install_message: