openmenu 0.1.6 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest.txt CHANGED
@@ -6,4 +6,6 @@ Rakefile
6
6
  lib/open_menu.rb
7
7
  lib/openmenu.rb
8
8
  test/sample.xml
9
+ test/sample15.xml
10
+ test/sample16.xml
9
11
  test/test_openmenu.rb
data/Rakefile CHANGED
@@ -3,6 +3,7 @@
3
3
  require 'rubygems'
4
4
  require 'hoe'
5
5
 
6
+ Hoe.plugin :isolate
6
7
  Hoe.plugin :git
7
8
  Hoe.plugin :minitest
8
9
 
@@ -10,6 +11,10 @@ Hoe.spec 'openmenu' do
10
11
  developer('Matt Smith', 'matts@nearapogee.com')
11
12
  dependency('nokogiri-happymapper', '~>0.3.6')
12
13
 
14
+ dependency('isolate', '~>3.2.1', :dev)
15
+ dependency('hoe-git', '~>1.4.1', :dev)
16
+
17
+
13
18
  # self.rubyforge_name = 'openmenux' # if different than 'openmenu'
14
19
  end
15
20
 
data/lib/open_menu.rb CHANGED
@@ -1,11 +1,19 @@
1
1
  class OpenMenu
2
- VERSION = '0.1.6'
2
+ VERSION = '0.2.0'
3
3
  include HappyMapper
4
4
  tag 'omf'
5
5
 
6
6
  attribute :uuid, String
7
7
  attribute :date_created, String
8
8
  attribute :accuracy, Integer
9
+ attribute :private, String
10
+
11
+ # Public: Test if this OpenMenu is private
12
+ #
13
+ # Returns true if private.
14
+ def private?
15
+ private == 'private'
16
+ end
9
17
 
10
18
  element :version, Float, :deep => true
11
19
 
@@ -14,6 +22,7 @@ class OpenMenu
14
22
  element :full_description, String, :deep => true
15
23
  element :business_type, String, :deep => true
16
24
  element :location_id, String, :deep => true
25
+ element :mobile, Integer, :deep => true
17
26
  element :longitude, String, :deep => true
18
27
  element :latitude, String, :deep => true
19
28
  element :utc_offset, Float, :deep => true
@@ -175,14 +184,16 @@ class OpenMenu
175
184
  tag 'menu'
176
185
 
177
186
  attribute :name, String
178
- attribute :uid, Integer
187
+ attribute :uid, String
179
188
  attribute :currency, String, :tag => 'currency_symbol'
189
+ attribute :language, String
180
190
  attribute :disabled, String
181
191
  def disabled?
182
192
  disabled == 'disabled'
183
193
  end
184
194
 
185
195
  element :description, String, :tag => "menu_description"
196
+ element :note, String, :tag => "menu_note"
186
197
 
187
198
  class Duration
188
199
  include HappyMapper
@@ -199,13 +210,14 @@ class OpenMenu
199
210
  tag 'menu_group'
200
211
 
201
212
  attribute :name, String
202
- attribute :uid, Integer
213
+ attribute :uid, String
203
214
  attribute :disabled, String
204
215
  def disabled?
205
216
  disabled == 'disabled'
206
217
  end
207
218
 
208
219
  element :description, String, :tag => 'menu_group_description'
220
+ element :note, String, :tag => "menu_group_note"
209
221
 
210
222
  class Option
211
223
  include HappyMapper
@@ -233,8 +245,8 @@ class OpenMenu
233
245
  include HappyMapper
234
246
  tag 'menu_item'
235
247
 
236
- attribute :uid, Integer
237
- %w(disabled special vegetarian vegan kosher halal).each do |attr|
248
+ attribute :uid, String
249
+ %w(disabled special vegetarian vegan kosher halal gluten_free).each do |attr|
238
250
  attribute attr.to_s, String
239
251
  define_method("#{attr}?".to_s) { self.send(attr) == attr }
240
252
  end
