rd_unobtrusive_date_picker 0.1.0

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.
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
+