cml 1.4.2
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.
- data/.document +5 -0
- data/.gitignore +5 -0
- data/LICENSE +20 -0
- data/README.rdoc +18 -0
- data/Rakefile +56 -0
- data/VERSION +1 -0
- data/cml.gemspec +129 -0
- data/lib/cml/converters/jsawesome.rb +103 -0
- data/lib/cml/gold.rb +33 -0
- data/lib/cml/liquid_filters.rb +13 -0
- data/lib/cml/parser.rb +160 -0
- data/lib/cml/tag.rb +308 -0
- data/lib/cml/tags/checkbox.rb +77 -0
- data/lib/cml/tags/checkboxes.rb +38 -0
- data/lib/cml/tags/group.rb +25 -0
- data/lib/cml/tags/hidden.rb +17 -0
- data/lib/cml/tags/iterate.rb +86 -0
- data/lib/cml/tags/meta.rb +12 -0
- data/lib/cml/tags/multiple_text.rb +11 -0
- data/lib/cml/tags/option.rb +29 -0
- data/lib/cml/tags/radio.rb +48 -0
- data/lib/cml/tags/radios.rb +36 -0
- data/lib/cml/tags/ratings.rb +61 -0
- data/lib/cml/tags/search.rb +97 -0
- data/lib/cml/tags/select.rb +50 -0
- data/lib/cml/tags/text.rb +45 -0
- data/lib/cml/tags/textarea.rb +45 -0
- data/lib/cml/tags/thumb.rb +25 -0
- data/lib/cml/tags/unknown.rb +21 -0
- data/lib/cml.rb +15 -0
- data/spec/complex_spec.rb +127 -0
- data/spec/converters/jsawesome_spec.rb +75 -0
- data/spec/fixtures/complex.cml +23 -0
- data/spec/fixtures/html.cml +34 -0
- data/spec/fixtures/invalid.cml +10 -0
- data/spec/fixtures/script-style.cml +12 -0
- data/spec/fixtures/segfault.cml +1 -0
- data/spec/gold_spec.rb +29 -0
- data/spec/meta_spec.rb +47 -0
- data/spec/normalize_spec.rb +214 -0
- data/spec/show_data_spec.rb +308 -0
- data/spec/sorta_match.rb +41 -0
- data/spec/spec_helper.rb +26 -0
- data/spec/tags/checkbox_spec.rb +155 -0
- data/spec/tags/checkboxes_spec.rb +171 -0
- data/spec/tags/group_spec.rb +108 -0
- data/spec/tags/hidden_spec.rb +17 -0
- data/spec/tags/iterate_spec.rb +259 -0
- data/spec/tags/meta_spec.rb +14 -0
- data/spec/tags/multiple_text_spec.rb +40 -0
- data/spec/tags/radios_spec.rb +81 -0
- data/spec/tags/ratings_spec.rb +79 -0
- data/spec/tags/search_spec.rb +132 -0
- data/spec/tags/select_spec.rb +76 -0
- data/spec/tags/tag_spec.rb +93 -0
- data/spec/tags/text_spec.rb +66 -0
- data/spec/tags/textarea_spec.rb +58 -0
- data/spec/tags/thumb_spec.rb +20 -0
- data/spec/tags/unknown_spec.rb +19 -0
- data/spec/validation_spec.rb +62 -0
- metadata +182 -0
@@ -0,0 +1,62 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
describe "CML Validation" do
|
4
|
+
it "adds errors if invalid" do
|
5
|
+
@p = Parser.new(File.read(File.dirname(__FILE__) + "/fixtures/invalid.cml"), {:prefix => "u12345"})
|
6
|
+
@p.should_not be_valid
|
7
|
+
@p.errors.should == [
|
8
|
+
"<cml:checkbox label=\"\" value=\"yes\" gold=\"true\"/> does not have a label or name specified.",
|
9
|
+
"<cml:text label=\"Awesome\" validates=\"required email\"/> has a duplicated name, please specify a unique name attribute.",
|
10
|
+
"<cml:option label=\"Rad\"/> a child of <cml:select label=\"Awesome\"> has a duplicated value, please specify a unique value attribute."
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
14
|
+
it "oks no duplicate checkbox" do
|
15
|
+
@p = Parser.new(<<-HTML)
|
16
|
+
<cml:checkboxes label="Cool">
|
17
|
+
<cml:checkbox label="one"/>
|
18
|
+
<cml:checkbox label="two"/>
|
19
|
+
</cml:checkboxes>
|
20
|
+
HTML
|
21
|
+
@p.should be_valid
|
22
|
+
end
|
23
|
+
|
24
|
+
it "bombs on bad parse" do
|
25
|
+
@p = Parser.new(<<-HTML)
|
26
|
+
<cml:radios label="Cool">
|
27
|
+
<cml:radio label="one"/>
|
28
|
+
<cml:radio label="two"/>
|
29
|
+
</cml:checkboxes>
|
30
|
+
HTML
|
31
|
+
@p.should_not be_valid
|
32
|
+
@p.errors.should == ["Malformed CML (3). Opening and ending tag mismatch: radios line 1 and checkboxes on line 4 column 22."]
|
33
|
+
end
|
34
|
+
|
35
|
+
it "oks duplicate radios if duplicate set" do
|
36
|
+
@p = Parser.new(<<-HTML)
|
37
|
+
<cml:radios label="Cool">
|
38
|
+
<cml:radio label="Yes"/>
|
39
|
+
<cml:radio label="Yes" duplicate="true"/>
|
40
|
+
</cml:radios>
|
41
|
+
HTML
|
42
|
+
@p.valid?
|
43
|
+
@p.should be_valid
|
44
|
+
end
|
45
|
+
|
46
|
+
it "doesn't ok duplicate radios if duplicate not set" do
|
47
|
+
@p = Parser.new(<<-HTML)
|
48
|
+
<cml:radios label="Cool">
|
49
|
+
<cml:radio label="Nice"/>
|
50
|
+
<cml:radio label="Fun" value="Nice"/>
|
51
|
+
</cml:radios>
|
52
|
+
HTML
|
53
|
+
@p.valid?
|
54
|
+
@p.should_not be_valid
|
55
|
+
@p.errors.should == ["<cml:radio label=\"Fun\" value=\"Nice\" name=\"cool\" validates=\"\"/> a child of <cml:radios label=\"Cool\"> has a duplicated value, please specify a unique value attribute."]
|
56
|
+
end
|
57
|
+
|
58
|
+
it "oks valid cml" do
|
59
|
+
@p = Parser.new(File.read(File.dirname(__FILE__) + "/fixtures/complex.cml"), {:prefix => "u12345"})
|
60
|
+
@p.should be_valid
|
61
|
+
end
|
62
|
+
end
|
metadata
ADDED
@@ -0,0 +1,182 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cml
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 3
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 4
|
9
|
+
- 2
|
10
|
+
version: 1.4.2
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Chris Van Pelt
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-02-28 00:00:00 -08:00
|
19
|
+
default_executable:
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: liquid
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 15
|
30
|
+
segments:
|
31
|
+
- 2
|
32
|
+
- 0
|
33
|
+
- 0
|
34
|
+
version: 2.0.0
|
35
|
+
type: :runtime
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: nokogiri
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
46
|
+
segments:
|
47
|
+
- 1
|
48
|
+
- 4
|
49
|
+
- 2
|
50
|
+
version: 1.4.2
|
51
|
+
type: :runtime
|
52
|
+
version_requirements: *id002
|
53
|
+
description: CML let's you easily create form elements and custom interfaces for the CrowdFlower Croud Labor platform
|
54
|
+
email: vanpelt@doloreslabs.com
|
55
|
+
executables: []
|
56
|
+
|
57
|
+
extensions: []
|
58
|
+
|
59
|
+
extra_rdoc_files:
|
60
|
+
- LICENSE
|
61
|
+
- README.rdoc
|
62
|
+
files:
|
63
|
+
- .document
|
64
|
+
- .gitignore
|
65
|
+
- LICENSE
|
66
|
+
- README.rdoc
|
67
|
+
- Rakefile
|
68
|
+
- VERSION
|
69
|
+
- cml.gemspec
|
70
|
+
- lib/cml.rb
|
71
|
+
- lib/cml/converters/jsawesome.rb
|
72
|
+
- lib/cml/gold.rb
|
73
|
+
- lib/cml/liquid_filters.rb
|
74
|
+
- lib/cml/parser.rb
|
75
|
+
- lib/cml/tag.rb
|
76
|
+
- lib/cml/tags/checkbox.rb
|
77
|
+
- lib/cml/tags/checkboxes.rb
|
78
|
+
- lib/cml/tags/group.rb
|
79
|
+
- lib/cml/tags/hidden.rb
|
80
|
+
- lib/cml/tags/iterate.rb
|
81
|
+
- lib/cml/tags/meta.rb
|
82
|
+
- lib/cml/tags/multiple_text.rb
|
83
|
+
- lib/cml/tags/option.rb
|
84
|
+
- lib/cml/tags/radio.rb
|
85
|
+
- lib/cml/tags/radios.rb
|
86
|
+
- lib/cml/tags/ratings.rb
|
87
|
+
- lib/cml/tags/search.rb
|
88
|
+
- lib/cml/tags/select.rb
|
89
|
+
- lib/cml/tags/text.rb
|
90
|
+
- lib/cml/tags/textarea.rb
|
91
|
+
- lib/cml/tags/thumb.rb
|
92
|
+
- lib/cml/tags/unknown.rb
|
93
|
+
- spec/complex_spec.rb
|
94
|
+
- spec/converters/jsawesome_spec.rb
|
95
|
+
- spec/fixtures/complex.cml
|
96
|
+
- spec/fixtures/html.cml
|
97
|
+
- spec/fixtures/invalid.cml
|
98
|
+
- spec/fixtures/script-style.cml
|
99
|
+
- spec/fixtures/segfault.cml
|
100
|
+
- spec/gold_spec.rb
|
101
|
+
- spec/meta_spec.rb
|
102
|
+
- spec/normalize_spec.rb
|
103
|
+
- spec/show_data_spec.rb
|
104
|
+
- spec/sorta_match.rb
|
105
|
+
- spec/spec_helper.rb
|
106
|
+
- spec/tags/checkbox_spec.rb
|
107
|
+
- spec/tags/checkboxes_spec.rb
|
108
|
+
- spec/tags/group_spec.rb
|
109
|
+
- spec/tags/hidden_spec.rb
|
110
|
+
- spec/tags/iterate_spec.rb
|
111
|
+
- spec/tags/meta_spec.rb
|
112
|
+
- spec/tags/multiple_text_spec.rb
|
113
|
+
- spec/tags/radios_spec.rb
|
114
|
+
- spec/tags/ratings_spec.rb
|
115
|
+
- spec/tags/search_spec.rb
|
116
|
+
- spec/tags/select_spec.rb
|
117
|
+
- spec/tags/tag_spec.rb
|
118
|
+
- spec/tags/text_spec.rb
|
119
|
+
- spec/tags/textarea_spec.rb
|
120
|
+
- spec/tags/thumb_spec.rb
|
121
|
+
- spec/tags/unknown_spec.rb
|
122
|
+
- spec/validation_spec.rb
|
123
|
+
has_rdoc: true
|
124
|
+
homepage: http://github.com/dolores/cml
|
125
|
+
licenses: []
|
126
|
+
|
127
|
+
post_install_message:
|
128
|
+
rdoc_options:
|
129
|
+
- --charset=UTF-8
|
130
|
+
require_paths:
|
131
|
+
- lib
|
132
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
133
|
+
none: false
|
134
|
+
requirements:
|
135
|
+
- - ">="
|
136
|
+
- !ruby/object:Gem::Version
|
137
|
+
hash: 3
|
138
|
+
segments:
|
139
|
+
- 0
|
140
|
+
version: "0"
|
141
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
142
|
+
none: false
|
143
|
+
requirements:
|
144
|
+
- - ">="
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
hash: 3
|
147
|
+
segments:
|
148
|
+
- 0
|
149
|
+
version: "0"
|
150
|
+
requirements: []
|
151
|
+
|
152
|
+
rubyforge_project:
|
153
|
+
rubygems_version: 1.4.2
|
154
|
+
signing_key:
|
155
|
+
specification_version: 3
|
156
|
+
summary: CML is CrowdFlower Markup Language
|
157
|
+
test_files:
|
158
|
+
- spec/complex_spec.rb
|
159
|
+
- spec/converters/jsawesome_spec.rb
|
160
|
+
- spec/gold_spec.rb
|
161
|
+
- spec/meta_spec.rb
|
162
|
+
- spec/normalize_spec.rb
|
163
|
+
- spec/show_data_spec.rb
|
164
|
+
- spec/sorta_match.rb
|
165
|
+
- spec/spec_helper.rb
|
166
|
+
- spec/tags/checkbox_spec.rb
|
167
|
+
- spec/tags/checkboxes_spec.rb
|
168
|
+
- spec/tags/group_spec.rb
|
169
|
+
- spec/tags/hidden_spec.rb
|
170
|
+
- spec/tags/iterate_spec.rb
|
171
|
+
- spec/tags/meta_spec.rb
|
172
|
+
- spec/tags/multiple_text_spec.rb
|
173
|
+
- spec/tags/radios_spec.rb
|
174
|
+
- spec/tags/ratings_spec.rb
|
175
|
+
- spec/tags/search_spec.rb
|
176
|
+
- spec/tags/select_spec.rb
|
177
|
+
- spec/tags/tag_spec.rb
|
178
|
+
- spec/tags/text_spec.rb
|
179
|
+
- spec/tags/textarea_spec.rb
|
180
|
+
- spec/tags/thumb_spec.rb
|
181
|
+
- spec/tags/unknown_spec.rb
|
182
|
+
- spec/validation_spec.rb
|