cml 1.4.2 → 1.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.
Files changed (57) hide show
  1. data/.rspec +1 -0
  2. data/Gemfile +4 -0
  3. data/Gemfile.lock +33 -0
  4. data/README.rdoc +13 -3
  5. data/Rakefile +9 -49
  6. data/cml.gemspec +23 -125
  7. data/lib/cml/converters/jsawesome.rb +3 -3
  8. data/lib/cml/gold.rb +12 -7
  9. data/lib/cml/liquid_filters.rb +4 -0
  10. data/lib/cml/logic.rb +424 -0
  11. data/lib/cml/logic_tree/graph.rb +107 -0
  12. data/lib/cml/logic_tree/solver.rb +43 -0
  13. data/lib/cml/parser.rb +47 -7
  14. data/lib/cml/tag.rb +42 -21
  15. data/lib/cml/tags/checkbox.rb +14 -4
  16. data/lib/cml/tags/checkboxes.rb +4 -0
  17. data/lib/cml/tags/group.rb +4 -0
  18. data/lib/cml/tags/hours.rb +263 -0
  19. data/lib/cml/tags/iterate.rb +4 -0
  20. data/lib/cml/tags/meta.rb +4 -0
  21. data/lib/cml/tags/option.rb +4 -0
  22. data/lib/cml/tags/radio.rb +13 -4
  23. data/lib/cml/tags/radios.rb +4 -0
  24. data/lib/cml/tags/ratings.rb +9 -1
  25. data/lib/cml/tags/search.rb +8 -2
  26. data/lib/cml/tags/select.rb +6 -2
  27. data/lib/cml/tags/taxonomy.rb +148 -0
  28. data/lib/cml/tags/thumb.rb +4 -0
  29. data/lib/cml/tags/unknown.rb +4 -0
  30. data/lib/cml/version.rb +3 -0
  31. data/lib/cml.rb +3 -0
  32. data/spec/converters/jsawesome_spec.rb +0 -9
  33. data/spec/fixtures/logic_broken.cml +5 -0
  34. data/spec/fixtures/logic_circular.cml +5 -0
  35. data/spec/fixtures/logic_grouped.cml +7 -0
  36. data/spec/fixtures/logic_nested.cml +7 -0
  37. data/spec/fixtures/logic_none.cml +7 -0
  38. data/spec/fixtures/logic_not_nested.cml +7 -0
  39. data/spec/liquid_filter_spec.rb +19 -0
  40. data/spec/logic_depends_on_spec.rb +242 -0
  41. data/spec/logic_spec.rb +207 -0
  42. data/spec/logic_tree_graph_spec.rb +465 -0
  43. data/spec/logic_tree_solver_spec.rb +58 -0
  44. data/spec/meta_spec.rb +12 -2
  45. data/spec/show_data_spec.rb +3 -2
  46. data/spec/spec_helper.rb +22 -6
  47. data/spec/tags/checkboxes_spec.rb +2 -2
  48. data/spec/tags/group_spec.rb +5 -5
  49. data/spec/tags/hours_spec.rb +404 -0
  50. data/spec/tags/radios_spec.rb +2 -2
  51. data/spec/tags/ratings_spec.rb +1 -1
  52. data/spec/tags/select_spec.rb +45 -0
  53. data/spec/tags/tag_spec.rb +25 -0
  54. data/spec/tags/taxonomy_spec.rb +112 -0
  55. data/spec/validation_spec.rb +52 -0
  56. metadata +112 -17
  57. data/VERSION +0 -1
@@ -1,7 +1,7 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
3
  describe "CML Radios" do
4
- it "should render simple radtings" do
4
+ it "should render simple ratings" do
5
5
  cml = <<-HTML
6
6
  <cml:ratings label="Rate it" from="Bad" to="Worst" points="4" />
7
7
  HTML
@@ -73,4 +73,49 @@ describe "CML Select" do
73
73
  </div>
74
74
  HTML
75
75
  end