data/test/sample15.xml ADDED
@@ -0,0 +1,293 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <omf uuid="sample" date_created="2011-08-19" accuracy="1">
3
+ <openmenu>
4
+ <version>1.5</version>
5
+ <crosswalks>
6
+ </crosswalks>
7
+ </openmenu>
8
+ <restaurant_info>
9
+ <restaurant_name>My Restaurant</restaurant_name>
10
+ <business_type>independent</business_type>
11
+ <brief_description>Sample restaurant in the OpenMenu Format standard</brief_description>
12
+ <full_description>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vestibulum ac libero neque, quis laoreet dolor. Proin vitae erat lacus.
13
+
14
+ Aliquam sed lectus ligula, sed pharetra tortor. Nam rutrum ipsum ut quam vestibulum vestibulum. Ut posuere rhoncus quam, id semper ligula bibendum quis. Vestibulum accumsan, neque id tristique accumsan, risus diam vehicula massa, at facilisis ligula tortor et elit. Nulla facilisi. Mauris ultrices volutpat lorem eu convallis. </full_description>
15
+ <location_id>x123z</location_id>
16
+ <longitude>-81.039833</longitude>
17
+ <latitude>33.999458</latitude>
18
+ <utc_offset>-5.00</utc_offset>
19
+ <address_1>803 Gervais Street</address_1>
20
+ <address_2></address_2>
21
+ <city_town>Columbia</city_town>
22
+ <state_province>SC</state_province>
23
+ <postal_code>29202</postal_code>
24
+ <country>US</country>
25
+ <region_area></region_area>
26
+ <phone>(555) 555-5555</phone>
27
+ <fax>(555) 888-8888</fax>
28
+ <website_url>http://openmenu.com/</website_url>
29
+ <omf_file_url>http://openmenu.com/menu/sample</omf_file_url>
30
+ <logo_urls>
31
+ <logo_url type="Thumbnail" media="All">http://openmenu.com/images/ico-32-openmenu.png</logo_url>
32
+ <logo_url type="Full" media="All">http://openmenu.com/images/sample_logo_full.png</logo_url>
33
+ </logo_urls>
34
+ <environment>
35
+ <seating_qty></seating_qty>
36
+ <max_group_size>12</max_group_size>
37
+ <age_level_preference></age_level_preference>
38
+ <smoking_allowed>0</smoking_allowed>
39
+ <takeout_available>1</takeout_available>
40
+ <delivery_available radius="" fee=""></delivery_available>
41
+ <catering_available></catering_available>
42
+ <reservations></reservations>
43
+ <alcohol_type></alcohol_type>
44
+ <music_type></music_type>
45
+ <pets_allowed>0</pets_allowed>
46
+ <wheelchair_accessible></wheelchair_accessible>
47
+ <dress_code>casual</dress_code>
48
+ <cuisine_type_primary>Steakhouse</cuisine_type_primary>
49
+ <cuisine_type_secondary></cuisine_type_secondary>
50
+ <seating_locations>
51
+ <seating_location>outdoor</seating_location>
52
+ <seating_location>indoor</seating_location>
53
+ </seating_locations>
54
+ <accepted_currencies>
55
+ <accepted_currency>USD</accepted_currency>
56
+ </accepted_currencies>
57
+ <online_reservations>
58
+ </online_reservations>
59
+ <online_ordering>
60
+ </online_ordering>
61
+ <operating_days>
62
+ <operating_day>
63
+ <day_of_week>1</day_of_week>
64
+ <open_time>11:00</open_time>
65
+ <close_time>22:00</close_time>
66
+ </operating_day>
67
+ <operating_day>
68
+ <day_of_week>2</day_of_week>
69
+ <open_time>11:00</open_time>
70
+ <close_time>22:00</close_time>
71
+ </operating_day>
72
+ <operating_day>
73
+ <day_of_week>3</day_of_week>
74
+ <open_time>11:00</open_time>
75
+ <close_time>22:00</close_time>
76
+ </operating_day>
77
+ <operating_day>
78
+ <day_of_week>4</day_of_week>
79
+ <open_time>11:00</open_time>
80
+ <close_time>22:00</close_time>
81
+ </operating_day>
82
+ <operating_day>
83
+ <day_of_week>5</day_of_week>
84
+ <open_time>11:00</open_time>
85
+ <close_time>22:00</close_time>
86
+ </operating_day>
87
+ <operating_day>
88
+ <day_of_week>6</day_of_week>
89
+ <open_time>11:00</open_time>
90
+ <close_time>22:00</close_time>
91
+ </operating_day>
92
+ <operating_day>
93
+ <day_of_week>7</day_of_week>
94
+ <open_time></open_time>
95
+ <close_time></close_time>
96
+ </operating_day>
97
+ </operating_days>
98
+ <parking></parking>
99
+ </environment>
100
+ <contacts>
101
+ <contact type="primary">
102
+ <first_name>Chris</first_name>
103
+ <last_name>Hanscom</last_name>
104
+ <email>menu@openmenu.com</email>
105
+ </contact>
106
+ </contacts>
107
+ <parent_company>
108
+ <parent_company_name></parent_company_name>
109
+ <parent_company_website></parent_company_website>
110
+ <address_1></address_1>
111
+ <address_2></address_2>
112
+ <city_town></city_town>
113
+ <state_province></state_province>
114
+ <postal_code></postal_code>
115
+ <country></country>
116
+ <phone></phone>
117
+ <fax></fax>
118
+ </parent_company>
119
+ </restaurant_info>
120
+ <menus>
121
+ <menu name="Main Menu" currency_symbol="USD" uid="25">
122
+ <menu_description></menu_description>
123
+ <menu_duration>
124
+ <menu_duration_name>lunch-dinner</menu_duration_name>
125
+ <menu_duration_time_start>11:00</menu_duration_time_start>
126
+ <menu_duration_time_end>22:00</menu_duration_time_end>
127
+ </menu_duration>
128
+ <menu_groups>
129
+ <menu_group name="Appetizers" uid="2">
130
+ <menu_group_description></menu_group_description>
131
+ <menu_items>
132
+ <menu_item>
133
+ <menu_item_name>Coconut Shrimp</menu_item_name>
134
+ <menu_item_description>Crispy Coconut Shrimp &amp; tangy mango lime sauce</menu_item_description>
135
+ <menu_item_price>7.95</menu_item_price>
136
+ <menu_item_calories>350</menu_item_calories>
137
+ <menu_item_image_urls>
138
+ <menu_item_image_url width="" height="" type="Thumbnail" media="Web">http://openmenu.com/images/coconut_shrimp.jpg</menu_item_image_url>
139
+ </menu_item_image_urls>
140
+ </menu_item>
141
+ <menu_item>
142
+ <menu_item_name>Tempura Onion Rings</menu_item_name>
143
+ <menu_item_description>With a honey Thai sauce</menu_item_description>
144
+ <menu_item_price>7.95</menu_item_price>
145
+ <menu_item_heat_index>1</menu_item_heat_index>
146
+ </menu_item>
147
+ <menu_item special="special">
148
+ <menu_item_name>Calamari</menu_item_name>
149
+ <menu_item_description>Our calamari is lightly fried and tossed with a sweet and spicy Asian mango sauce.</menu_item_description>
150
+ <menu_item_price></menu_item_price>
151
+ <menu_item_heat_index>2</menu_item_heat_index>
152
+ <menu_item_sizes>
153
+ <menu_item_size>
154
+ <menu_item_size_name>small</menu_item_size_name>
155
+ <menu_item_size_description></menu_item_size_description>
156
+ <menu_item_size_price>6.95</menu_item_size_price>
157
+ </menu_item_size>
158
+ <menu_item_size>
159
+ <menu_item_size_name>large</menu_item_size_name>
160
+ <menu_item_size_description></menu_item_size_description>
161
+ <menu_item_size_price>8.95</menu_item_size_price>
162
+ </menu_item_size>
163
+ </menu_item_sizes>
164
+ </menu_item>
165
+ </menu_items>
166
+ </menu_group>
167
+ <menu_group name="Salads" uid="3">
168
+ <menu_group_description></menu_group_description>
169
+ <menu_group_options>
170
+ <menu_group_option name="Dressings">
171
+ <menu_group_option_information></menu_group_option_information>
172
+ <menu_group_option_item>
173
+ <menu_group_option_name>Italian</menu_group_option_name>
174
+ <menu_group_option_additional_cost>1.00</menu_group_option_additional_cost>
175
+ </menu_group_option_item>
176
+ <menu_group_option_item>
177
+ <menu_group_option_name>French</menu_group_option_name>
178
+ <menu_group_option_additional_cost>1.25</menu_group_option_additional_cost>
179
+ </menu_group_option_item>
180
+ <menu_group_option_item>
181
+ <menu_group_option_name>Thousand Island</menu_group_option_name>
182
+ <menu_group_option_additional_cost>1.00</menu_group_option_additional_cost>
183
+ </menu_group_option_item>
184
+ </menu_group_option>
185
+ </menu_group_options>
186
+ <menu_items>
187
+ <menu_item>
188
+ <menu_item_name>Chef Salad</menu_item_name>
189
+ <menu_item_description>Best chef salad in a 20 mile radius</menu_item_description>
190
+ <menu_item_price></menu_item_price>
191
+ <menu_item_sizes>
192
+ <menu_item_size>
193
+ <menu_item_size_name>half</menu_item_size_name>
194
+ <menu_item_size_description></menu_item_size_description>
195
+ <menu_item_size_price>6.95</menu_item_size_price>
196
+ </menu_item_size>
197
+ <menu_item_size>
198
+ <menu_item_size_name>full</menu_item_size_name>
199
+ <menu_item_size_description></menu_item_size_description>
200
+ <menu_item_size_price>8.95</menu_item_size_price>
201
+ </menu_item_size>
202
+ </menu_item_sizes>
203
+ </menu_item>
204
+ <menu_item special="special">
205
+ <menu_item_name>Cobb Salad</menu_item_name>
206
+ <menu_item_description>Iceberg lettuce topped with turkey, ham, hard cooked eggs, avocado, diced tomatoes, bacon, bleu cheese crumbles and black olives</menu_item_description>
207
+ <menu_item_price></menu_item_price>
208
+ <menu_item_sizes>
209
+ <menu_item_size>
210
+ <menu_item_size_name>half</menu_item_size_name>
211
+ <menu_item_size_description></menu_item_size_description>
212
+ <menu_item_size_price>6.95</menu_item_size_price>
213
+ </menu_item_size>
214
+ <menu_item_size>
215
+ <menu_item_size_name>full</menu_item_size_name>
216
+ <menu_item_size_description></menu_item_size_description>
217
+ <menu_item_size_price>8.95</menu_item_size_price>
218
+ </menu_item_size>
219
+ </menu_item_sizes>
220
+ </menu_item>
221
+ <menu_item>
222
+ <menu_item_name>Ceasar Salad</menu_item_name>
223
+ <menu_item_description>Fresh romain lettuce with aged parmesan reggiano</menu_item_description>
224
+ <menu_item_price>9.95</menu_item_price>
225
+ </menu_item>
226
+ <menu_item vegetarian="vegetarian">
227
+ <menu_item_name>Garden Salad</menu_item_name>
228
+ <menu_item_description>Filled with lettuce, tomatoes, carrots, radishes, cucumbers and shredded cheese</menu_item_description>
229
+ <menu_item_price>8.95</menu_item_price>
230
+ </menu_item>
231
+ </menu_items>
232
+ </menu_group>
233
+ <menu_group name="Entrees" uid="1">
234
+ <menu_group_description></menu_group_description>
235
+ <menu_items>
236
+ <menu_item uid="1">
237
+ <menu_item_name>Rack of Lamb</menu_item_name>
238
+ <menu_item_description>Coffee Citrus Crusted Lamb </menu_item_description>
239
+ <menu_item_price>22.95</menu_item_price>
240
+ </menu_item>
241
+ <menu_item uid="2">
242
+ <menu_item_name>Soft Shell Crabs</menu_item_name>
243
+ <menu_item_description>Almond encrusted, seasoned and sauteed in butter to a crispy brown</menu_item_description>
244
+ <menu_item_price>19.95</menu_item_price>
245
+ <menu_item_allergy_information allergens="shellfish, nuts">Reference allergens for allergy information</menu_item_allergy_information>
246
+ </menu_item>
247
+ <menu_item uid="3" special="special">
248
+ <menu_item_name>Cioppino</menu_item_name>
249
+ <menu_item_description>Fresh fish, scallops, mussels, calamari, and shrimp in a tomato-garlic saffron broth over linguini</menu_item_description>
250
+ <menu_item_price>24.95</menu_item_price>
251
+ </menu_item>
252
+ </menu_items>
253
+ </menu_group>
254
+ </menu_groups>
255
+ </menu>
256
+ <menu name="Late Night Menu" currency_symbol="USD" uid="35">
257
+ <menu_description></menu_description>
258
+ <menu_duration>
259
+ <menu_duration_name>late-night</menu_duration_name>
260
+ <menu_duration_time_start>20:00</menu_duration_time_start>
261
+ <menu_duration_time_end>23:00</menu_duration_time_end>
262
+ </menu_duration>
263
+ <menu_groups>
264
+ <menu_group name="Bar Food" uid="1">
265
+ <menu_group_description></menu_group_description>
266
+ <menu_items>
267
+ <menu_item>
268
+ <menu_item_name>Cheese Sticks</menu_item_name>
269
+ <menu_item_description>Cheese sticks with marinara sauce</menu_item_description>
270
+ <menu_item_price>6.95</menu_item_price>
271
+ </menu_item>
272
+ <menu_item>
273
+ <menu_item_name>Coconut Shrimp</menu_item_name>
274
+ <menu_item_description>Crispy Coconut Shrimp</menu_item_description>
275
+ <menu_item_price>7.95</menu_item_price>
276
+ <menu_item_calories>350</menu_item_calories>
277
+ </menu_item>
278
+ <menu_item>
279
+ <menu_item_name>Tempura Onion Rings</menu_item_name>
280
+ <menu_item_description>With a honey Thai sauce</menu_item_description>
281
+ <menu_item_price>7.95</menu_item_price>
282
+ </menu_item>
283
+ <menu_item>
284
+ <menu_item_name>Calamari</menu_item_name>
285
+ <menu_item_description>Our calamari is lightly fried and tossed with a sweet and spicy Asian mango sauce.</menu_item_description>
286
+ <menu_item_price>8.85</menu_item_price>
287
+ </menu_item>
288
+ </menu_items>
289
+ </menu_group>
290
+ </menu_groups>
291
+ </menu>
292
+ </menus>
293
+ </omf>
data/test/sample16.xml ADDED
@@ -0,0 +1,293 @@
1
+ <?xml version="1.0" encoding="UTF-8" ?>
2
+ <omf uuid="sample" date_created="2011-08-19" accuracy="1">
3
+ <openmenu>
4
+ <version>1.5</version>
5
+ <crosswalks>
6
+ </crosswalks>
7
+ </openmenu>
8
+ <restaurant_info>
9
+ <restaurant_name>My Restaurant</restaurant_name>
10
+ <business_type>independent</business_type>
11
+ <brief_description>Sample restaurant in the OpenMenu Format standard</brief_description>
12
+ <full_description>Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vestibulum ac libero neque, quis laoreet dolor. Proin vitae erat lacus.
13
+
14
+ Aliquam sed lectus ligula, sed pharetra tortor. Nam rutrum ipsum ut quam vestibulum vestibulum. Ut posuere rhoncus quam, id semper ligula bibendum quis. Vestibulum accumsan, neque id tristique accumsan, risus diam vehicula massa, at facilisis ligula tortor et elit. Nulla facilisi. Mauris ultrices volutpat lorem eu convallis. </full_description>
15
+ <location_id>x123z</location_id>
16
+ <longitude>-81.039833</longitude>
17
+ <latitude>33.999458</latitude>
18
+ <utc_offset>-5.00</utc_offset>
19
+ <address_1>803 Gervais Street</address_1>
20
+ <address_2></address_2>
21
+ <city_town>Columbia</city_town>
22
+ <state_province>SC</state_province>
23
+ <postal_code>29202</postal_code>
24
+ <country>US</country>
25
+ <region_area></region_area>
26
+ <phone>(555) 555-5555</phone>
27
+ <fax>(555) 888-8888</fax>
28
+ <website_url>http://openmenu.com/</website_url>
29
+ <omf_file_url>http://openmenu.com/menu/sample</omf_file_url>
30
+ <logo_urls>
31
+ <logo_url type="Thumbnail" media="All">http://openmenu.com/images/ico-32-openmenu.png</logo_url>
32
+ <logo_url type="Full" media="All">http://openmenu.com/images/sample_logo_full.png</logo_url>
33
+ </logo_urls>
34
+ <environment>
35
+ <seating_qty></seating_qty>
36
+ <max_group_size>12</max_group_size>
37
+ <age_level_preference></age_level_preference>
38
+ <smoking_allowed>0</smoking_allowed>
39
+ <takeout_available>1</takeout_available>
40
+ <delivery_available radius="" fee=""></delivery_available>
41
+ <catering_available></catering_available>
42
+ <reservations></reservations>
43
+ <alcohol_type></alcohol_type>
44
+ <music_type></music_type>
45
+ <pets_allowed>0</pets_allowed>
46
+ <wheelchair_accessible></wheelchair_accessible>
47
+ <dress_code>casual</dress_code>
48
+ <cuisine_type_primary>Steakhouse</cuisine_type_primary>
49
+ <cuisine_type_secondary></cuisine_type_secondary>
50
+ <seating_locations>
51
+ <seating_location>outdoor</seating_location>
52
+ <seating_location>indoor</seating_location>
53
+ </seating_locations>
54
+ <accepted_currencies>
55
+ <accepted_currency>USD</accepted_currency>
56
+ </accepted_currencies>
57
+ <online_reservations>
58
+ </online_reservations>
59
+ <online_ordering>
60
+ </online_ordering>
61
+ <operating_days>
62
+ <operating_day>
63
+ <day_of_week>1</day_of_week>
64
+ <open_time>11:00</open_time>
65
+ <close_time>22:00</close_time>
66
+ </operating_day>
67
+ <operating_day>
68
+ <day_of_week>2</day_of_week>
69
+ <open_time>11:00</open_time>
70
+ <close_time>22:00</close_time>
71
+ </operating_day>
72
+ <operating_day>
73
+ <day_of_week>3</day_of_week>
74
+ <open_time>11:00</open_time>
75
+ <close_time>22:00</close_time>
76
+ </operating_day>
77
+ <operating_day>
78
+ <day_of_week>4</day_of_week>
79
+ <open_time>11:00</open_time>
80
+ <close_time>22:00</close_time>
81
+ </operating_day>
82
+ <operating_day>
83
+ <day_of_week>5</day_of_week>
84
+ <open_time>11:00</open_time>
85
+ <close_time>22:00</close_time>
86
+ </operating_day>
87
+ <operating_day>
88
+ <day_of_week>6</day_of_week>
89
+ <open_time>11:00</open_time>
90
+ <close_time>22:00</close_time>
91
+ </operating_day>
92
+ <operating_day>
93
+ <day_of_week>7</day_of_week>
94
+ <open_time></open_time>
95
+ <close_time></close_time>
96
+ </operating_day>
97
+ </operating_days>
98
+ <parking></parking>
99
+ </environment>
100
+ <contacts>
101
+ <contact type="primary">
102
+ <first_name>Chris</first_name>
103
+ <last_name>Hanscom</last_name>
104
+ <email>menu@openmenu.com</email>
105
+ </contact>
106
+ </contacts>
107
+ <parent_company>
108
+ <parent_company_name></parent_company_name>
109
+ <parent_company_website></parent_company_website>
110
+ <address_1></address_1>
111
+ <address_2></address_2>
112
+ <city_town></city_town>
113
+ <state_province></state_province>
114
+ <postal_code></postal_code>
115
+ <country></country>
116
+ <phone></phone>
117
+ <fax></fax>
118
+ </parent_company>
119
+ </restaurant_info>
120
+ <menus>
121
+ <menu name="Main Menu" currency_symbol="USD" uid="25">
122
+ <menu_description></menu_description>
123
+ <menu_duration>
124
+ <menu_duration_name>lunch-dinner</menu_duration_name>
125
+ <menu_duration_time_start>11:00</menu_duration_time_start>
126
+ <menu_duration_time_end>22:00</menu_duration_time_end>
127
+ </menu_duration>
128
+ <menu_groups>
129
+ <menu_group name="Appetizers" uid="2">
130
+ <menu_group_description></menu_group_description>
131
+ <menu_items>
132
+ <menu_item>
133
+ <menu_item_name>Coconut Shrimp</menu_item_name>
134
+ <menu_item_description>Crispy Coconut Shrimp &amp; tangy mango lime sauce</menu_item_description>
135
+ <menu_item_price>7.95</menu_item_price>
136
+ <menu_item_calories>350</menu_item_calories>
137
+ <menu_item_image_urls>
138
+ <menu_item_image_url width="" height="" type="Thumbnail" media="Web">http://openmenu.com/images/coconut_shrimp.jpg</menu_item_image_url>
139
+ </menu_item_image_urls>
140
+ </menu_item>
141
+ <menu_item>
142
+ <menu_item_name>Tempura Onion Rings</menu_item_name>
143
+ <menu_item_description>With a honey Thai sauce</menu_item_description>
144
+ <menu_item_price>7.95</menu_item_price>
145
+ <menu_item_heat_index>1</menu_item_heat_index>
146
+ </menu_item>
147
+ <menu_item special="special">
148
+ <menu_item_name>Calamari</menu_item_name>
149
+ <menu_item_description>Our calamari is lightly fried and tossed with a sweet and spicy Asian mango sauce.</menu_item_description>
150
+ <menu_item_price></menu_item_price>
151
+ <menu_item_heat_index>2</menu_item_heat_index>
152
+ <menu_item_sizes>
153
+ <menu_item_size>
154
+ <menu_item_size_name>small</menu_item_size_name>
155
+ <menu_item_size_description></menu_item_size_description>
156
+ <menu_item_size_price>6.95</menu_item_size_price>
157
+ </menu_item_size>
158
+ <menu_item_size>
159
+ <menu_item_size_name>large</menu_item_size_name>
160
+ <menu_item_size_description></menu_item_size_description>
161
+ <menu_item_size_price>8.95</menu_item_size_price>
162
+ </menu_item_size>
163
+ </menu_item_sizes>
164
+ </menu_item>
165
+ </menu_items>
166
+ </menu_group>
167
+ <menu_group name="Salads" uid="3">
168
+ <menu_group_description></menu_group_description>
169
+ <menu_group_options>
170
+ <menu_group_option name="Dressings">
171
+ <menu_group_option_information></menu_group_option_information>
172
+ <menu_group_option_item>
173
+ <menu_group_option_name>Italian</menu_group_option_name>
174
+ <menu_group_option_additional_cost>1.00</menu_group_option_additional_cost>
175
+ </menu_group_option_item>
176
+ <menu_group_option_item>
177
+ <menu_group_option_name>French</menu_group_option_name>
178
+ <menu_group_option_additional_cost>1.25</menu_group_option_additional_cost>
179
+ </menu_group_option_item>
180
+ <menu_group_option_item>
181
+ <menu_group_option_name>Thousand Island</menu_group_option_name>
182
+ <menu_group_option_additional_cost>1.00</menu_group_option_additional_cost>
183
+ </menu_group_option_item>
184
+ </menu_group_option>
185
+ </menu_group_options>
186
+ <menu_items>
187
+ <menu_item>
188
+ <menu_item_name>Chef Salad</menu_item_name>
189
+ <menu_item_description>Best chef salad in a 20 mile radius</menu_item_description>
190
+ <menu_item_price></menu_item_price>
191
+ <menu_item_sizes>
192
+ <menu_item_size>
193
+ <menu_item_size_name>half</menu_item_size_name>
194
+ <menu_item_size_description></menu_item_size_description>
195
+ <menu_item_size_price>6.95</menu_item_size_price>
196
+ </menu_item_size>
197
+ <menu_item_size>
198
+ <menu_item_size_name>full</menu_item_size_name>
199
+ <menu_item_size_description></menu_item_size_description>
200
+ <menu_item_size_price>8.95</menu_item_size_price>
201
+ </menu_item_size>
202
+ </menu_item_sizes>
203
+ </menu_item>
204
+ <menu_item special="special">
205
+ <menu_item_name>Cobb Salad</menu_item_name>
206
+ <menu_item_description>Iceberg lettuce topped with turkey, ham, hard cooked eggs, avocado, diced tomatoes, bacon, bleu cheese crumbles and black olives</menu_item_description>
207
+ <menu_item_price></menu_item_price>
208
+ <menu_item_sizes>
209
+ <menu_item_size>
210
+ <menu_item_size_name>half</menu_item_size_name>
211
+ <menu_item_size_description></menu_item_size_description>
212
+ <menu_item_size_price>6.95</menu_item_size_price>
213
+ </menu_item_size>
214
+ <menu_item_size>
215
+ <menu_item_size_name>full</menu_item_size_name>
216
+ <menu_item_size_description></menu_item_size_description>
217
+ <menu_item_size_price>8.95</menu_item_size_price>
218
+ </menu_item_size>
219
+ </menu_item_sizes>
220
+ </menu_item>
221
+ <menu_item>
222
+ <menu_item_name>Ceasar Salad</menu_item_name>
223
+ <menu_item_description>Fresh romain lettuce with aged parmesan reggiano</menu_item_description>
224
+ <menu_item_price>9.95</menu_item_price>
225
+ </menu_item>
226
+ <menu_item vegetarian="vegetarian">
227
+ <menu_item_name>Garden Salad</menu_item_name>
228
+ <menu_item_description>Filled with lettuce, tomatoes, carrots, radishes, cucumbers and shredded cheese</menu_item_description>
229
+ <menu_item_price>8.95</menu_item_price>
230
+ </menu_item>
231
+ </menu_items>
232
+ </menu_group>
233
+ <menu_group name="Entrees" uid="1">
234
+ <menu_group_description></menu_group_description>
235
+ <menu_items>
236
+ <menu_item uid="1">
237
+ <menu_item_name>Rack of Lamb</menu_item_name>
238
+ <menu_item_description>Coffee Citrus Crusted Lamb </menu_item_description>
239
+ <menu_item_price>22.95</menu_item_price>
240
+ </menu_item>
241
+ <menu_item uid="2">
242
+ <menu_item_name>Soft Shell Crabs</menu_item_name>
243
+ <menu_item_description>Almond encrusted, seasoned and sauteed in butter to a crispy brown</menu_item_description>
244
+ <menu_item_price>19.95</menu_item_price>
245
+ <menu_item_allergy_information allergens="shellfish, nuts">Reference allergens for allergy information</menu_item_allergy_information>
246
+ </menu_item>
247
+ <menu_item uid="3" special="special">
248
+ <menu_item_name>Cioppino</menu_item_name>
249
+ <menu_item_description>Fresh fish, scallops, mussels, calamari, and shrimp in a tomato-garlic saffron broth over linguini</menu_item_description>
250
+ <menu_item_price>24.95</menu_item_price>
251
+ </menu_item>
252
+ </menu_items>
253
+ </menu_group>
254
+ </menu_groups>
255
+ </menu>
256
+ <menu name="Late Night Menu" currency_symbol="USD" uid="35">
257
+ <menu_description></menu_description>
258
+ <menu_duration>
259
+ <menu_duration_name>late-night</menu_duration_name>
260
+ <menu_duration_time_start>20:00</menu_duration_time_start>
261
+ <menu_duration_time_end>23:00</menu_duration_time_end>
262
+ </menu_duration>
263
+ <menu_groups>
264
+ <menu_group name="Bar Food" uid="1">
265
+ <menu_group_description></menu_group_description>
266
+ <menu_items>
267
+ <menu_item>
268
+ <menu_item_name>Cheese Sticks</menu_item_name>
269
+ <menu_item_description>Cheese sticks with marinara sauce</menu_item_description>
270
+ <menu_item_price>6.95</menu_item_price>
271
+ </menu_item>
272
+ <menu_item>
273
+ <menu_item_name>Coconut Shrimp</menu_item_name>
274
+ <menu_item_description>Crispy Coconut Shrimp</menu_item_description>
275
+ <menu_item_price>7.95</menu_item_price>
276
+ <menu_item_calories>350</menu_item_calories>
277
+ </menu_item>
278
+ <menu_item>
279
+ <menu_item_name>Tempura Onion Rings</menu_item_name>
280
+ <menu_item_description>With a honey Thai sauce</menu_item_description>
281
+ <menu_item_price>7.95</menu_item_price>
282
+ </menu_item>
283
+ <menu_item>
284
+ <menu_item_name>Calamari</menu_item_name>
285
+ <menu_item_description>Our calamari is lightly fried and tossed with a sweet and spicy Asian mango sauce.</menu_item_description>
286
+ <menu_item_price>8.85</menu_item_price>
287
+ </menu_item>
288
+ </menu_items>
289
+ </menu_group>
290
+ </menu_groups>
291
+ </menu>
292
+ </menus>
293
+ </omf>
@@ -2,22 +2,24 @@ require "test/unit"
2
2
  require "openmenu"
