dolores-cml 0.3.1 → 0.3.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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.1
1
+ 0.3.3
data/cml.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{cml}
5
- s.version = "0.3.1"
5
+ s.version = "0.3.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Chris Van Pelt"]
9
- s.date = %q{2009-08-26}
9
+ s.date = %q{2009-08-27}
10
10
  s.description = %q{CML let's you easily create form elements and custom interfaces for the CrowdFlower Croud Labor platform}
11
11
  s.email = %q{vanpelt@doloreslabs.com}
12
12
  s.extra_rdoc_files = [
data/lib/cml/tag.rb CHANGED
@@ -83,11 +83,11 @@ module CML
83
83
  def label(label, tag = "label")
84
84
  label ||= @attrs["name"].to_s.capitalize
85
85
  required = " <span class=\"required\">(required)</span>" if validations.include?("required")
86
- "<#{tag}>#{label}#{required}</#{tag.split(" ")[0]}>" if label.to_s != ""
86
+ "<#{tag} class=\"legend\">#{label}#{required}</#{tag.split(" ")[0]}>" if label.to_s != ""
87
87
  end
88
88
 
89
89
  def legend(label)
90
- label(label, "legend") if label
90
+ label(label, "h2") if label
91
91
  end
92
92
 
93
93
  def to_liquid
@@ -125,7 +125,7 @@ module CML
125
125
  (@opts[:data] || {}).merge({
126
126
  "name" => prefix(name),
127
127
  "label" => label(@attrs["label"]),
128
- "legend" => label(@attrs["label"], "h2 class=\"legend\""),
128
+ "legend" => legend(@attrs["label"]),
129
129
  "classes" => classes,
130
130
  "value" => value
131
131
  })
@@ -8,8 +8,14 @@ module CML
8
8
  </select>
9
9
  HTML
10
10
 
11
+ #Auto magically prepend a default option if required
12
+ def default
13
+ default = [Option.new("<cml:option value=\"\">#{@cml["default"]}</cml:option>", @opts)] if @cml["default"]
14
+ default ||= [Option.new("<cml:option value=\"\">Select one</cml:option", @opts)] if validations.include?('validates-required')
15
+ default || []
16
+ end
17
+
11
18
  def children
12
- default = @cml["default"] ? [Option.new("<cml:option value=\"\">#{@cml["default"]}</cml:option>", @opts)] : []
13
19
  default + @cml.xpath("cml:option").map do |c|
14
20
  Option.new(c, @opts)
15
21
  end
data/spec/complex_spec.rb CHANGED
@@ -8,7 +8,7 @@ describe "CML Complex" do
8
8
  <h1>This is my name</h1>
9
9
  <p>This is a description about me</p>
10
10
  <div class="select">
11
- <label>Awesome</label>
11
+ <label class="legend">Awesome</label>
12
12
  <select name="u12345[awesome]" class="awesome validates-required">
13
13
  <option value="">Choose an option</option>
14
14
  <option>Awesome</option>
@@ -19,11 +19,11 @@ describe "CML Complex" do
19
19
  <p class="instructions">Just be cool about it</p>
20
20
  </div>
21
21
  <div class="text">
22
- <label>Opinion</label>
22
+ <label class="legend">Opinion</label>
23
23
  <input name="u12345[opinion]" class="opinion validates-minLength:30 large" type="text" value="">
24
24
  </div>
25
25
  <div class="text">
26
- <label>Email</label>
26
+ <label class="legend">Email</label>
27
27
  <input name="u12345[email]" class="email validates-required validates-email" type="text" value="">
28
28
  </div>
29
29
  <div class="rad">
@@ -25,7 +25,7 @@ describe "CML Select" do
25
25
  </label>
26
26
  </div>
27
27
  <div class="text">
28
- <label>Something</label>
28
+ <label class="legend">Something</label>
29
29
  <input name="u12345[something]" class="something" type="text" value="" />
30
30
  </div>
31
31
  </div>
@@ -13,7 +13,7 @@ describe "CML Select" do
13
13
  @p.to_html.should sorta_match(<<-HTML)
14
14
  <div class="cml" id="u12345">
15
15
  <div class="select">
16
- <label>Basic</label>
16
+ <label class="legend">Basic</label>
17
17
  <select name="u12345[basic]" class="basic">
18
18
  <option>One</option>
19
19
  <option>Two</option>
@@ -24,6 +24,30 @@ describe "CML Select" do
24
24
  HTML
25
25
  end
26
26
 
27
+ it "should render correctly when required" do
28
+ cml = <<-HTML
29
+ <cml:select label="Basic" validates="required">
30
+ <cml:option value="oney">One</option>
31
+ <cml:option selected="true">Two</option>
32
+ <cml:option label="Awesome"/>
33
+ </cml:select>
34
+ HTML
35
+ @p = Parser.new(cml, :prefix => "u12345")
36
+ @p.to_html.should sorta_match(<<-HTML)
37
+ <div class="cml" id="u12345">
38
+ <div class="select">
39
+ <label class="legend">Basic</label>
40
+ <select name="u12345[basic]" class="basic validates-required">
41
+ <option value="">Select one</option>
42
+ <option value="oney">One</option>
43
+ <option selected="selected">Two</option>
44
+ <option>Awesome</option>
45
+ </select>
46
+ </div>
47
+ </div>
48
+ HTML
49
+ end
50
+
27
51
  it "should render complex select" do
28
52
  cml = <<-HTML
29
53
  <cml:select label="Basic" default="Choose an option">
@@ -36,7 +60,7 @@ describe "CML Select" do
36
60
  @p.to_html.should sorta_match(<<-HTML)
37
61
  <div class="cml" id="u12345">
38
62
  <div class="select">
39
- <label>Basic</label>
63
+ <label class="legend">Basic</label>
40
64
  <select name="u12345[basic]" class="basic">
41
65
  <option value="">Choose an option</option>
42
66
  <option value="oney">One</option>
@@ -9,7 +9,7 @@ describe "CML Text" do
9
9
  @p.to_html.should sorta_match(<<-HTML)
10
10
  <div class="cml" id="u12345">
11
11
  <div class="text">
12
- <label>Coolio</label>
12
+ <label class="legend">Coolio</label>
13
13
  <input type="text" value="" name="u12345[coolio]" class="coolio"/>
14
14
  </div>
15
15
  </div>
@@ -26,7 +26,7 @@ describe "CML Text" do
26
26
  @p.to_html.should sorta_match(<<-HTML)
27
27
  <div class="cml" id="u12345">
28
28
  <div class="text">
29
- <label>Coolio</label>
29
+ <label class="legend">Coolio</label>
30
30
  <input type="text" class="coolio validates-required small default" value="Awesome" name="u12345[coolio]" />
31
31
  <p class="instructions">Just be <b>cool</b> bro!</p>
32
32
  </div>
@@ -9,7 +9,7 @@ describe "CML Textarea" do
9
9
  @p.to_html.should sorta_match(<<-HTML)
10
10
  <div class="cml" id="u12345">
11
11
  <div class="textarea">
12
- <label>Sweet dude man!</label>
12
+ <label class="legend">Sweet dude man!</label>
13
13
  <textarea name="u12345[sweet_dude_man]" class="sweet_dude_man">4 sure</textarea>
14
14
  </div>
15
15
  </div>
@@ -24,7 +24,7 @@ describe "CML Textarea" do
24
24
  @p.to_html.should sorta_match(<<-HTML)
25
25
  <div class="cml" id="u12345">
26
26
  <div class="textarea">
27
- <label>Hot</label>
27
+ <label class="legend">Hot</label>
28
28
  <textarea name="u12345[hot]" class="hot validates-url default">Awesome</textarea>
29
29
  <p class="instructions">Nice</p>
30
30
  </div>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dolores-cml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Van Pelt
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-26 00:00:00 -07:00
12
+ date: 2009-08-27 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -97,6 +97,7 @@ files:
97
97
  - spec/validation_spec.rb
98
98
  has_rdoc: false
99
99
  homepage: http://github.com/dolores/cml
100
+ licenses:
100
101
  post_install_message:
101
102
  rdoc_options:
102
103
  - --charset=UTF-8
@@ -117,7 +118,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
118
  requirements: []
118
119
 
119
120
  rubyforge_project:
120
- rubygems_version: 1.2.0
121
+ rubygems_version: 1.3.5
121
122
  signing_key:
122
123
  specification_version: 3
123
124
  summary: CML is CrowdFlower Markup Language