76
+
77
+ it "should render correctly with liquid logic" do
78
+ cml = <<-HTML
79
+ <cml:select label="basic" validates="required">
80
+ {% if entity1 != 'No data available' %}
81
+ <cml:option label="{{ entity1 }}" />
82
+ {% endif %}
83
+ {% if entity2 != 'No data available' %}
84
+ <cml:option label="{{ entity2 }}" />
85
+ {% endif %}
86
+ {% if entity3 != 'No data available' %}
87
+ <cml:option label="{{ entity3 }}" />
88
+ {% endif %}
89
+ {% if entity4 != 'No data available' %}
90
+ <cml:option label="{{ entity4 }}" />
91
+ {% endif %}
92
+ <cml:option label="none of the above" />
93
+ </cml:select>
94
+ HTML
95
+ @p = Parser.new(cml, :prefix => "u12345")
96
+ @p.to_html.should sorta_match(<<-HTML)
97
+ <div class="cml" id="u12345">
98
+ <div class="select cml_field">
99
+ <label class="legend">basic</label>
100
+ <div class="cml_row">
101
+ <select name="u12345[basic]" class="basic validates-required">
102
+ <option value="">Select one</option>
103
+ {% if entity1 != 'No data available' %}
104
+ <option>{{ entity1 }}</option>
105
+ {% endif %}
106
+ {% if entity2 != 'No data available' %}
107
+ <option>{{ entity2 }}</option>
108
+ {% endif %}
109
+ {% if entity3 != 'No data available' %}
110
+ <option>{{ entity3 }}</option>
111
+ {% endif %}
112
+ {% if entity4 != 'No data available' %}
113
+ <option>{{ entity4 }}</option>
114
+ {% endif %}
115
+ <option>none of the above</option></select>
116
+ </div>
117
+ </div>
118
+ </div>
119
+ HTML
120
+ end
76
121
  end
@@ -29,6 +29,31 @@ describe "CML Tag" do
29
29
  HTML
30
30
  end
31
31
 
32
+ it "allows #finite_value? override with CML `is-finite='true'` attribute" do
33
+ @p = Parser.new(<<-HTML)
34
+ <cml:text label="I could be anything" />
35
+ HTML
36
+ @p.tags[0].should_not be_finite_value
37
+
38
+ @p = Parser.new(<<-HTML)
39
+ <cml:text label="I feel boxed-in" is-finite="true" />
40
+ HTML
41
+ @p.tags[0].should be_finite_value
42
+ end
43
+
44
+ it "may be found in CML::Parser#finite_fields" do
45
+ @p = Parser.new(<<-HTML)
46
+ <cml:text label="I could be anything" />
47
+ <cml:text label="I feel boxed-in" is-finite="true" />
48
+ <cml:checkbox label="Black or white"/>
49
+ HTML
50
+ @p.finite_fields.length.should == 2
51
+ @p.finite_fields.keys.should include('i_feel_boxedin')
52
+ @p.finite_fields.keys.should include('black_or_white')
53
+ @p.finite_fields['i_feel_boxedin'].should be_kind_of(CML::Tag)
54
+ @p.finite_fields['black_or_white'].should be_kind_of(CML::Tag)
55
+ end
56
+
32
57
  describe "with data attributes" do
33
58
  it "handles one data attribute" do
34
59
  @cml = "<cml:text label='foo' data-is-fun='true' />"
