rd_unobtrusive_date_picker 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. data/MIT-LICENSE +19 -0
  2. data/Manifest +45 -0
  3. data/README.rdoc +165 -0
  4. data/Rakefile +29 -0
  5. data/about.yml +7 -0
  6. data/init.rb +8 -0
  7. data/install.rb +14 -0
  8. data/lib/12_hour_time.rb +102 -0
  9. data/lib/unobtrusive_date_picker.rb +407 -0
  10. data/public/images/backstripes.gif +0 -0
  11. data/public/images/bg_header.jpg +0 -0
  12. data/public/images/bullet1.gif +0 -0
  13. data/public/images/bullet2.gif +0 -0
  14. data/public/images/cal.gif +0 -0
  15. data/public/images/gradient-e5e5e5-ffffff.gif +0 -0
  16. data/public/javascripts/datepicker.js +1445 -0
  17. data/public/javascripts/lang/af.js +40 -0
  18. data/public/javascripts/lang/ar.js +50 -0
  19. data/public/javascripts/lang/de.js +40 -0
  20. data/public/javascripts/lang/du.js +40 -0
  21. data/public/javascripts/lang/en.js +42 -0
  22. data/public/javascripts/lang/es.js +41 -0
  23. data/public/javascripts/lang/fi.js +40 -0
  24. data/public/javascripts/lang/fr.js +44 -0
  25. data/public/javascripts/lang/gr.js +40 -0
  26. data/public/javascripts/lang/he.js +49 -0
  27. data/public/javascripts/lang/it.js +13 -0
  28. data/public/javascripts/lang/nl.js +40 -0
  29. data/public/javascripts/lang/no.js +40 -0
  30. data/public/javascripts/lang/pt.js +50 -0
  31. data/public/javascripts/lang/ro.js +40 -0
  32. data/public/javascripts/lang/ru.js +40 -0
  33. data/public/javascripts/lang/sp.js +40 -0
  34. data/public/javascripts/lang/sv.js +41 -0
  35. data/public/javascripts/lang/ua.js +40 -0
  36. data/public/stylesheets/datepicker.css +263 -0
  37. data/spec/date_picker_tag_spec.rb +122 -0
  38. data/spec/date_picker_text_field_spec.rb +54 -0
  39. data/spec/datepicker_html_class_options_spec.rb +281 -0
  40. data/spec/spec.opts +12 -0
  41. data/spec/spec_helper.rb +52 -0
  42. data/spec/tag_matcher.rb +142 -0
  43. data/spec/unobtrusive_date_picker_spec.rb +129 -0
  44. data/tasks/datepicker_tasks.rake +17 -0
  45. data/uninstall.rb +12 -0
  46. data/unobtrusive_date_picker.gemspec +30 -0
  47. metadata +116 -0
@@ -0,0 +1,12 @@
1
+ -b
2
+ --diff
3
+ --color
4
+ --format
5
+ specdoc
6
+ -rubygems
7
+ --require
8
+ active_support
9
+ --require
10
+ action_controller
11
+ --require
12
+ action_controller/vendor/html-scanner
@@ -0,0 +1,52 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+ PLUGIN_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
3
+
4
+ require 'rubygems'
5
+ require 'spec'
6
+ require 'active_support'
7
+ require 'action_view'
8
+ require 'action_controller'
9
+ require File.join(PLUGIN_ROOT, 'spec/tag_matcher.rb')
10
+ require File.join(PLUGIN_ROOT, 'lib/12_hour_time.rb')
11
+ require File.join(PLUGIN_ROOT, 'lib/unobtrusive_date_picker.rb')
12
+
13
+
14
+ ActionView::Base.send :include, UnobtrusiveDatePicker::UnobtrusiveDatePickerHelper
15
+ ActionView::Helpers::DateHelper.send :include, UnobtrusiveDatePicker::UnobtrusiveDatePickerHelper
16
+ ActionView::Base.send :include, UnobtrusiveDatePicker::AssetTagHelper
17
+ ActionView::Helpers::AssetTagHelper.send :include, UnobtrusiveDatePicker::AssetTagHelper
18
+
19
+ ActionController::Base.perform_caching = false
20
+ ActionController::Base.consider_all_requests_local = true
21
+ ActionController::Base.allow_forgery_protection = false
22
+
23
+ def get_meridian_integer(meridian)
24
+ UnobtrusiveDatePicker::DateTimePickerSelector.const_get(meridian.upcase.to_sym)
25
+ end
26
+
27
+ describe "all date picker helpers", :shared => true do
28
+ include ActionView::Helpers::TagHelper
29
+ include ActionView::Helpers::TextHelper
30
+ include ActionView::Helpers::UrlHelper
31
+ include ActionView::Helpers::FormTagHelper
32
+ include ActionView::Helpers::FormHelper
33
+ include ActionView::Helpers::DateHelper
34
+ include ActionView::Helpers::ActiveRecordHelper
35
+ include UnobtrusiveDatePicker::UnobtrusiveDatePickerHelper
36
+ end
37
+
38
+ Spec::Runner.configure do |config|
39
+
40
+ config.include(TagMatcher)
41
+ config.include(SelectorMatcher)
42
+
43
+ # == Mock Framework
44
+ #
45
+ # RSpec uses it's own mocking framework by default. If you prefer to
46
+ # use mocha, flexmock or RR, uncomment the appropriate line:
47
+ #
48
+ # config.mock_with :mocha
49
+ # config.mock_with :flexmock
50
+ # config.mock_with :rr
51
+
52
+ end
@@ -0,0 +1,142 @@
1
+ require 'rubygems'
2
+ require 'active_support'
3
+ require 'action_controller'
4
+ require 'rexml/document'
5
+ require 'action_controller/vendor/html-scanner'
6
+
7
+ module TagMatcher
8
+
9
+ class IncludeTag
10
+ def initialize(*expected)
11
+ @expected = expected.size > 1 ? expected.last.merge({ :tag => expected.first.to_s }) : expected.first
12
+ end
13
+
14
+ def matches?(target)
15
+ @target = HTML::Document.new(target)
16
+ !@target.find(@expected).nil?
17
+ end
18
+
19
+ def failure_message
20
+ "expected tag, but no tag found matching #{@expected.inspect} in #{@target.root.to_s}"
21
+ end
22
+
23
+ def negative_failure_message
24
+ "expected no tag, but tag was found matching #{@expected.inspect} in #{@target.root.to_s}"
25
+ end
26
+ end
27
+
28
+ def include_tag(*opts)
29
+ IncludeTag.new(*opts)
30
+ end
31
+
32
+ end
33
+
34
+ module SelectorMatcher
35
+ class SelectorTag
36
+ def initialize(*expected)
37
+ # Then get mandatory selector.
38
+ arg = expected.shift
39
+
40
+ # string and we pass all remaining arguments.
41
+ # Array and we pass the argument. Also accepts selector itself.
42
+ case arg
43
+ when String
44
+ selector = HTML::Selector.new(arg, expected)
45
+ when Array
46
+ selector = HTML::Selector.new(*arg)
47
+ when HTML::Selector
48
+ selector = arg
49
+ else raise ArgumentError, "Expecting a selector as the first argument"
50
+ end
51
+
52
+ # Next argument is used for equality tests.
53
+ equals = {}
54
+ case arg = expected.shift
55
+ when Hash
56
+ equals = arg
57
+ when String, Regexp
58
+ equals[:text] = arg
59
+ when Integer
60
+ equals[:count] = arg
61
+ when Range
62
+ equals[:minimum] = arg.begin
63
+ equals[:maximum] = arg.end
64
+ when FalseClass
65
+ equals[:count] = 0
66
+ when NilClass, TrueClass
67
+ equals[:minimum] = 1
68
+ else raise ArgumentError, "I don't understand what you're trying to match"
69
+ end
70
+
71
+ # By default we're looking for at least one match.
72
+ if equals[:count]
73
+ equals[:minimum] = equals[:maximum] = equals[:count]
74
+ else
75
+ equals[:minimum] = 1 unless equals[:minimum]
76
+ end
77
+
78
+ @expected = {:selector => selector, :equals => equals}
79
+ end
80
+
81
+ def matches?(target)
82
+ @target = HTML::Document.new(target, false, false).root
83
+
84
+ matches = @expected[:selector].select(@target)
85
+
86
+ # If text/html, narrow down to those elements that match it.
87
+ content_mismatch = nil
88
+ if match_with = @expected[:equals][:text]
89
+ matches.delete_if do |match|
90
+ text = ""
91
+ text.force_encoding(match_with.encoding) if text.respond_to?(:force_encoding)
92
+ stack = match.children.reverse
93
+ while node = stack.pop
94
+ if node.tag?
95
+ stack.concat node.children.reverse
96
+ else
97
+ content = node.content
98
+ content.force_encoding(match_with.encoding) if content.respond_to?(:force_encoding)
99
+ text << content
100
+ end
101
+ end
102
+ text.strip! unless NO_STRIP.include?(match.name)
103
+ unless match_with.is_a?(Regexp) ? (text =~ match_with) : (text == match_with.to_s)
104
+ true
105
+ end
106
+ end
107
+ elsif match_with = @expected[:equals][:html]
108
+ matches.delete_if do |match|
109
+ html = match.children.map(&:to_s).join
110
+ html.strip! unless NO_STRIP.include?(match.name)
111
+ unless match_with.is_a?(Regexp) ? (html =~ match_with) : (html == match_with.to_s)
112
+ true
113
+ end
114
+ end
115
+ end
116
+
117
+ # Test minimum/maximum occurrence.
118
+ min, max = @expected[:equals][:minimum], @expected[:equals][:maximum]
119
+ if min && !max
120
+ return matches.size >= min
121
+ elsif max && !min
122
+ return matches.size <= max
123
+ elsif min && max
124
+ return (matches.size >= min) && (matches.size <= max)
125
+ else
126
+ return true
127
+ end
128
+ end
129
+
130
+ def failure_message
131
+ "expected tag, but no tag found matching #{@expected.inspect} in #{@target.to_s}"
132
+ end
133
+
134
+ def negative_failure_message
135
+ "expected no tag, but tag was found matching #{@expected.inspect} in #{@target.to_s}"
136
+ end
137
+ end
138
+
139
+ def selector_tag(*opts)
140
+ SelectorTag.new(*opts)
141
+ end
142
+ end
@@ -0,0 +1,129 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe "all datetime picker form helpers", :shared => true do
4
+ before(:each) do
5
+ @time = Time.parse("March 15, 2007 2:37PM")
6
+ @datetime_model = stub('DateTimeModel', :datetime => @time, :id => 2)
7
+ end
8
+
9
+ after(:each) do
10
+ @time, @date_time_model = nil
11
+ end
12
+ end
13
+
14
+ describe UnobtrusiveDatePicker, "with a stub ActiveRecord object" do
15
+ it_should_behave_like "all date picker helpers"
16
+ it_should_behave_like "all datetime picker form helpers"
17
+
18
+ before(:each) do
19
+ @datepicker_html = unobtrusive_datetime_picker(:datetime_model, :datetime)
20
+ end
21
+
22
+ it "should select the year from model object attribute" do
23
+ year_id = 'datetime_model_datetime'
24
+ year_name = 'datetime_model[datetime(1i)]'
25
+
26
+ @datepicker_html.should include_tag(:select, :attributes => {:id => year_id, :name => year_name, :class => 'split-date'},
27
+ :child => {:tag => 'option',
28
+ :attributes => {:value => @time.year.to_s, :selected => 'selected'},
29
+ :content => @time.year.to_s})
30
+ end
31
+
32
+ it "should select the month from model object attribute" do
33
+ month_id = 'datetime_model_datetime-mm'
34
+ month_name = 'datetime_model[datetime(2i)]'
35
+
36
+ @datepicker_html.should include_tag(:select, :attributes => {:id => month_id, :name => month_name},
37
+ :child => {:tag => 'option',
38
+ :attributes => {:value => @time.month.to_s, :selected => 'selected'},
39
+ :content => Date::MONTHNAMES[@time.month]})
40
+ end
41
+
42
+ it "should select the day from model object attribute" do
43
+ day_id = 'datetime_model_datetime-dd'
44
+ day_name = 'datetime_model[datetime(3i)]'
45
+
46
+ @datepicker_html.should include_tag(:select, :attributes => {:id => day_id, :name => day_name},
47
+ :child => {:tag => 'option',
48
+ :attributes => {:value => @time.day.to_s, :selected => 'selected'},
49
+ :content => @time.day.to_s})
50
+ end
51
+
52
+ it "should select the hour from model object attribute" do
53
+ hour_id = 'datetime_model_datetime_4i'
54
+ hour_name = 'datetime_model[datetime(4i)]'
55
+
56
+ @datepicker_html.should include_tag(:select, :attributes => {:id => hour_id, :name => hour_name},
57
+ :child => {:tag => 'option',
58
+ :attributes => {:value => sprintf("%02d", @time.strftime("%I").to_i), :selected => 'selected'},
59
+ :content => sprintf("%02d", @time.strftime("%I").to_i)})
60
+ end
61
+
62
+ it "should select the minute from model object attribute" do
63
+ minute_id = 'datetime_model_datetime_5i'
64
+ minute_name = 'datetime_model[datetime(5i)]'
65
+
66
+ @datepicker_html.should include_tag(:select, :attributes => {:id => minute_id, :name => minute_name},
67
+ :child => {:tag => 'option',
68
+ :attributes => {:value => @time.strftime("%M"), :selected => 'selected'},
69
+ :content => @time.strftime("%M")})
70
+ end
71
+
72
+ it "should select the meridian from model object attribute" do
73
+ meridian_id = 'datetime_model_datetime_7i'
74
+ meridian_name = 'datetime_model[datetime(7i)]'
75
+
76
+ @datepicker_html.should include_tag(:select, :attributes => {:id => meridian_id, :name => meridian_name},
77
+ :child => {:tag => 'option',
78
+ :attributes => {:value => get_meridian_integer(@time.strftime("%p")), :selected => 'selected'},
79
+ :content => @time.strftime("%p")})
80
+ end
81
+
82
+ after(:each) do
83
+ @datepicker_html = nil
84
+ end
85
+
86
+ end
87
+
88
+
89
+ describe UnobtrusiveDatePicker, "with a minute step and month numbers options specified" do
90
+ it_should_behave_like "all date picker helpers"
91
+ it_should_behave_like "all datetime picker form helpers"
92
+
93
+ before(:each) do
94
+ @step = 15
95
+ @datepicker_html = unobtrusive_datetime_picker(:datetime_model, :datetime, {:use_month_numbers => true, :minute_step => @step})
96
+ end
97
+
98
+ it "should use month numbers for option text" do
99
+ month_id = 'datetime_model_datetime-mm'
100
+ month_name = 'datetime_model[datetime(2i)]'
101
+
102
+ 1.upto(12) do |month|
103
+ @datepicker_html.should include_tag(:select, :attributes => {:id => month_id, :name => month_name},
104
+ :child => {:tag => 'option',
105
+ :attributes => {:value => month.to_s},
106
+ :content => month.to_s})
107
+ end
108
+ end
109
+
110
+ it "should select the minute from model object attribute" do
111
+ minute_id = 'datetime_model_datetime_5i'
112
+ minute_name = 'datetime_model[datetime(5i)]'
113
+
114
+
115
+ @datepicker_html.should include_tag(:select, :attributes => {:id => minute_id, :name => minute_name},
116
+ :children => {:count => 4, :only => {:tag => 'option'}})
117
+ (0..59).step(@step) do |minute|
118
+ @datepicker_html.should include_tag(:select, :attributes => {:id => minute_id, :name => minute_name},
119
+ :child => {:tag => 'option',
120
+ :attributes => {:value => sprintf("%02d", minute)},
121
+ :content => sprintf("%02d", minute)})
122
+ end
123
+ end
124
+
125
+ after(:each) do
126
+ @datepicker_html = nil
127
+ end
128
+
129
+ end
@@ -0,0 +1,17 @@
1
+ namespace :datepicker do
2
+ require 'fileutils'
3
+
4
+ desc "Replace the old javascript and CSS files with the new ones"
5
+ task :update do
6
+ js_dir = File.dirname(__FILE__) + '/../../../../public/javascripts/'
7
+ datepicker_js = js_dir + 'datepicker.js'
8
+ lang_dir = js_dir + 'lang'
9
+ datepicker_css = File.dirname(__FILE__) + '/../../../../public/stylesheets/datepicker.css'
10
+ images_dir = File.dirname(__FILE__) + '/../../../../public/images/datepicker'
11
+
12
+ FileUtils.cp File.dirname(__FILE__) + '/../public/javascripts/datepicker.js', datepicker_js
13
+ FileUtils.cp_r File.dirname(__FILE__) + '/../public/javascripts/lang/', lang_dir
14
+ FileUtils.cp File.dirname(__FILE__) + '/../public/stylesheets/datepicker.css', datepicker_css
15
+ FileUtils.cp_r File.dirname(__FILE__) + '/../public/images/', images_dir
16
+ end
17
+ end
@@ -0,0 +1,12 @@
1
+ require 'fileutils'
2
+
3
+ js_dir = File.dirname(__FILE__) + '/../../../public/javascripts/'
4
+ datepicker_js = js_dir + 'datepicker.js'
5
+ lang_dir = js_dir + 'lang'
6
+ datepicker_css = File.dirname(__FILE__) + '/../../../public/stylesheets/datepicker.css'
7
+ images_dir = File.dirname(__FILE__) + '/../../../public/images/datepicker'
8
+
9
+ FileUtils.rm datepicker_js
10
+ FileUtils.rm_r lang_dir
11
+ FileUtils.rm datepicker_css
12
+ FileUtils.rm_r images_dir
@@ -0,0 +1,30 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{rd_unobtrusive_date_picker}
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Brian landau"]
9
+ s.date = %q{2010-06-24}
10
+ s.description = %q{Helper for creating a date or date-time picker that uses the Unobtrusive Date-Picker Widge}
11
+ s.email = %q{}
12
+ s.extra_rdoc_files = ["README.rdoc", "lib/12_hour_time.rb", "lib/unobtrusive_date_picker.rb", "tasks/datepicker_tasks.rake"]
13
+ s.files = ["MIT-LICENSE", "Manifest", "README.rdoc", "Rakefile", "about.yml", "init.rb", "install.rb", "lib/12_hour_time.rb", "lib/unobtrusive_date_picker.rb", "public/images/backstripes.gif", "public/images/bg_header.jpg", "public/images/bullet1.gif", "public/images/bullet2.gif", "public/images/cal.gif", "public/images/gradient-e5e5e5-ffffff.gif", "public/javascripts/datepicker.js", "public/javascripts/lang/af.js", "public/javascripts/lang/ar.js", "public/javascripts/lang/de.js", "public/javascripts/lang/du.js", "public/javascripts/lang/en.js", "public/javascripts/lang/es.js", "public/javascripts/lang/fi.js", "public/javascripts/lang/fr.js", "public/javascripts/lang/gr.js", "public/javascripts/lang/he.js", "public/javascripts/lang/it.js", "public/javascripts/lang/nl.js", "public/javascripts/lang/no.js", "public/javascripts/lang/pt.js", "public/javascripts/lang/ro.js", "public/javascripts/lang/ru.js", "public/javascripts/lang/sp.js", "public/javascripts/lang/sv.js", "public/javascripts/lang/ua.js", "public/stylesheets/datepicker.css", "spec/date_picker_tag_spec.rb", "spec/date_picker_text_field_spec.rb", "spec/datepicker_html_class_options_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "spec/tag_matcher.rb", "spec/unobtrusive_date_picker_spec.rb", "tasks/datepicker_tasks.rake", "uninstall.rb", "unobtrusive_date_picker.gemspec"]
14
+ s.homepage = %q{http://github.com/brianjlandau/unobtrusive_date_picker}
15
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Unobtrusive_date_picker", "--main", "README.rdoc"]
16
+ s.require_paths = ["lib"]
17
+ s.rubyforge_project = %q{unobtrusive_date_picker}
18
+ s.rubygems_version = %q{1.3.6}
19
+ s.summary = %q{Helper for creating a date or date-time picker that uses the Unobtrusive Date-Picker Widge}
20
+
21
+ if s.respond_to? :specification_version then
22
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
+ s.specification_version = 3
24
+
25
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
26
+ else
27
+ end
28
+ else
29
+ end
30
+ end
metadata ADDED
@@ -0,0 +1,116 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rd_unobtrusive_date_picker
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: ruby
11
+ authors:
12
+ - Brian landau
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-06-24 00:00:00 +04:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: Helper for creating a date or date-time picker that uses the Unobtrusive Date-Picker Widge
22
+ email: ""
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files:
28
+ - README.rdoc
29
+ - lib/12_hour_time.rb
30
+ - lib/unobtrusive_date_picker.rb
31
+ - tasks/datepicker_tasks.rake
32
+ files:
33
+ - MIT-LICENSE
34
+ - Manifest
35
+ - README.rdoc
36
+ - Rakefile
37
+ - about.yml
38
+ - init.rb
39
+ - install.rb
40
+ - lib/12_hour_time.rb
41
+ - lib/unobtrusive_date_picker.rb
42
+ - public/images/backstripes.gif
43
+ - public/images/bg_header.jpg
44
+ - public/images/bullet1.gif
45
+ - public/images/bullet2.gif
46
+ - public/images/cal.gif
47
+ - public/images/gradient-e5e5e5-ffffff.gif
48
+ - public/javascripts/datepicker.js
49
+ - public/javascripts/lang/af.js
50
+ - public/javascripts/lang/ar.js
51
+ - public/javascripts/lang/de.js
52
+ - public/javascripts/lang/du.js
53
+ - public/javascripts/lang/en.js
54
+ - public/javascripts/lang/es.js
55
+ - public/javascripts/lang/fi.js
56
+ - public/javascripts/lang/fr.js
57
+ - public/javascripts/lang/gr.js
58
+ - public/javascripts/lang/he.js
59
+ - public/javascripts/lang/it.js
60
+ - public/javascripts/lang/nl.js
61
+ - public/javascripts/lang/no.js
62
+ - public/javascripts/lang/pt.js
63
+ - public/javascripts/lang/ro.js
64
+ - public/javascripts/lang/ru.js
65
+ - public/javascripts/lang/sp.js
66
+ - public/javascripts/lang/sv.js
67
+ - public/javascripts/lang/ua.js
68
+ - public/stylesheets/datepicker.css
69
+ - spec/date_picker_tag_spec.rb
70
+ - spec/date_picker_text_field_spec.rb
71
+ - spec/datepicker_html_class_options_spec.rb
72
+ - spec/spec.opts
73
+ - spec/spec_helper.rb
74
+ - spec/tag_matcher.rb
75
+ - spec/unobtrusive_date_picker_spec.rb
76
+ - tasks/datepicker_tasks.rake
77
+ - uninstall.rb
78
+ - unobtrusive_date_picker.gemspec
79
+ has_rdoc: true
80
+ homepage: http://github.com/brianjlandau/unobtrusive_date_picker
81
+ licenses: []
82
+
83
+ post_install_message:
84
+ rdoc_options:
85
+ - --line-numbers
86
+ - --inline-source
87
+ - --title
88
+ - Unobtrusive_date_picker
89
+ - --main
90
+ - README.rdoc
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ segments:
98
+ - 0
99
+ version: "0"
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ segments:
105
+ - 1
106
+ - 2
107
+ version: "1.2"
108
+ requirements: []
109
+
110
+ rubyforge_project: unobtrusive_date_picker
111
+ rubygems_version: 1.3.6
112
+ signing_key:
113
+ specification_version: 3
114
+ summary: Helper for creating a date or date-time picker that uses the Unobtrusive Date-Picker Widge
115
+ test_files: []
116
+