3
3
 
4
4
  class TestOpenMenu< Test::Unit::TestCase
5
- def setup
6
- @om = OpenMenu.parse(sample_om)
7
- end
8
5
 
9
6
  def test_open_menu_parse
7
+ @om = OpenMenu.parse(sample_om16)
8
+
10
9
  assert_equal "sample", @om.uuid
11
10
  assert_equal "2011-08-19", @om.date_created
12
11
  assert_equal 1, @om.accuracy
12
+ assert_equal 'private', @om.private # 1.6
13
+ assert @om.private? # 1.6
13
14
 
14
- assert_equal 1.5, @om.version
15
+ assert_equal 1.6, @om.version
15
16
 
16
17
  assert_equal "My Restaurant", @om.restaurant_name
17
18
  assert_equal "Brief Description", @om.brief_description
18
19
  assert_equal "Full Description", @om.full_description
19
20
  assert_equal "independent", @om.business_type
20
21
  assert_equal "x123z", @om.location_id
22
+ assert_equal 1, @om.mobile # 1.6
21
23
  assert_equal "-81.039833", @om.longitude
22
24
  assert_equal "33.999458", @om.latitude
23
25
  assert_equal -5.00, @om.utc_offset
@@ -108,13 +110,15 @@ class TestOpenMenu< Test::Unit::TestCase
108
110
  end
