dolores-cml 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
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