@@ -0,0 +1,112 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
+
3
+ describe "CML Taxonomy" do
4
+ it "should render taxonomy with attributes as a field" do
5
+ cml = <<-CML
6
+ <cml:taxonomy name="puppies" src="http://www.mycooltaxonomy.com" selectable="[1,2,3,4]" />
7
+ CML
8
+
9
+ @p = Parser.new(cml, :prefix => "u12345")
10
+ @p.to_html.should sorta_match(<<-HTML)
11
+ <div class="cml" id="u12345">
12
+ <div class="taxonomy cml_field">
13
+ <label class="legend">Puppies</label>
14
+ <div class="cml_row taxonomy_choice">
15
+ <input name="u12345[puppies]" type="text" class="puppies" value="" />
16
+ <input name="u12345[puppies_id]" type="text" class="taxonomy_id no_validate" value="" />
17
+ </div>
18
+ <div class="taxonomy_widget_container" data-selectable="[1,2,3,4]" data-src="http://www.mycooltaxonomy.com"></div>
19
+ </div>
20
+ </div>
21
+ HTML
22
+ end
23
+ it "should render taxonomy with attributes as a multi-select field" do
24
+ cml = <<-CML
25
+ <cml:taxonomy name="puppies" src="http://www.mycooltaxonomy.com" selectable="[1,2,3,4]" multi-select="true" />
26
+ CML
27
+
28
+ @p = Parser.new(cml, :prefix => "u12345")
29
+ @p.to_html.should sorta_match(<<-HTML)
30
+ <div class="cml" id="u12345">
31
+ <div class="taxonomy cml_field">
32
+ <label class="legend">Puppies</label>
33
+ <div class="taxonomy_choices">
34
+ <div class="cml_row taxonomy_choice">
35
+ <input name="u12345[puppies][]" type="text" class="puppies" value="" />
36
+ <input name="u12345[puppies_id][]" type="text" class="taxonomy_id no_validate" value="" />
37
+ </div>
38
+ </div>
39
+ <div class="taxonomy_widget_container" data-selectable="[1,2,3,4]" data-src="http://www.mycooltaxonomy.com" data-multi-select=\"true\"></div>
40
+ </div>
41
+ </div>
42
+ HTML
43
+ end
44
+
45
+ it "should render taxonomy with search as a field" do
46
+ cml = <<-CML
47
+ <cml:taxonomy name="puppies" src="http://www.mycooltaxonomy.com" search-src="http://mycoolsearch.com" log-search="true" selectable="[1,2,3,4]" />
48
+ CML
49
+
50
+ @p = Parser.new(cml, :prefix => "u12345")
51
+ @p.to_html.should sorta_match(<<-HTML)
52
+ <div class="cml" id="u12345">
53
+ <div class="taxonomy cml_field">
54
+ <label class="legend">Puppies</label>
55
+ <div class="cml_row taxonomy_choice">
56
+ <input name="u12345[puppies]" type="text" class="puppies" value="" />
57
+ <input name="u12345[puppies_id]" type="text" class="taxonomy_id no_validate" value="" />
58
+ </div>
59
+ <div class="cml_row taxonomy_search" data-name="puppies_search_log"></div>
60
+ <div class="taxonomy_widget_container" data-search-src="http://mycoolsearch.com" data-selectable="[1,2,3,4]" data-log-search="true" data-src="http://www.mycooltaxonomy.com"></div>
61
+ </div>
62
+ </div>
63
+ HTML
64
+ end
65
+
66
+ it "should render taxonomy with attributes as a non-field" do
67
+ cml = <<-CML
68
+ <cml:taxonomy name="puppies" src="http://www.mycooltaxonomy.com" selectable="[1,2,3,4]" field="false" />
69
+ CML
70
+
71
+ @p = Parser.new(cml, :prefix => "u12345")
72
+ @p.to_html.should sorta_match(<<-HTML)
73
+ <div class="cml" id="u12345">
74
+ <div class="taxonomy cml_field">
75
+ <label class="legend">Puppies</label>
76
+ <div class="taxonomy_widget_container" data-selectable="[1,2,3,4]" data-src="http://www.mycooltaxonomy.com"></div>
77
+ </div>
78
+ </div>
79
+ HTML
80
+ end
81
+
82
+ it "should handle normalization/gold" do
83
+ cml = <<-CML
84
+ <cml:taxonomy name="puppies" src="http://www.mycooltaxonomy.com" gold="true" />
85
+ CML
86
+
87
+ @p = Parser.new(cml, :prefix => "u12345", :normalize => true, :data =>{
88
+ "puppies_gold" => ["Animals > Dogs > Chihuahua", "Animals > Cats > Dead Cat"],
89
+ "puppies_id" => ["123", "456"]
90
+ })
91
+ @p.to_html.should sorta_match(<<-HTML)
92
+ <div class="cml" id="u12345">
93
+ <div class="taxonomy cml_field">
94
+ <label class="legend">Puppies</label>
95
+ <div class="cml_row taxonomy_choice">
96
+ <input name="u12345[puppies_gold][]" type="text" class="puppies_gold cml_gold_loaded" value="Animals &gt; Dogs &gt; Chihuahua" />
97
+ <input name="u12345[puppies_id][]" type="text" class="taxonomy_id no_validate" value="123" />
98
+ </div>
99
+ <div class="cml_row taxonomy_choice">
100
+ <input name="u12345[puppies_gold][]" type="text" class="puppies_gold cml_gold_loaded" value="Animals &gt; Cats &gt; Dead Cat" />
101
+ <input name="u12345[puppies_id][]" type="text" class="taxonomy_id no_validate" value="456" />
102
+ </div>
103
+ <div class="taxonomy_widget_container" data-src="http://www.mycooltaxonomy.com"></div>
104
+ <div class="cml_gold_reason">
105
+ <label class="legend">Reason</label>
106
+ <textarea name="u12345[puppies_gold_reason]"></textarea>
107
+ </div>
108
+ </div>
109
+ </div>
110
+ HTML
111
+ end
112
+ end
@@ -59,4 +59,56 @@ describe "CML Validation" do
59
59
  @p = Parser.new(File.read(File.dirname(__FILE__) + "/fixtures/complex.cml"), {:prefix => "u12345"})