109
111
 
110
112
  def test_menu_parse
111
- menus = OpenMenu::Menu.parse(sample_om)
113
+ menus = OpenMenu::Menu.parse(sample_om16)
112
114
  assert_equal 'Main Menu', menus.first.name
113
- assert_equal 25, menus.first.uid
115
+ assert_equal '3e3bae08-27f2-11e1-80ac-00163eeae341', menus.first.uid
114
116
  assert_equal 'USD', menus.first.currency
117
+ assert_equal 'en', menus.first.language
115
118
  assert_equal 'disabled', menus.first.disabled
116
119
  assert_equal true, menus.first.disabled?
117
120
  assert_equal 'Great food, everyday.', menus.first.description
121
+ assert_equal 'The mainstays.', menus.first.note
118
122
 
119
123
  assert_equal 'lunch-dinner', menus.first.duration.name
120
124
  assert_equal '11:00', menus.first.duration.start
@@ -122,10 +126,11 @@ class TestOpenMenu< Test::Unit::TestCase
122
126
 
123
127
  group = menus.first.groups.first
124
128
  assert_equal 'Appetizers', group.name
125
- assert_equal 2, group.uid
129
+ assert_equal '3e3bae08-27f2-11e1-80ac-00163eeae342', group.uid
126
130
  assert_equal 'disabled', group.disabled
