dolores-cfml 0.2.1 → 0.2.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.2.1
1
+ 0.2.2
data/cfml.gemspec CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{cfml}
5
- s.version = "0.2.1"
5
+ s.version = "0.2.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-21}
9
+ s.date = %q{2009-08-23}
10
10
  s.description = %q{CFML let's you easily create form elements and custom interfaces for the CrowdFlower CroudSourcing platform}
11
11
  s.email = %q{vanpelt@doloreslabs.com}
12
12
  s.extra_rdoc_files = [
data/lib/cfml/parser.rb CHANGED
@@ -51,14 +51,17 @@ module CFML
51
51
 
52
52
  def valid?
53
53
  @errors = []
54
+ @doc.errors.each do |e|
55
+ @errors << "Malformed HTML. #{e.message.chomp} on line #{e.line} column #{e.column}."
56
+ end
54
57
  @tags.select {|t| t.validate? && t.name =~ /^\s*$/ }.each do |t|
55
- @errors << [t.to_s.split("\n")[0], "does not have a label or name specified."]
58
+ @errors << ["#{t.to_s.split("\n")[0]} does not have a label or name specified."]
56
59
  end
57
60
  dupes = @tags.select do |tag|
58
61
  tag.validate? && @tags.select {|t| t.name == tag.name}.length > 1
59
62
  end
60
63
  (dupes[1..-1] || []).each do |t|
61
- @errors << [t.to_s.split("\n")[0], "has a duplicated name, please specify a unique name attribute."]
64
+ @errors << ["#{t.to_s.split("\n")[0]} has a duplicated name, please specify a unique name attribute."]
62
65
  end
63
66
  @tags.each do |t|
64
67
  next unless t.children
@@ -66,7 +69,7 @@ module CFML
66
69
  t.children.select {|c| c.value == child.value}.length > 1
67
70
  end
68
71
  (dupes[1..-1] || []).each do |c|
69
- @errors << [c.to_s, "a child of #{t.to_s.split("\n")[0]} has a duplicated value, please specify a unique value attribute."]
72
+ @errors << ["#{c} a child of #{t.to_s.split("\n")[0]} has a duplicated value, please specify a unique value attribute."]
70
73
  end
71
74
  end
72
75
  @errors.length == 0
@@ -18,13 +18,16 @@ module CFML
18
18
  grouped? ? parsed : super
19
19
  end
20
20
 
21
+ def value
22
+ (@attrs["value"] || (grouped? ? @attrs["label"] : "true")).to_s
23
+ end
24
+
21
25
  def data
22
26
  default = ""
23
27
  if @attrs["default"]
24
28
  default = Hidden.new("<cf:hidden name=\"#{name}\" value=\"#{@attrs["default"]}\"/>", @opts).to_html
25
29
  end
26
- super.merge({
27
- "value" => (@attrs["value"] || (grouped? ? @attrs["label"] : "true")).to_s,
30
+ super.merge({
28
31
  "default" => default,
29
32
  "checked" => @attrs["checked"] ? "checked=\"checked\"" : "",
30
33
  "label" => @attrs["label"].to_s})
@@ -14,9 +14,12 @@ module CFML
14
14
  grouped? ? parsed : super
15
15
  end
16
16
 
17
+ def value
18
+ (@attrs["value"] || @attrs["label"]).to_s
19
+ end
20
+
17
21
  def data
18
22
  super.merge({
19
- "value" => (@attrs["value"] || @attrs["label"]).to_s,
20
23
  "checked" => @attrs["checked"] ? "checked=\"checked\"" : "",
21
24
  "label" => @attrs["label"].to_s
22
25
  })
@@ -5,15 +5,24 @@ describe "CFML Validation" do
5
5
  @p = Parser.new(File.read(File.dirname(__FILE__) + "/fixtures/invalid.cfml"), {:prefix => "u12345"})
6
6
  @p.should_not be_valid
7
7
  @p.errors.should == [
8
- ["<cf:checkbox label=\"\" value=\"yes\" gold=\"true\"/>", "does not have a label or name specified."],
9
- ["<cf:text label=\"Awesome\" validations=\"required email\"/>", "has a duplicated name, please specify a unique name attribute."],
10
- ["<cf:option label=\"Rad\"/>", "a child of <cf:select label=\"Awesome\"> has a duplicated value, please specify a unique value attribute."]
8
+ ["<cf:checkbox label=\"\" value=\"yes\" gold=\"true\"/> does not have a label or name specified."],
9
+ ["<cf:text label=\"Awesome\" validations=\"required email\"/> has a duplicated name, please specify a unique name attribute."],
10
+ ["<cf:option label=\"Rad\"/> a child of <cf:select label=\"Awesome\"> has a duplicated value, please specify a unique value attribute."]
11
11
  ]
12
12
  end
13
13
 
14
+ it "oks no duplicate checkbox" do
15
+ @p = Parser.new(<<-HTML)
16
+ <cf:checkboxes label="Cool">
17
+ <cf:checkbox label="one"/>
18
+ <cf:checkbox label="two"/>
19
+ </cf:checkboxes>
20
+ HTML
21
+ @p.should be_valid
22
+ end
23
+
14
24
  it "oks valid cfml" do
15
25
  @p = Parser.new(File.read(File.dirname(__FILE__) + "/fixtures/complex.cfml"), {:prefix => "u12345"})
16
- @p.valid?
17
26
  @p.should be_valid
18
27
  end
19
28
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dolores-cfml
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.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-21 00:00:00 -07:00
12
+ date: 2009-08-23 00:00:00 -07:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency