dolores-cfml 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -5,11 +5,14 @@ begin
5
5
  require 'jeweler'
6
6
  Jeweler::Tasks.new do |gem|
7
7
  gem.name = "cfml"
8
- gem.summary = "CFML is Crowd Flower Marup Language"
9
- gem.description = "CFML let's you easily create form elements and custom interfaces for the CrowdFlower Croudsourcing platform"
8
+ gem.summary = "CFML is Crowd Flower Markup Language"
9
+ gem.description = "CFML let's you easily create form elements and custom interfaces for the CrowdFlower CroudSourcing platform"
10
10
  gem.email = "vanpelt@doloreslabs.com"
11
11
  gem.homepage = "http://github.com/dolores/cfml"
12
12
  gem.authors = ["Chris Van Pelt"]
13
+ gem.add_dependency 'liquid', '>= 2.0.0'
14
+ gem.add_dependency 'nokogiri', '>= 1.3.3'
15
+ gem.add_dependency 'httparty', '>= 1.1.3'
13
16
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
14
17
  end
15
18
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
data/cfml.gemspec ADDED
@@ -0,0 +1,95 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{cfml}
5
+ s.version = "0.1.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Chris Van Pelt"]
9
+ s.date = %q{2009-08-16}
10
+ s.description = %q{CFML let's you easily create form elements and custom interfaces for the CrowdFlower CroudSourcing platform}
11
+ s.email = %q{vanpelt@doloreslabs.com}
12
+ s.extra_rdoc_files = [
13
+ "LICENSE",
14
+ "README.rdoc"
15
+ ]
16
+ s.files = [
17
+ ".document",
18
+ ".gitignore",
19
+ "LICENSE",
20
+ "README.rdoc",
21
+ "Rakefile",
22
+ "VERSION",
23
+ "cfml.gemspec",
24
+ "lib/cfml.rb",
25
+ "lib/cfml/liquid_filters.rb",
26
+ "lib/cfml/parser.rb",
27
+ "lib/cfml/tag.rb",
28
+ "lib/cfml/tags/checkbox.rb",
29
+ "lib/cfml/tags/checkboxes.rb",
30
+ "lib/cfml/tags/group.rb",
31
+ "lib/cfml/tags/hidden.rb",
32
+ "lib/cfml/tags/radio.rb",
33
+ "lib/cfml/tags/radios.rb",
34
+ "lib/cfml/tags/ratings.rb",
35
+ "lib/cfml/tags/select.rb",
36
+ "lib/cfml/tags/text.rb",
37
+ "lib/cfml/tags/textarea.rb",
38
+ "lib/cfml/tags/unknown.rb",
39
+ "spec/complex_spec.rb",
40
+ "spec/fixtures/complex.cfml",
41
+ "spec/gold_spec.rb",
42
+ "spec/sorta_match.rb",
43
+ "spec/spec_helper.rb",
44
+ "spec/tags/checkbox_spec.rb",
45
+ "spec/tags/checkboxes_spec.rb",
46
+ "spec/tags/group_spec.rb",
47
+ "spec/tags/hidden_spec.rb",
48
+ "spec/tags/radio_spec.rb",
49
+ "spec/tags/radios_spec.rb",
50
+ "spec/tags/select_spec.rb",
51
+ "spec/tags/text_spec.rb",
52
+ "spec/tags/textarea_spec.rb",
53
+ "spec/tags/unknown_spec.rb"
54
+ ]
55
+ s.homepage = %q{http://github.com/dolores/cfml}
56
+ s.rdoc_options = ["--charset=UTF-8"]
57
+ s.require_paths = ["lib"]
58
+ s.rubygems_version = %q{1.3.4}
59
+ s.summary = %q{CFML is Crowd Flower Markup Language}
60
+ s.test_files = [
61
+ "spec/complex_spec.rb",
62
+ "spec/gold_spec.rb",
63
+ "spec/sorta_match.rb",
64
+ "spec/spec_helper.rb",
65
+ "spec/tags/checkbox_spec.rb",
66
+ "spec/tags/checkboxes_spec.rb",
67
+ "spec/tags/group_spec.rb",
68
+ "spec/tags/hidden_spec.rb",
69
+ "spec/tags/radio_spec.rb",
70
+ "spec/tags/radios_spec.rb",
71
+ "spec/tags/select_spec.rb",
72
+ "spec/tags/text_spec.rb",
73
+ "spec/tags/textarea_spec.rb",
74
+ "spec/tags/unknown_spec.rb"
75
+ ]
76
+
77
+ if s.respond_to? :specification_version then
78
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
79
+ s.specification_version = 3
80
+
81
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
82
+ s.add_runtime_dependency(%q<liquid>, [">= 2.0.0"])
83
+ s.add_runtime_dependency(%q<nokogiri>, [">= 1.3.3"])
84
+ s.add_runtime_dependency(%q<httparty>, [">= 1.1.3"])
85
+ else
86
+ s.add_dependency(%q<liquid>, [">= 2.0.0"])
87
+ s.add_dependency(%q<nokogiri>, [">= 1.3.3"])
88
+ s.add_dependency(%q<httparty>, [">= 1.1.3"])
89
+ end
90
+ else
91
+ s.add_dependency(%q<liquid>, [">= 2.0.0"])
92
+ s.add_dependency(%q<nokogiri>, [">= 1.3.3"])
93
+ s.add_dependency(%q<httparty>, [">= 1.1.3"])
94
+ end
95
+ end
data/lib/cfml.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'nokogiri'
3
+ require 'json'
3
4
  require 'liquid'
4
5
 
5
6
  require 'cfml/parser'
@@ -1,14 +1,5 @@
1
1
  module CFML
2
- module LiquidFilters
3
- def marukurized(input)
4
- if input.blank?
5
- ""
6
- else
7
- marukurized = ::Maruku.new(input)
8
- marukurized.to_html
9
- end
10
- end
11
-
2
+ module LiquidFilters
12
3
  def to_json(input)
13
4
  input.to_json
14
5
  end
@@ -3,13 +3,9 @@ module CFML
3
3
  class Checkbox < Tag
4
4
  Template = <<-HTML.freeze
5
5
  {{default}}
6
- <input name="{{name}}" type="checkbox" value="{{value}}" class="{{classes}}"/>
6
+ <label><input name="{{name}}" type="checkbox" value="{{value}}" class="{{classes}}"/> {{label}}</label>
7
7
  HTML
8
8
 
9
- def wrapper(parsed)
10
- super("#{parsed} #{@attrs["label"]}", "label")
11
- end
12
-
13
9
  def prefix(name)
14
10
  super(name) + (grouped? ? "[]" : "")
15
11
  end
@@ -18,13 +14,17 @@ module CFML
18
14
  @cfml.parent && @cfml.parent.name == "checkboxes"
19
15
  end
20
16
 
17
+ def wrapper(parsed)
18
+ grouped? ? parsed : super
19
+ end
20
+
21
21
  def data
22
22
  default = ""
23
23
  if @attrs["default"]
24
24
  default = Parser.new("<cf:hidden name=\"#{name}\" value=\"#{@attrs["default"]}\"/>", @opts.merge(:no_wrap => true)).to_html
25
25
  end
26
26
  value = @attrs["value"] || (grouped? ? @attrs["label"] : "true")
27
- super.merge({"value" => value.to_s, "default" => default})
27
+ super.merge({"value" => value.to_s, "default" => default, "label" => @attrs["label"].to_s})
28
28
  end
29
29
  end
30
30
  end
@@ -2,16 +2,21 @@ module CFML
2
2
  module Tags
3
3
  class Radio < Tag
4
4
  Template = <<-HTML.freeze
5
- <input name="{{name}}" type="radio" value="{{value}}" class="{{classes}}"/>
5
+ <label><input name="{{name}}" type="radio" value="{{value}}" class="{{classes}}"/> {{label}}</label>
6
6
  HTML
7
7
 
8
+ #Radios should always be grouped, but for consistency with checkboxes, we check
9
+ def grouped?
10
+ @cfml.parent && @cfml.parent.name == "radios"
11
+ end
12
+
8
13
  def wrapper(parsed)
9
- super("#{parsed} #{@attrs["label"]}", "label")
14
+ grouped? ? parsed : super
10
15
  end
11
16
 
12
17
  def data
13
18
  value = @attrs["value"] || @attrs["label"]
14
- super.merge({"value" => value.to_s})
19
+ super.merge({"value" => value.to_s, "label" => @attrs["label"].to_s})
15
20
  end
16
21
  end
17
22
  end
data/spec/complex_spec.rb CHANGED
@@ -27,20 +27,20 @@ describe "CFML Complex" do
27
27
  <input name="u12345[email]" class="email validates-required validates-email" type="text" value="">
28
28
  </div>
29
29
  <div class="rad">
30
- <label class="checkbox">
31
- <input name="u12345[you_sure]" class="you_sure" type="checkbox" value="yes"> You sure?
32
- </label>
30
+ <div class="checkbox">
31
+ <label><input name="u12345[you_sure]" class="you_sure" type="checkbox" value="yes"> You sure?</label>
32
+ </div>
33
33
  </div>
34
34
  <div class="group only-if:awesome">
35
35
 
36
36
  <fieldset class="checkboxes">
37
37
  <legend>Cool checkboxes</legend>
38
38
 
39
- <label class="checkbox">
39
+ <label>
40
40
  <input name="u12345[rad][]" class="rad" type="checkbox" value="Wanna do it?">
41
41
  Wanna do it?</label>
42
42
 
43
- <label class="checkbox">
43
+ <label>
44
44
  <input name="u12345[rad][]" class="rad" type="checkbox" value="Sure?">
45
45
  Sure?</label>
46
46
 
@@ -8,9 +8,9 @@ describe "CFML Radio" do
8
8
  @p = Parser.new(cfml, :prefix => "u12345")
9
9
  @p.to_html.should sorta_match(<<-HTML)
10
10
  <div class="cfml u12345">
11
- <label class="checkbox">
12
- <input type="checkbox" value="true" name="u12345[check]" class="check"/> Check
13
- </label>
11
+ <div class="checkbox">
12
+ <label><input type="checkbox" value="true" name="u12345[check]" class="check"/> Check</label>
13
+ </div>
14
14
  </div>
15
15
  HTML
16
16
  end
@@ -22,9 +22,9 @@ describe "CFML Radio" do
22
22
  @p = Parser.new(cfml, :prefix => "u12345")
23
23
  @p.to_html.should sorta_match(<<-HTML)
24
24
  <div class="cfml u12345">
25
- <label class="checkbox">
26
- <input type="checkbox" value="yes" name="u12345[check]" class="check"/> Check
27
- </label>
25
+ <div class="checkbox">
26
+ <label><input type="checkbox" value="yes" name="u12345[check]" class="check"/> Check</label>
27
+ </div>
28
28
  </div>
29
29
  HTML
30
30
  end
@@ -36,10 +36,10 @@ describe "CFML Radio" do
36
36
  @p = Parser.new(cfml, :prefix => "u12345")
37
37
  @p.to_html.should sorta_match(<<-HTML)
38
38
  <div class="cfml u12345">
39
- <label class="checkbox">
39
+ <div class="checkbox">
40
40
  <input type="hidden" value="false" name="u12345[check]" class="check"/>
41
- <input type="checkbox" value="true" name="u12345[check]" class="check"/> Check
42
- </label>
41
+ <label><input type="checkbox" value="true" name="u12345[check]" class="check"/> Check</label>
42
+ </div>
43
43
  </div>
44
44
  HTML
45
45
  end
@@ -71,9 +71,9 @@ describe "CFML Radio" do
71
71
  @p.to_html.should sorta_match(<<-HTML)
72
72
  <div class="cfml u12345">
73
73
  <div class="rando">
74
- <label class="checkbox">
75
- <input type="checkbox" value="true" name="u12345[rad]" class="rad"/> Rad
76
- </label>
74
+ <div class="checkbox">
75
+ <label><input type="checkbox" value="true" name="u12345[rad]" class="rad"/> Rad</label>
76
+ </div>
77
77
  </div>
78
78
  </div>
79
79
  HTML
@@ -13,10 +13,10 @@ describe "CFML Checkboxes" do
13
13
  <div class="cfml u12345">
14
14
  <fieldset class="checkboxes">
15
15
  <legend>Cool checkboxes</legend>
16
- <label class="checkbox">
16
+ <label>
17
17
  <input type="checkbox" value="Wanna do it?" name="u12345[cool_checkboxes][]" class="cool_checkboxes"/> Wanna do it?
18
18
  </label>
19
- <label class="checkbox">
19
+ <label>
20
20
  <input type="checkbox" value="Sure?" name="u12345[cool_checkboxes][]" class="cool_checkboxes"/> Sure?
21
21
  </label>
22
22
  </fieldset>
@@ -17,10 +17,10 @@ describe "CFML Select" do
17
17
  <div class="group only-if:awesome">
18
18
  <fieldset class="checkboxes">
19
19
  <legend>Cool checkboxes</legend>
20
- <label class="checkbox">
20
+ <label>
21
21
  <input name="u12345[rad][]" class="rad" type="checkbox" value="Wanna do it?" /> Wanna do it?
22
22
  </label>
23
- <label class="checkbox">
23
+ <label>
24
24
  <input name="u12345[rad][]" class="rad" type="checkbox" value="Sure?" /> Sure?
25
25
  </label>
26
26
  </fieldset>
@@ -1,6 +1,7 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
2
2
 
3
3
  describe "CFML Radio" do
4
+ #Doesn't make sense on its own but tested here anyway...
4
5
  it "should render basic radio" do
5
6
  cfml = <<-HTML
6
7
  <cf:radio label="Rad"/>
@@ -8,9 +9,9 @@ describe "CFML Radio" do
8
9
  @p = Parser.new(cfml, :prefix => "u12345")
9
10
  @p.to_html.should sorta_match(<<-HTML)
10
11
  <div class="cfml u12345">
11
- <label class="radio">
12
- <input type="radio" value="Rad" name="u12345[rad]" class="rad"/> Rad
13
- </label>
12
+ <div class="radio">
13
+ <label><input type="radio" value="Rad" name="u12345[rad]" class="rad"/> Rad</label>
14
+ </div>
14
15
  </div>
15
16
  HTML
16
17
  end
@@ -13,10 +13,10 @@ describe "CFML Radios" do
13
13
  <div class="cfml u12345">
14
14
  <fieldset class="radios">
15
15
  <legend>Cool radios</legend>
16
- <label class="radio">
16
+ <label>
17
17
  <input type="radio" value="Wanna do it?" name="u12345[cool_radios]" class="cool_radios"/> Wanna do it?
18
18
  </label>
19
- <label class="radio">
19
+ <label>
20
20
  <input type="radio" value="Sure!" name="u12345[cool_radios]" class="cool_radios"/> Sure!
21
21
  </label>
22
22
  </fieldset>
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.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Van Pelt
@@ -9,11 +9,40 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-13 00:00:00 -07:00
12
+ date: 2009-08-16 00:00:00 -07:00
13
13
  default_executable:
14
- dependencies: []
15
-
16
- description: CFML let's you easily create form elements and custom interfaces for the CrowdFlower Croudsourcing platform
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: liquid
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.0.0
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: nokogiri
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.3.3
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: httparty
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 1.1.3
44
+ version:
45
+ description: CFML let's you easily create form elements and custom interfaces for the CrowdFlower CroudSourcing platform
17
46
  email: vanpelt@doloreslabs.com
18
47
  executables: []
19
48
 
@@ -29,6 +58,7 @@ files:
29
58
  - README.rdoc
30
59
  - Rakefile
31
60
  - VERSION
61
+ - cfml.gemspec
32
62
  - lib/cfml.rb
33
63
  - lib/cfml/liquid_filters.rb
34
64
  - lib/cfml/parser.rb
@@ -85,7 +115,7 @@ rubyforge_project:
85
115
  rubygems_version: 1.3.5
86
116
  signing_key:
87
117
  specification_version: 3
88
- summary: CFML is Crowd Flower Marup Language
118
+ summary: CFML is Crowd Flower Markup Language
89
119
  test_files:
90
120
  - spec/complex_spec.rb
91
121
  - spec/gold_spec.rb