60
60
  @p.should be_valid
61
61
  end
62
+
63
+ it "reports logic referencing a non-existent element" do
64
+ @p = Parser.new(<<-HTML)
65
+ <cml:text label="OMG" />
66
+ <cml:checkboxes label="w t f" only-if="nonexistent:[1]">
67
+ <cml:checkbox label="lol" />
68
+ <cml:checkbox label="rtfm" />
69
+ </cml:checkboxes>
70
+ HTML
71
+ @p.should_not be_valid
72
+ @p.errors.should == ["CML element 'w_t_f' contains only-if logic that references a missing field 'nonexistent'."]
73
+ end
74
+
75
+ it "reports logic referencing the checked value of a non-checkbox element" do
76
+ @p = Parser.new(<<-HTML)
77
+ <cml:text label="OMG" />
78
+ <cml:text label="wtf" only-if="omg:unchecked" />
79
+ HTML
80
+ @p.should_not be_valid
81
+ @p.errors.should == ["CML element 'wtf' contains only-if logic that references a checked value, 'omg:unchecked', but 'omg' is not a checkbox nor contains checkboxes."]
82
+ end
83
+
84
+ it "reports logic referencing a child index on an element without children" do
85
+ @p = Parser.new(<<-HTML)
86
+ <cml:radios label="Does this Course have at least one required Book?" name="has_required_book" validates="required" >
87
+ <cml:radio label="Yes" value="TRUE" />
88
+ <cml:radio label="No" value="FALSE" />
89
+ </cml:radios>
90
+
91
+ <cml:checkbox label="If the ISBN is included, check this box and enter ONLY the ISBN below:" name="has_isbn" only-if="has_required_book:[0]" instructions="Other fields below are not needed and will be removed if the ISBN is present." value="true" />
92
+
93
+ <cml:text label="Copy/Paste the ISBN(s) as they appear:" only-if="has_required_book:[0]++has_isbn:[0]" default="978-3-16-148410-0" multiple="true" name="isbn" instructions="" />
94
+
95
+
96
+ <cml:group only-if="has_required_book:[0]++!has_isbn:[0]" multiple="true">
97
+ <div class="course_info">
98
+ <div class="book_title">
99
+ <cml:text label="Book(s) Title" default="e.g. Intermediate Accounting" name="book_title" instructions="" />
100
+ </div>
101
+ <div class="book_edition">
102
+ <cml:text label="Edition or Volume" default="e.g. 2nd Ed." name="book_edition" instructions="copy/paste the information as it appears in the syllabus" />
103
+ </div>
104
+ <div class="book_authors">
105
+ <cml:text label="Authors" default="e.g. Spiceland, Sepe, and Nelson" name="book_authors" instructions="copy/paste all the author names as they appear in the syllabus" />
106
+ </div>
107
+ </div>
108
+ </cml:group>
109
+
110
+ HTML
111
+ @p.should_not be_valid
112
+ @p.errors.should == ["CML element 'isbn' contains only-if logic that references a child index, 'has_isbn:[0]', but 'has_isbn' contains no child elements."]
113
+ end
62
114
  end
metadata CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
- - 4
9
- - 2
10
- version: 1.4.2
8
+ - 5
9
+ - 0
10
+ version: 1.5.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Chris Van Pelt
@@ -15,8 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-28 00:00:00 -08:00
19
- default_executable:
18
+ date: 2013-04-06 00:00:00 Z
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: liquid
@@ -50,33 +49,97 @@ dependencies:
50
49
  version: 1.4.2
51
50
  type: :runtime
52
51
  version_requirements: *id002
52
+ - !ruby/object:Gem::Dependency
53
+ name: json
54
+ prerelease: false
55
+ requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ hash: 3
61
+ segments:
62
+ - 0
63
+ version: "0"
64
+ type: :runtime
65
+ version_requirements: *id003
66
+ - !ruby/object:Gem::Dependency
67
+ name: bundler
68
+ prerelease: false
69
+ requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ hash: 9
75
+ segments:
76
+ - 1
77
+ - 3
78
+ version: "1.3"
79
+ type: :development
80
+ version_requirements: *id004
81
+ - !ruby/object:Gem::Dependency
82
+ name: rake
83
+ prerelease: false
84
+ requirement: &id005 !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ hash: 3
90
+ segments:
91
+ - 0
92
+ version: "0"
93
+ type: :development
94
+ version_requirements: *id005
95
+ - !ruby/object:Gem::Dependency
96
+ name: rspec
97
+ prerelease: false
98
+ requirement: &id006 !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ hash: 3
104
+ segments:
105
+ - 2
106
+ - 0
107
+ version: "2.0"
108
+ type: :development
109
+ version_requirements: *id006
53
110
  description: CML let's you easily create form elements and custom interfaces for the CrowdFlower Croud Labor platform
54
- email: vanpelt@doloreslabs.com
111
+ email:
112
+ - vanpelt@doloreslabs.com
55
113
  executables: []
56
114
 
57
115
  extensions: []
58
116
 
59
- extra_rdoc_files:
60
- - LICENSE
61
- - README.rdoc
117
+ extra_rdoc_files: []
118
+
62
119
  files:
63
120
  - .document
64
121
  - .gitignore
122
+ - .rspec
123
+ - Gemfile
124
+ - Gemfile.lock
65
125
  - LICENSE
66
126
  - README.rdoc
67
127
  - Rakefile
68
- - VERSION
69
128
  - cml.gemspec
70
129
  - lib/cml.rb
71
130
  - lib/cml/converters/jsawesome.rb
72
131
  - lib/cml/gold.rb
73
132
  - lib/cml/liquid_filters.rb
133
+ - lib/cml/logic.rb
134
+ - lib/cml/logic_tree/graph.rb
135
+ - lib/cml/logic_tree/solver.rb
74
136
  - lib/cml/parser.rb
75
137
  - lib/cml/tag.rb
76
138
  - lib/cml/tags/checkbox.rb
77
139
  - lib/cml/tags/checkboxes.rb
78
140
  - lib/cml/tags/group.rb
79
141
  - lib/cml/tags/hidden.rb
142
+ - lib/cml/tags/hours.rb
80
143
  - lib/cml/tags/iterate.rb
81
144
  - lib/cml/tags/meta.rb
82
145
  - lib/cml/tags/multiple_text.rb
@@ -86,18 +149,31 @@ files:
86
149
  - lib/cml/tags/ratings.rb
87
150
  - lib/cml/tags/search.rb
88
151
  - lib/cml/tags/select.rb
152
+ - lib/cml/tags/taxonomy.rb
89
153
  - lib/cml/tags/text.rb
90
154
  - lib/cml/tags/textarea.rb
91
155
  - lib/cml/tags/thumb.rb
92
156
  - lib/cml/tags/unknown.rb
157
+ - lib/cml/version.rb
93
158
  - spec/complex_spec.rb
94
159
  - spec/converters/jsawesome_spec.rb
95
160
  - spec/fixtures/complex.cml
96
161
  - spec/fixtures/html.cml
97
162
  - spec/fixtures/invalid.cml
163
+ - spec/fixtures/logic_broken.cml
164
+ - spec/fixtures/logic_circular.cml
165
+ - spec/fixtures/logic_grouped.cml
166
+ - spec/fixtures/logic_nested.cml
167
+ - spec/fixtures/logic_none.cml
168
+ - spec/fixtures/logic_not_nested.cml
98
169
  - spec/fixtures/script-style.cml
99
170
  - spec/fixtures/segfault.cml
100
171
  - spec/gold_spec.rb
