recurring_select 1.0.2 → 1.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.
- checksums.yaml +15 -0
- data/README.md +20 -13
- data/Rakefile +12 -27
- data/app/assets/javascripts/recurring_select.js.coffee +5 -5
- data/app/helpers/recurring_select_helper.rb +8 -88
- data/app/helpers/utilities/form_options_ext.rb +64 -0
- data/app/helpers/utilities/tag_ext.rb +53 -0
- data/lib/recurring_select/version.rb +1 -1
- metadata +22 -21
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
MWJkOGI0NDIxNzQ1MzU4MTBmOGI1MGM4OTI3YThlZTQxNzQyNTIyMg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NTM0NDE2OGRiZDYxOWFiZWM4ZjM4OTVhNDBiNGNmZGUzMGQ2NTNiYQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NGJhMzZhZTA3ZWFlNTg1OWQwNTVhMWE0MDIyYzJmYjQwM2NkNDllNDhlZGU0
|
10
|
+
NDA5ZjhjNzBhYWRhMGZhNzkwYmExMTkwYTgwMDIzOWM4ZjQwNjk5ZGJjMWE4
|
11
|
+
YzFkM2M4NWJhZjNmYWIxZTk2MDEzYjBhYjU3ZmUyM2QyMTY5M2U=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
MmY2OGVhNzFlNWQ0NDgzOGZiYTAyN2NmNzk1OTA5NzkzOGQyY2Q5NDFmYzJl
|
14
|
+
OTkxZDhmYWU1MTJhOGM3OWQxMTk5ZWZiOTIwMzU2Njk4YzRmZTM1NjJiYTMz
|
15
|
+
Y2Q3ODRjNDc5ZDM2ZWMyYmNmNzkzYzA3ZDIwMGQwODYxODYyN2Y=
|
data/README.md
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
RecurringSelect
|
2
2
|
=============
|
3
3
|
|
4
|
-
[](https://travis-ci.org/GetJobber/recurring_select)
|
4
|
+
[](https://travis-ci.org/GetJobber/recurring_select) [](https://codeclimate.com/github/GetJobber/recurring_select)
|
5
5
|
|
6
6
|
This is a gem to add a number of selectors and helpers for working with recurring schedules in a rails app.
|
7
7
|
It uses the [IceCube](https://github.com/seejohnrun/ice_cube) recurring scheduling gem.
|
8
8
|
|
9
9
|
Created by the [Jobber](http://getjobber.com) team for Jobber, the leading business management tool for field service companies.
|
10
10
|
|
11
|
-
Check out the [live demo](http://recurring-select-demo.herokuapp.com/)
|
11
|
+
Check out the [live demo](http://recurring-select-demo.herokuapp.com/) (code in [spec\dummy](https://github.com/GetJobber/recurring_select/tree/master/spec/dummy) folder)
|
12
12
|
|
13
13
|
|
14
14
|
Usage
|
@@ -19,18 +19,18 @@ Basic selector:
|
|
19
19
|
Load the gem:
|
20
20
|
`gem 'recurring_select`
|
21
21
|
|
22
|
-
Require assets
|
23
|
-
Desktop view
|
24
|
-
application.js
|
25
|
-
`//= require recurring_select`
|
26
|
-
application.css
|
27
|
-
`//= require recurring_select`
|
22
|
+
Require assets
|
23
|
+
Desktop view
|
24
|
+
application.js
|
25
|
+
`//= require recurring_select`
|
26
|
+
application.css
|
27
|
+
`//= require recurring_select`
|
28
28
|
|
29
|
-
or jQueryMobile interface
|
30
|
-
application.js
|
31
|
-
`//= require jquery-mobile-rs`
|
32
|
-
application.css
|
33
|
-
`//= require jquery-mobile-rs`
|
29
|
+
or jQueryMobile interface
|
30
|
+
application.js
|
31
|
+
`//= require jquery-mobile-rs`
|
32
|
+
application.css
|
33
|
+
`//= require jquery-mobile-rs`
|
34
34
|
|
35
35
|
|
36
36
|
In the form view call the helper:
|
@@ -78,6 +78,13 @@ Start the dummy server for clicking around the interface:
|
|
78
78
|
Use [Guard](https://github.com/guard/guard) and RSpec for all tests. I'd
|
79
79
|
love to get jasmine running also, but haven't had time yet.
|
80
80
|
|
81
|
+
Tests can be ran against different versions of Rails like so:
|
82
|
+
|
83
|
+
```
|
84
|
+
rake appraisal:install
|
85
|
+
rake appraisal
|
86
|
+
```
|
87
|
+
|
81
88
|
Feel free to open issues or send pull requests.
|
82
89
|
|
83
90
|
Licensing
|
data/Rakefile
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
#!/usr/bin/env rake
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
rescue LoadError
|
10
|
-
require 'rdoc/rdoc'
|
11
|
-
require 'rake/rdoctask'
|
12
|
-
RDoc::Task = Rake::RDocTask
|
13
|
-
end
|
2
|
+
require 'rubygems'
|
3
|
+
require 'bundler/setup'
|
4
|
+
require 'appraisal'
|
5
|
+
|
6
|
+
require 'rspec/core/rake_task'
|
7
|
+
RSpec::Core::RakeTask.new(:spec)
|
8
|
+
task :default => :spec
|
14
9
|
|
10
|
+
require 'rubygems/package_task'
|
11
|
+
Bundler::GemHelper.install_tasks
|
12
|
+
|
13
|
+
require 'rdoc/task'
|
15
14
|
RDoc::Task.new(:rdoc) do |rdoc|
|
16
15
|
rdoc.rdoc_dir = 'rdoc'
|
17
16
|
rdoc.title = 'RecurringSelect'
|
@@ -20,20 +19,6 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
20
19
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
21
20
|
end
|
22
21
|
|
23
|
-
APP_RAKEFILE = File.expand_path("../
|
22
|
+
APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
|
24
23
|
load 'rails/tasks/engine.rake'
|
25
24
|
|
26
|
-
|
27
|
-
Bundler::GemHelper.install_tasks
|
28
|
-
|
29
|
-
require 'rake/testtask'
|
30
|
-
|
31
|
-
Rake::TestTask.new(:test) do |t|
|
32
|
-
t.libs << 'lib'
|
33
|
-
t.libs << 'test'
|
34
|
-
t.pattern = 'test/**/*_test.rb'
|
35
|
-
t.verbose = false
|
36
|
-
end
|
37
|
-
|
38
|
-
|
39
|
-
task :default => :test
|
@@ -49,10 +49,10 @@ methods =
|
|
49
49
|
|
50
50
|
|
51
51
|
insert_option: (new_rule_str, new_rule_json) ->
|
52
|
-
|
53
|
-
if
|
54
|
-
|
55
|
-
|
52
|
+
separator = @find("option:disabled")
|
53
|
+
if separator.length == 0
|
54
|
+
separator = @find("option")
|
55
|
+
separator = separator.last()
|
56
56
|
|
57
57
|
new_option = $(document.createElement("option"))
|
58
58
|
new_option.attr "data-custom", true
|
@@ -62,7 +62,7 @@ methods =
|
|
62
62
|
|
63
63
|
new_option.text new_rule_str
|
64
64
|
new_option.val new_rule_json
|
65
|
-
new_option.insertBefore
|
65
|
+
new_option.insertBefore separator
|
66
66
|
|
67
67
|
methods: ->
|
68
68
|
methods
|
@@ -1,97 +1,17 @@
|
|
1
1
|
require "ice_cube"
|
2
|
+
require_relative "utilities/form_options_ext"
|
3
|
+
require_relative "utilities/tag_ext"
|
2
4
|
|
3
5
|
module RecurringSelectHelper
|
4
6
|
module FormHelper
|
5
7
|
def select_recurring(object, method, default_schedules = nil, options = {}, html_options = {})
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
options_array = []
|
14
|
-
blank_option_label = options[:blank_label] || "- not recurring -"
|
15
|
-
blank_option = [blank_option_label, "null"]
|
16
|
-
seperator = ["or", {:disabled => true}]
|
17
|
-
|
18
|
-
if default_schedules.blank?
|
19
|
-
if currently_selected_rule
|
20
|
-
options_array << blank_option if options[:allow_blank]
|
21
|
-
options_array << ice_cube_rule_to_option(currently_selected_rule)
|
22
|
-
options_array << seperator
|
23
|
-
options_array << ["Change schedule...", "custom"]
|
24
|
-
else
|
25
|
-
options_array << blank_option
|
26
|
-
options_array << ["Set schedule...", "custom"]
|
27
|
-
end
|
28
|
-
else
|
29
|
-
options_array << blank_option if options[:allow_blank]
|
30
|
-
|
31
|
-
options_array += default_schedules.collect{|dc|
|
32
|
-
ice_cube_rule_to_option(dc)
|
33
|
-
}
|
34
|
-
|
35
|
-
if currently_selected_rule and not current_rule_in_defaults?(currently_selected_rule, default_schedules)
|
36
|
-
options_array << ice_cube_rule_to_option(currently_selected_rule, true)
|
37
|
-
custom_label = ["New custom schedule...", "custom"]
|
38
|
-
else
|
39
|
-
custom_label = ["Custom schedule...", "custom"]
|
40
|
-
end
|
41
|
-
|
42
|
-
options_array << seperator
|
43
|
-
options_array << custom_label
|
44
|
-
end
|
45
|
-
|
46
|
-
options_for_select(options_array, currently_selected_rule.to_json)
|
47
|
-
end
|
48
|
-
|
49
|
-
private
|
50
|
-
|
51
|
-
def ice_cube_rule_to_option(supplied_rule, custom = false)
|
52
|
-
return supplied_rule unless RecurringSelect.is_valid_rule?(supplied_rule)
|
53
|
-
|
54
|
-
rule = RecurringSelect.dirty_hash_to_rule(supplied_rule)
|
55
|
-
ar = [rule.to_s, rule.to_hash.to_json]
|
56
|
-
|
57
|
-
if custom
|
58
|
-
ar[0] << "*"
|
59
|
-
ar << {"data-custom" => true}
|
8
|
+
if defined?(RecurringSelectHelper::RecurringSelectTag)
|
9
|
+
# === Rails 4
|
10
|
+
RecurringSelectTag.new(object, method, self, default_schedules, options, html_options).render
|
11
|
+
elsif defined?(RecurringSelectHelper::InstanceTag)
|
12
|
+
# === Rails 3
|
13
|
+
InstanceTag.new(object, method, self, options.delete(:object)).to_recurring_select_tag(default_schedules, options, html_options)
|
60
14
|
end
|
61
|
-
|
62
|
-
ar
|
63
|
-
end
|
64
|
-
|
65
|
-
def current_rule_in_defaults?(currently_selected_rule, default_schedules)
|
66
|
-
default_schedules.any?{|option|
|
67
|
-
option == currently_selected_rule or
|
68
|
-
(option.is_a?(Array) and option[1] == currently_selected_rule)
|
69
|
-
}
|
70
|
-
end
|
71
|
-
|
72
|
-
end
|
73
|
-
|
74
|
-
class InstanceTag < ActionView::Helpers::InstanceTag
|
75
|
-
include FormOptionsHelper
|
76
|
-
|
77
|
-
def to_recurring_select_tag(default_schedules, options, html_options)
|
78
|
-
html_options = recurring_select_html_options(html_options)
|
79
|
-
add_default_name_and_id(html_options)
|
80
|
-
value = value(object)
|
81
|
-
content_tag("select",
|
82
|
-
add_options(
|
83
|
-
recurring_options_for_select(value, default_schedules, options),
|
84
|
-
options, value
|
85
|
-
), html_options
|
86
|
-
)
|
87
|
-
end
|
88
|
-
|
89
|
-
private
|
90
|
-
|
91
|
-
def recurring_select_html_options(html_options)
|
92
|
-
html_options = html_options.stringify_keys
|
93
|
-
html_options["class"] = ((html_options["class"] || "").split() + ["recurring_select"]).join(" ")
|
94
|
-
html_options
|
95
15
|
end
|
96
16
|
end
|
97
17
|
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module RecurringSelectHelper
|
2
|
+
module FormOptionsHelper
|
3
|
+
def recurring_options_for_select(currently_selected_rule = nil, default_schedules = nil, options = {})
|
4
|
+
|
5
|
+
options_array = []
|
6
|
+
blank_option_label = options[:blank_label] || "- not recurring -"
|
7
|
+
blank_option = [blank_option_label, "null"]
|
8
|
+
separator = ["or", {:disabled => true}]
|
9
|
+
|
10
|
+
if default_schedules.blank?
|
11
|
+
if currently_selected_rule
|
12
|
+
options_array << blank_option if options[:allow_blank]
|
13
|
+
options_array << ice_cube_rule_to_option(currently_selected_rule)
|
14
|
+
options_array << separator
|
15
|
+
options_array << ["Change schedule...", "custom"]
|
16
|
+
else
|
17
|
+
options_array << blank_option
|
18
|
+
options_array << ["Set schedule...", "custom"]
|
19
|
+
end
|
20
|
+
else
|
21
|
+
options_array << blank_option if options[:allow_blank]
|
22
|
+
|
23
|
+
options_array += default_schedules.collect{|dc|
|
24
|
+
ice_cube_rule_to_option(dc)
|
25
|
+
}
|
26
|
+
|
27
|
+
if currently_selected_rule and not current_rule_in_defaults?(currently_selected_rule, default_schedules)
|
28
|
+
options_array << ice_cube_rule_to_option(currently_selected_rule, true)
|
29
|
+
custom_label = ["New custom schedule...", "custom"]
|
30
|
+
else
|
31
|
+
custom_label = ["Custom schedule...", "custom"]
|
32
|
+
end
|
33
|
+
|
34
|
+
options_array << separator
|
35
|
+
options_array << custom_label
|
36
|
+
end
|
37
|
+
|
38
|
+
options_for_select(options_array, currently_selected_rule.to_json)
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def ice_cube_rule_to_option(supplied_rule, custom = false)
|
44
|
+
return supplied_rule unless RecurringSelect.is_valid_rule?(supplied_rule)
|
45
|
+
|
46
|
+
rule = RecurringSelect.dirty_hash_to_rule(supplied_rule)
|
47
|
+
ar = [rule.to_s, rule.to_hash.to_json]
|
48
|
+
|
49
|
+
if custom
|
50
|
+
ar[0] << "*"
|
51
|
+
ar << {"data-custom" => true}
|
52
|
+
end
|
53
|
+
|
54
|
+
ar
|
55
|
+
end
|
56
|
+
|
57
|
+
def current_rule_in_defaults?(currently_selected_rule, default_schedules)
|
58
|
+
default_schedules.any?{|option|
|
59
|
+
option == currently_selected_rule or
|
60
|
+
(option.is_a?(Array) and option[1] == currently_selected_rule)
|
61
|
+
}
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module RecurringSelectHelper
|
2
|
+
module SelectHTMLOptions
|
3
|
+
private
|
4
|
+
|
5
|
+
def recurring_select_html_options(html_options)
|
6
|
+
html_options = html_options.stringify_keys
|
7
|
+
html_options["class"] = (html_options["class"].to_s.split + ["recurring_select"]).join(" ")
|
8
|
+
html_options
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
if defined?(ActionView::Helpers::Tags::Base)
|
13
|
+
# === Rails 4
|
14
|
+
class RecurringSelectTag < ActionView::Helpers::Tags::Base
|
15
|
+
include RecurringSelectHelper::FormOptionsHelper
|
16
|
+
include SelectHTMLOptions
|
17
|
+
|
18
|
+
def initialize(object, method, template_object, default_schedules = nil, options = {}, html_options = {})
|
19
|
+
@default_schedules = default_schedules
|
20
|
+
@choices = @choices.to_a if @choices.is_a?(Range)
|
21
|
+
@method_name = method.to_s
|
22
|
+
@object_name = object.to_s
|
23
|
+
@html_options = recurring_select_html_options(html_options)
|
24
|
+
add_default_name_and_id(@html_options)
|
25
|
+
|
26
|
+
super(object, method, template_object, options)
|
27
|
+
end
|
28
|
+
|
29
|
+
def render
|
30
|
+
option_tags = add_options(recurring_options_for_select(value(object), @default_schedules, @options), @options, value(object))
|
31
|
+
select_content_tag(option_tags, @options, @html_options)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
elsif defined?(ActionView::Helpers::InstanceTag)
|
36
|
+
# === Rails 3
|
37
|
+
class InstanceTag < ActionView::Helpers::InstanceTag
|
38
|
+
include RecurringSelectHelper::FormOptionsHelper
|
39
|
+
include SelectHTMLOptions
|
40
|
+
|
41
|
+
def to_recurring_select_tag(default_schedules, options, html_options)
|
42
|
+
html_options = recurring_select_html_options(html_options)
|
43
|
+
add_default_name_and_id(html_options)
|
44
|
+
value = value(object)
|
45
|
+
options = add_options(
|
46
|
+
recurring_options_for_select(value, default_schedules, options),
|
47
|
+
options, value
|
48
|
+
)
|
49
|
+
content_tag("select", options, html_options)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: recurring_select
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Jobber
|
@@ -11,12 +10,11 @@ authors:
|
|
11
10
|
autorequire:
|
12
11
|
bindir: bin
|
13
12
|
cert_chain: []
|
14
|
-
date: 2013-
|
13
|
+
date: 2013-06-27 00:00:00.000000000 Z
|
15
14
|
dependencies:
|
16
15
|
- !ruby/object:Gem::Dependency
|
17
16
|
name: rails
|
18
17
|
requirement: !ruby/object:Gem::Requirement
|
19
|
-
none: false
|
20
18
|
requirements:
|
21
19
|
- - ! '>='
|
22
20
|
- !ruby/object:Gem::Version
|
@@ -24,7 +22,6 @@ dependencies:
|
|
24
22
|
type: :runtime
|
25
23
|
prerelease: false
|
26
24
|
version_requirements: !ruby/object:Gem::Requirement
|
27
|
-
none: false
|
28
25
|
requirements:
|
29
26
|
- - ! '>='
|
30
27
|
- !ruby/object:Gem::Version
|
@@ -32,7 +29,6 @@ dependencies:
|
|
32
29
|
- !ruby/object:Gem::Dependency
|
33
30
|
name: jquery-rails
|
34
31
|
requirement: !ruby/object:Gem::Requirement
|
35
|
-
none: false
|
36
32
|
requirements:
|
37
33
|
- - ! '>='
|
38
34
|
- !ruby/object:Gem::Version
|
@@ -40,7 +36,6 @@ dependencies:
|
|
40
36
|
type: :runtime
|
41
37
|
prerelease: false
|
42
38
|
version_requirements: !ruby/object:Gem::Requirement
|
43
|
-
none: false
|
44
39
|
requirements:
|
45
40
|
- - ! '>='
|
46
41
|
- !ruby/object:Gem::Version
|
@@ -48,7 +43,6 @@ dependencies:
|
|
48
43
|
- !ruby/object:Gem::Dependency
|
49
44
|
name: ice_cube
|
50
45
|
requirement: !ruby/object:Gem::Requirement
|
51
|
-
none: false
|
52
46
|
requirements:
|
53
47
|
- - ! '>='
|
54
48
|
- !ruby/object:Gem::Version
|
@@ -56,7 +50,6 @@ dependencies:
|
|
56
50
|
type: :runtime
|
57
51
|
prerelease: false
|
58
52
|
version_requirements: !ruby/object:Gem::Requirement
|
59
|
-
none: false
|
60
53
|
requirements:
|
61
54
|
- - ! '>='
|
62
55
|
- !ruby/object:Gem::Version
|
@@ -64,7 +57,6 @@ dependencies:
|
|
64
57
|
- !ruby/object:Gem::Dependency
|
65
58
|
name: sass-rails
|
66
59
|
requirement: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
60
|
requirements:
|
69
61
|
- - ! '>='
|
70
62
|
- !ruby/object:Gem::Version
|
@@ -72,7 +64,6 @@ dependencies:
|
|
72
64
|
type: :runtime
|
73
65
|
prerelease: false
|
74
66
|
version_requirements: !ruby/object:Gem::Requirement
|
75
|
-
none: false
|
76
67
|
requirements:
|
77
68
|
- - ! '>='
|
78
69
|
- !ruby/object:Gem::Version
|
@@ -80,7 +71,6 @@ dependencies:
|
|
80
71
|
- !ruby/object:Gem::Dependency
|
81
72
|
name: coffee-rails
|
82
73
|
requirement: !ruby/object:Gem::Requirement
|
83
|
-
none: false
|
84
74
|
requirements:
|
85
75
|
- - ! '>='
|
86
76
|
- !ruby/object:Gem::Version
|
@@ -88,15 +78,13 @@ dependencies:
|
|
88
78
|
type: :runtime
|
89
79
|
prerelease: false
|
90
80
|
version_requirements: !ruby/object:Gem::Requirement
|
91
|
-
none: false
|
92
81
|
requirements:
|
93
82
|
- - ! '>='
|
94
83
|
- !ruby/object:Gem::Version
|
95
84
|
version: '3.1'
|
96
85
|
- !ruby/object:Gem::Dependency
|
97
|
-
name:
|
86
|
+
name: appraisal
|
98
87
|
requirement: !ruby/object:Gem::Requirement
|
99
|
-
none: false
|
100
88
|
requirements:
|
101
89
|
- - ! '>='
|
102
90
|
- !ruby/object:Gem::Version
|
@@ -104,11 +92,24 @@ dependencies:
|
|
104
92
|
type: :development
|
105
93
|
prerelease: false
|
106
94
|
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
none: false
|
108
95
|
requirements:
|
109
96
|
- - ! '>='
|
110
97
|
- !ruby/object:Gem::Version
|
111
98
|
version: '0'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: rspec
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - '='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: 2.13.0
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - '='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: 2.13.0
|
112
113
|
description: This gem provides a useful interface for creating recurring rules for
|
113
114
|
the ice_cube gem.
|
114
115
|
email:
|
@@ -127,6 +128,8 @@ files:
|
|
127
128
|
- app/assets/stylesheets/utilities.scss
|
128
129
|
- app/assets/templates/recurring_select/dialog_template.html
|
129
130
|
- app/helpers/recurring_select_helper.rb
|
131
|
+
- app/helpers/utilities/form_options_ext.rb
|
132
|
+
- app/helpers/utilities/tag_ext.rb
|
130
133
|
- app/middleware/recurring_select_middleware.rb
|
131
134
|
- config/routes.rb
|
132
135
|
- lib/recurring_select/engine.rb
|
@@ -137,27 +140,25 @@ files:
|
|
137
140
|
- README.md
|
138
141
|
homepage: http://github.com/getjobber/recurring_select
|
139
142
|
licenses: []
|
143
|
+
metadata: {}
|
140
144
|
post_install_message:
|
141
145
|
rdoc_options: []
|
142
146
|
require_paths:
|
143
147
|
- lib
|
144
148
|
required_ruby_version: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
149
|
requirements:
|
147
150
|
- - ! '>='
|
148
151
|
- !ruby/object:Gem::Version
|
149
152
|
version: '0'
|
150
153
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
-
none: false
|
152
154
|
requirements:
|
153
155
|
- - ! '>='
|
154
156
|
- !ruby/object:Gem::Version
|
155
157
|
version: '0'
|
156
158
|
requirements: []
|
157
159
|
rubyforge_project:
|
158
|
-
rubygems_version:
|
160
|
+
rubygems_version: 2.0.3
|
159
161
|
signing_key:
|
160
|
-
specification_version:
|
162
|
+
specification_version: 4
|
161
163
|
summary: A select helper which gives you magical powers to generate ice_cube rules.
|
162
164
|
test_files: []
|
163
|
-
has_rdoc:
|