127
131
  assert_equal true, group.disabled?
128
132
  assert_equal 'Succulent appetizers.', group.description
133
+ assert_equal 'Warm up.', group.note
129
134
 
130
135
  option = menus.first.groups[1].options.first
131
136
  assert_equal 'Dressings', option.name
@@ -138,7 +143,7 @@ class TestOpenMenu< Test::Unit::TestCase
138
143
  assert_equal 1.00, option_item.additional_cost
139
144
 
140
145
  item = group.items.first
141
- assert_equal 65, item.uid
146
+ assert_equal '3e3bae08-27f2-11e1-80ac-00163eeae343', item.uid
142
147
  assert_equal 'disabled', item.disabled
143
148
  assert_equal true, item.disabled?
144
149
  assert_equal 'special', item.special
@@ -151,6 +156,8 @@ class TestOpenMenu< Test::Unit::TestCase
151
156
  assert_equal true, item.kosher?
152
157
  assert_equal 'halal', item.halal
153
158
  assert_equal true, item.halal?
159
+ assert_equal 'gluten_free', item.gluten_free
160
+ assert_equal true, item.gluten_free?
154
161
  assert_equal 'Coconut Shrimp', item.name
155
162
  assert_equal 'Menu Item Description', item.description
156
163
  assert_equal 7.95, item.price
@@ -700,6 +707,347 @@ Our calamari is lightly fried and tossed with a sweet and spicy Asian mango sauc
700
707
  </menu_duration>
701
708
  </menu>
702
709
  </menus>
710
+ </omf>
711
+ XML
712
+ end
713
+ def sample_om16
714
+ <<-XML
715
+ <omf uuid="sample" date_created="2011-08-19" accuracy="1" private="private">
716
+ <openmenu>
717
+ <version>1.6</version>
718
+ <cat>Black</cat>
719
+ <crosswalks>
720
+ <crosswalk>
721
+ <crosswalk_id>31b8bfbf-08a3-478f-a4a4-d3e3143a37fb</crosswalk_id>
722
+ <crosswalk_company>Factual</crosswalk_company>
723
+ <crosswalk_url>
724
+ http://factual.com/31b8bfbf-08a3-478f-a4a4-d3e3143a37fb
725
+ </crosswalk_url>
726
+ </crosswalk>
727
+ </crosswalks>
728
+ </openmenu>
729
+ <restaurant_info>
730
+ <restaurant_name>My Restaurant</restaurant_name>
731
+ <business_type>independent</business_type>
732
+ <brief_description>Brief Description</brief_description>
733
+ <full_description>Full Description</full_description>
734
+ <location_id>x123z</location_id>
735
+ <mobile>1</mobile>
736
+ <longitude>-81.039833</longitude>
737
+ <latitude>33.999458</latitude>
738
+ <utc_offset>-5.00</utc_offset>
739
+ <address_1>803 Gervais Street</address_1>
740
+ <address_2>STE 2</address_2>
741
+ <city_town>Columbia</city_town>
742
+ <state_province>SC</state_province>
743
+ <postal_code>29202</postal_code>
744
+ <country>US</country>
745
+ <region_area name="Region Name" designation="Region Designation"/>
746
+ <phone>(555) 555-5555</phone>
747
+ <fax>(555) 888-8888</fax>
748
+ <website_url>http://openmenu.com/</website_url>
749
+ <omf_file_url>http://openmenu.com/menu/sample</omf_file_url>
750
+ <logo_urls>
751
+ <logo_url type="Thumbnail" media="All" height="32" width="32">http://openmenu.com/images/ico-32-openmenu.png</logo_url>
752
+ <logo_url type="Full" media="All">http://openmenu.com/images/sample_logo_full.png</logo_url>
753
+ </logo_urls>
754
+ <environment>
755
+ <seating_qty>96</seating_qty>
756
+ <max_group_size>12</max_group_size>
757
+ <age_level_preference>+55</age_level_preference>
758
+ <smoking_allowed>0</smoking_allowed>
759
+ <takeout_available>1</takeout_available>
760
+ <delivery_available radius="6.5" fee="12.00">1</delivery_available>
761
+ <catering_available>1</catering_available>
762
+ <reservations>Suggested</reservations>
763
+ <alcohol_type>Full Bar</alcohol_type>
764
+ <music_type>Live</music_type>
765
+ <pets_allowed>0</pets_allowed>
766
+ <wheelchair_accessible>1</wheelchair_accessible>
767
+ <dress_code>casual</dress_code>
768
+ <cuisine_type_primary>Steakhouse</cuisine_type_primary>
769
+ <cuisine_type_secondary>Seafood</cuisine_type_secondary>
770
+ <seating_locations>
771
+ <seating_location>outdoor</seating_location>
772
+ <seating_location>indoor</seating_location>
773
+ </seating_locations>
774
+ <accepted_currencies>
775
+ <accepted_currency>USD</accepted_currency>
776
+ </accepted_currencies>
777
+ <online_reservations>
778
+ <online_reservation type="web/mobile">
779
+ <online_reservation_name>Reservation Online</online_reservation_name>
780
+ <online_reservation_url>http://www.on-res.com</online_reservation_url>
781
+ </online_reservation>
782
+ </online_reservations>
783
+ <online_ordering>
784
+ <online_order type="web/mobile">
785
+ <online_order_name>Order Online</online_order_name>
786
+ <online_order_url>http://www.on-order.com</online_order_url>
787
+ </online_order>
788
+ </online_ordering>
789
+ <operating_days>
790
+ <operating_day>
791
+ <day_of_week>1</day_of_week>
792
+ <open_time>11:00</open_time>
793
+ <close_time>22:00</close_time>
794
+ </operating_day>
795
+ <operating_day>
796
+ <day_of_week>2</day_of_week>
797
+ <open_time>11:00</open_time>
798
+ <close_time>22:00</close_time>
799
+ </operating_day>
800
+ <operating_day>
801
+ <day_of_week>3</day_of_week>
802
+ <open_time>11:00</open_time>
803
+ <close_time>22:00</close_time>
804
+ </operating_day>
805
+ <operating_day>
806
+ <day_of_week>4</day_of_week>
807
+ <open_time>11:00</open_time>
808
+ <close_time>22:00</close_time>
809
+ </operating_day>
810
+ <operating_day>
811
+ <day_of_week>5</day_of_week>
812
+ <open_time>11:00</open_time>
813
+ <close_time>22:00</close_time>
814
+ </operating_day>
815
+ <operating_day>
816
+ <day_of_week>6</day_of_week>
817
+ <open_time>11:00</open_time>
818
+ <close_time>22:00</close_time>
819
+ </operating_day>
820
+ <operating_day>
821
+ <day_of_week>7</day_of_week>
822
+ <open_time/>
823
+ <close_time/>
824
+ </operating_day>
825
+ </operating_days>
826
+ <parking street_free="street_free" street_metered="street_metered" private_lot="private_lot" garage="garage" valet="valet"/>
827
+ </environment>
828
+ <contacts>
829
+ <contact type="primary">
830
+ <first_name>Chris</first_name>
831
+ <last_name>Hanscom</last_name>
832
+ <email>menu@openmenu.com</email>
833
+ </contact>
834
+ </contacts>
835
+ <parent_company>
836
+ <parent_company_name>Flintstones Global</parent_company_name>
837
+ <parent_company_website>http://flintstones.com</parent_company_website>
838
+ <address_1>123 Main Street</address_1>
839
+ <address_2>Suite 1</address_2>
840
+ <city_town>Bedrock</city_town>
841
+ <state_province>WY</state_province>
842
+ <postal_code>12345</postal_code>
843
+ <country>USA</country>
844
+ <phone>(111) 111-1111</phone>
845
+ <fax>(111) 222-2222</fax>
846
+ </parent_company>
847
+ </restaurant_info>
848
+ <menus>
849
+ <menu name="Main Menu" currency_symbol="USD" uid="3e3bae08-27f2-11e1-80ac-00163eeae341" language="en" disabled="disabled">
850
+ <menu_description>Great food, everyday.</menu_description>
851
+ <menu_note>The mainstays.</menu_note>
852
+ <menu_duration>
853
+ <menu_duration_name>lunch-dinner</menu_duration_name>
854
+ <menu_duration_time_start>11:00</menu_duration_time_start>
855
+ <menu_duration_time_end>22:00</menu_duration_time_end>
856
+ </menu_duration>
857
+ <menu_groups>
858
+ <menu_group name="Appetizers" uid="3e3bae08-27f2-11e1-80ac-00163eeae342" disabled="disabled">
859
+ <menu_group_description>Succulent appetizers.</menu_group_description>
860
+ <menu_group_note>Warm up.</menu_group_note>
861
+ <menu_items>
862
+ <menu_item uid="3e3bae08-27f2-11e1-80ac-00163eeae343" disabled="disabled" special="special" vegetarian="vegetarian" vegan="vegan" kosher="kosher" halal="halal" gluten_free="gluten_free">
863
+ <menu_item_name>Coconut Shrimp</menu_item_name>
864
+ <menu_item_description>Menu Item Description</menu_item_description>
865
+ <menu_item_price>7.95</menu_item_price>
866
+ <menu_item_calories>350</menu_item_calories>
867
+ <menu_item_allergy_information allergens="seafood, coconut">Contains Seafood</menu_item_allergy_information>
868
+ <menu_item_image_urls>
869
+ <menu_item_image_url width="32" height="32" type="Thumbnail" media="Web">http://openmenu.com/images/coconut_shrimp.jpg</menu_item_image_url>
870
+ </menu_item_image_urls>
871
+ <menu_item_options>
872
+ <menu_item_option name="Sauce" min_selected="1" max_selected="2">
873
+ <menu_item_option_information>Saucy sauces</menu_item_option_information>
874
+ <menu_item_option_item>
875
+ <menu_item_option_name>Honey</menu_item_option_name>
876
+ <menu_item_option_additional_cost>3.99</menu_item_option_additional_cost>
877
+ </menu_item_option_item>
878
+ </menu_item_option>
879
+ </menu_item_options>
880
+ <menu_item_tags>
881
+ <menu_item_tag>prawns</menu_item_tag>
882
+ <menu_item_tag>seafood</menu_item_tag>
883
+ </menu_item_tags>
884
+ </menu_item>
885
+ <menu_item>
886
+ <menu_item_name>Tempura Onion Rings</menu_item_name>
887
+ <menu_item_description>With a honey Thai sauce</menu_item_description>
888
+ <menu_item_price>7.95</menu_item_price>
889
+ <menu_item_heat_index>1</menu_item_heat_index>
890
+ </menu_item>
891
+ <menu_item special="special">
892
+ <menu_item_name>Calamari</menu_item_name>
893
+ <menu_item_description>
894
+ Our calamari is lightly fried and tossed with a sweet and spicy Asian mango sauce.
895
+ </menu_item_description>
896
+ <menu_item_price/>
897
+ <menu_item_heat_index>2</menu_item_heat_index>
898
+ <menu_item_sizes>
899
+ <menu_item_size>
900
+ <menu_item_size_name>small</menu_item_size_name>
901
+ <menu_item_size_description>Description</menu_item_size_description>
902
+ <menu_item_size_price>6.95</menu_item_size_price>
903
+ <menu_item_size_calories>3000</menu_item_size_calories>
904
+ </menu_item_size>
905
+ <menu_item_size>
906
+ <menu_item_size_name>large</menu_item_size_name>
907
+ <menu_item_size_description/>
908
+ <menu_item_size_price>8.95</menu_item_size_price>
909
+ </menu_item_size>
910
+ </menu_item_sizes>
911
+ </menu_item>
912
+ </menu_items>
913
+ </menu_group>
914
+ <menu_group name="Salads" uid="3e3bae08-27f2-11e1-80ac-00163eeae344">
915
+ <menu_group_description/>
916
+ <menu_group_options>
917
+ <menu_group_option name="Dressings" min_selected="1" max_selected="2">
918
+ <menu_group_option_information>Yummy dressings</menu_group_option_information>
919
+ <menu_group_option_item>
920
+ <menu_group_option_name>Italian</menu_group_option_name>
921
+ <menu_group_option_additional_cost>1.00</menu_group_option_additional_cost>
922
+ </menu_group_option_item>
923
+ <menu_group_option_item>
924
+ <menu_group_option_name>French</menu_group_option_name>
925
+ <menu_group_option_additional_cost>1.25</menu_group_option_additional_cost>
926
+ </menu_group_option_item>
927
+ <menu_group_option_item>
928
+ <menu_group_option_name>Thousand Island</menu_group_option_name>
929
+ <menu_group_option_additional_cost>1.00</menu_group_option_additional_cost>
930
+ </menu_group_option_item>
931
+ </menu_group_option>
932
+ </menu_group_options>
933
+ <menu_items>
934
+ <menu_item>
935
+ <menu_item_name>Chef Salad</menu_item_name>
936
+ <menu_item_description>Best chef salad in a 20 mile radius</menu_item_description>
937
+ <menu_item_price/>
938
+ <menu_item_sizes>
939
+ <menu_item_size>
940
+ <menu_item_size_name>half</menu_item_size_name>
941
+ <menu_item_size_description/>
942
+ <menu_item_size_price>6.95</menu_item_size_price>
943
+ </menu_item_size>
944
+ <menu_item_size>
945
+ <menu_item_size_name>full</menu_item_size_name>
946
+ <menu_item_size_description/>
947
+ <menu_item_size_price>8.95</menu_item_size_price>
948
+ </menu_item_size>
949
+ </menu_item_sizes>
950
+ </menu_item>
951
+ <menu_item special="special">
952
+ <menu_item_name>Cobb Salad</menu_item_name>
953
+ <menu_item_description>
954
+ Iceberg lettuce topped with turkey, ham, hard cooked eggs, avocado, diced tomatoes, bacon, bleu cheese crumbles and black olives
955
+ </menu_item_description>
956
+ <menu_item_price/>
957
+ <menu_item_sizes>
958
+ <menu_item_size>
959
+ <menu_item_size_name>half</menu_item_size_name>
960
+ <menu_item_size_description/>
961
+ <menu_item_size_price>6.95</menu_item_size_price>
962
+ </menu_item_size>
963
+ <menu_item_size>
964
+ <menu_item_size_name>full</menu_item_size_name>
965
+ <menu_item_size_description/>
966
+ <menu_item_size_price>8.95</menu_item_size_price>
967
+ </menu_item_size>
968
+ </menu_item_sizes>
969
+ </menu_item>
970
+ <menu_item>
971
+ <menu_item_name>Ceasar Salad</menu_item_name>
972
+ <menu_item_description>Fresh romain lettuce with aged parmesan reggiano</menu_item_description>
973
+ <menu_item_price>9.95</menu_item_price>
974
+ </menu_item>
975
+ <menu_item vegetarian="vegetarian">
976
+ <menu_item_name>Garden Salad</menu_item_name>
977
+ <menu_item_description>
978
+ Filled with lettuce, tomatoes, carrots, radishes, cucumbers and shredded cheese
979
+ </menu_item_description>
980
+ <menu_item_price>8.95</menu_item_price>
981
+ </menu_item>
982
+ </menu_items>
983
+ </menu_group>
984
+ <menu_group name="Entrees" uid="3e3bae08-27f2-11e1-80ac-00163eeae345">
985
+ <menu_group_description/>
986
+ <menu_items>
987
+ <menu_item uid="3e3bae08-27f2-11e1-80ac-00163eeae346">
988
+ <menu_item_name>Rack of Lamb</menu_item_name>
989
+ <menu_item_description>Coffee Citrus Crusted Lamb</menu_item_description>
990
+ <menu_item_price>22.95</menu_item_price>
991
+ </menu_item>
992
+ <menu_item uid="3e3bae08-27f2-11e1-80ac-00163eeae34c7">
993
+ <menu_item_name>Soft Shell Crabs</menu_item_name>
994
+ <menu_item_description>
995
+ Almond encrusted, seasoned and sauteed in butter to a crispy brown
996
+ </menu_item_description>
997
+ <menu_item_price>19.95</menu_item_price>
998
+ <menu_item_allergy_information allergens="shellfish, nuts">Reference allergens for allergy information</menu_item_allergy_information>
999
+ </menu_item>
1000
+ <menu_item uid="3e3bae08-27f2-11e1-80ac-00163eeae348" special="special">
1001
+ <menu_item_name>Cioppino</menu_item_name>
1002
+ <menu_item_description>
1003
+ Fresh fish, scallops, mussels, calamari, and shrimp in a tomato-garlic saffron broth over linguini
1004
+ </menu_item_description>
1005
+ <menu_item_price>24.95</menu_item_price>
1006
+ </menu_item>
1007
+ </menu_items>
1008
+ </menu_group>
1009
+ </menu_groups>
1010
+ </menu>
1011
+ <menu name="Late Night Menu" currency_symbol="USD" uid="3e3bae08-27f2-11e1-80ac-00163eeae349">
1012
+ <menu_description/>
1013
+ <menu_note/>
1014
+ <menu_duration>
1015
+ <menu_duration_name>late-night</menu_duration_name>
1016
+ <menu_duration_time_start>20:00</menu_duration_time_start>
1017
+ <menu_duration_time_end>23:00</menu_duration_time_end>
1018
+ </menu_duration>
1019
+ <menu_groups>
1020
+ <menu_group name="Bar Food" uid="3e3bae08-27f2-11e1-80ac-00163eeae340">
1021
+ <menu_group_description/>
1022
+ <menu_items>
1023
+ <menu_item>
1024
+ <menu_item_name>Cheese Sticks</menu_item_name>
1025
+ <menu_item_description>Cheese sticks with marinara sauce</menu_item_description>
1026
+ <menu_item_price>6.95</menu_item_price>
1027
+ </menu_item>
1028
+ <menu_item>
1029
+ <menu_item_name>Coconut Shrimp</menu_item_name>
1030
+ <menu_item_description>Crispy Coconut Shrimp</menu_item_description>
1031
+ <menu_item_price>7.95</menu_item_price>
1032
+ <menu_item_calories>350</menu_item_calories>
1033
+ </menu_item>
1034
+ <menu_item>
1035
+ <menu_item_name>Tempura Onion Rings</menu_item_name>
1036
+ <menu_item_description>With a honey Thai sauce</menu_item_description>
1037
+ <menu_item_price>7.95</menu_item_price>
1038
+ </menu_item>
1039
+ <menu_item>
1040
+ <menu_item_name>Calamari</menu_item_name>
1041
+ <menu_item_description>
1042
+ Our calamari is lightly fried and tossed with a sweet and spicy Asian mango sauce.
1043
+ </menu_item_description>
1044
+ <menu_item_price>8.85</menu_item_price>
1045
+ </menu_item>
1046
+ </menu_items>
1047
+ </menu_group>
1048
+ </menu_groups>
1049
+ </menu>
1050
+ </menus>
703
1051
  </omf>
704
1052
  XML
705
1053
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openmenu
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-08-23 00:00:00.000000000Z
12
+ date: 2012-01-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri-happymapper
16
- requirement: &70317645354660 !ruby/object:Gem::Requirement
16
+ requirement: &70213543430980 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,21 +21,54 @@ dependencies:
21
21
  version: 0.3.6
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70317645354660
24
+ version_requirements: *70213543430980
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: minitest
27
- requirement: &70317645354080 !ruby/object:Gem::Requirement
27
+ requirement: &70213543430360 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
31
31
  - !ruby/object:Gem::Version
32
- version: '1.6'
32
+ version: '2.8'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70317645354080
35
+ version_requirements: *70213543430360
36
+ - !ruby/object:Gem::Dependency
37
+ name: isolate
38
+ requirement: &70213543429580 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 3.2.1
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70213543429580
47
+ - !ruby/object:Gem::Dependency
48
+ name: hoe-git
49
+ requirement: &70213543428840 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.4.1
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70213543428840
58
+ - !ruby/object:Gem::Dependency
59
+ name: rdoc
60
+ requirement: &70213543422100 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: '3.10'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70213543422100
36
69
  - !ruby/object:Gem::Dependency
37
70
  name: hoe
38
- requirement: &70317645352360 !ruby/object:Gem::Requirement
71
+ requirement: &70213543421540 !ruby/object:Gem::Requirement
39
72
  none: false
40
73
  requirements:
41
74
  - - ~>
@@ -43,7 +76,7 @@ dependencies:
43
76
  version: '2.12'
44
77
  type: :development
45
78
  prerelease: false
46
- version_requirements: *70317645352360
79
+ version_requirements: *70213543421540
47
80
  description: ! "Openmenu is parser for OpenMenu xml files.\n\nNOTE: This is an early
48
81
  release. There is some refactoring to be done, but \nthe interface should stay the
49
82
  same."
@@ -64,6 +97,8 @@ files:
64
97
  - lib/open_menu.rb
65
98
  - lib/openmenu.rb
66
99
  - test/sample.xml
100
+ - test/sample15.xml
101
+ - test/sample16.xml
67
102
  - test/test_openmenu.rb
68
103
  - .gemtest
69
104
  homepage: https://github.com/matthewcalebsmith/openmenu
@@ -88,7 +123,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
123
  version: '0'
89
124
  requirements: []
90
125
  rubyforge_project: openmenu
91
- rubygems_version: 1.8.8
126
+ rubygems_version: 1.8.15
92
127
  signing_key:
93
128
  specification_version: 3
94
129
  summary: Openmenu is parser for OpenMenu xml files