172
+ - spec/liquid_filter_spec.rb
173
+ - spec/logic_depends_on_spec.rb
174
+ - spec/logic_spec.rb
175
+ - spec/logic_tree_graph_spec.rb
176
+ - spec/logic_tree_solver_spec.rb
101
177
  - spec/meta_spec.rb
102
178
  - spec/normalize_spec.rb
103
179
  - spec/show_data_spec.rb
@@ -107,6 +183,7 @@ files:
107
183
  - spec/tags/checkboxes_spec.rb
108
184
  - spec/tags/group_spec.rb
109
185
  - spec/tags/hidden_spec.rb
186
+ - spec/tags/hours_spec.rb
110
187
  - spec/tags/iterate_spec.rb
111
188
  - spec/tags/meta_spec.rb
112
189
  - spec/tags/multiple_text_spec.rb
@@ -115,18 +192,18 @@ files:
115
192
  - spec/tags/search_spec.rb
116
193
  - spec/tags/select_spec.rb
117
194
  - spec/tags/tag_spec.rb
195
+ - spec/tags/taxonomy_spec.rb
118
196
  - spec/tags/text_spec.rb
119
197
  - spec/tags/textarea_spec.rb
120
198
  - spec/tags/thumb_spec.rb
121
199
  - spec/tags/unknown_spec.rb
122
200
  - spec/validation_spec.rb
123
- has_rdoc: true
124
- homepage: http://github.com/dolores/cml
125
- licenses: []
126
-
201
+ homepage: https://github.com/dolores/cml
202
+ licenses:
203
+ - MIT
127
204
  post_install_message:
128
- rdoc_options:
129
- - --charset=UTF-8
205
+ rdoc_options: []
206
+
130
207
  require_paths:
131
208
  - lib
132
209
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -150,14 +227,30 @@ required_rubygems_version: !ruby/object:Gem::Requirement
150
227
  requirements: []
151
228
 
152
229
  rubyforge_project:
153
- rubygems_version: 1.4.2
230
+ rubygems_version: 1.8.15
154
231
  signing_key:
155
232
  specification_version: 3
156
233
  summary: CML is CrowdFlower Markup Language
157
234
  test_files:
158
235
  - spec/complex_spec.rb
159
236
  - spec/converters/jsawesome_spec.rb
237
+ - spec/fixtures/complex.cml
238
+ - spec/fixtures/html.cml
239
+ - spec/fixtures/invalid.cml
240
+ - spec/fixtures/logic_broken.cml
241
+ - spec/fixtures/logic_circular.cml
242
+ - spec/fixtures/logic_grouped.cml
243
+ - spec/fixtures/logic_nested.cml
244
+ - spec/fixtures/logic_none.cml
245
+ - spec/fixtures/logic_not_nested.cml
246
+ - spec/fixtures/script-style.cml
247
+ - spec/fixtures/segfault.cml
160
248
  - spec/gold_spec.rb
249
+ - spec/liquid_filter_spec.rb
250
+ - spec/logic_depends_on_spec.rb
251
+ - spec/logic_spec.rb
252
+ - spec/logic_tree_graph_spec.rb
253
+ - spec/logic_tree_solver_spec.rb
161
254
  - spec/meta_spec.rb
162
255
  - spec/normalize_spec.rb
163
256
  - spec/show_data_spec.rb
@@ -167,6 +260,7 @@ test_files:
167
260
  - spec/tags/checkboxes_spec.rb
168
261
  - spec/tags/group_spec.rb
169
262
  - spec/tags/hidden_spec.rb
263
+ - spec/tags/hours_spec.rb
170
264
  - spec/tags/iterate_spec.rb
171
265
  - spec/tags/meta_spec.rb
172
266
  - spec/tags/multiple_text_spec.rb
@@ -175,6 +269,7 @@ test_files:
175
269
  - spec/tags/search_spec.rb
176
270
  - spec/tags/select_spec.rb
177
271
  - spec/tags/tag_spec.rb
272
+ - spec/tags/taxonomy_spec.rb
178
273
  - spec/tags/text_spec.rb
179
274
  - spec/tags/textarea_spec.rb
180
275
  - spec/tags/thumb_spec.rb
data/VERSION DELETED
@@ -1 +0,0 @@
1
- 1.4.1