emeals 0.1.3 → 0.1.4

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: 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: