currency_select 5.0.0 → 6.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d100fa5d8db54cfe83c7b6b22af1b074fda179bbc8372a6be10fe724a284b2d
4
- data.tar.gz: cbcbdd178abaf13fc1ecf6bbee7c9e9486c46139e3bca4ae761685deedbb14f4
3
+ metadata.gz: 3fa3eb7c203846373ba9b1cdb4381162771b958712d77363bfcc840b80fef3d4
4
+ data.tar.gz: 12bfdff814e3fb7d777c186e032a6cf4c9cecddeb13e6c88bb88df1013fbc126
5
5
  SHA512:
6
- metadata.gz: 736a8e8842996e681149fc24c0dae6483ac45cf0bd5ed71a43b99b6a2571783d5ad0a1d0ddf44b8cff3ab10c166f787a04008169a0f7da20daea18fa46596633
7
- data.tar.gz: e7c241ca7915f93e32cec7fb0ce60b9ee9c04e546ded9fd6f5d95b11a640ca7e04a2647971cb317942f886db1c4c4f1f10601f572b37d7608ac0baf2c2f5f505
6
+ metadata.gz: 4790e94988807aef949e0926451f9f70ef294dbe5097e44ba93dfb86c00c92560afa7b7fe9ea05c3df966a5ece5ac6e658ae7d48315e66e82a83a97eacfe75b3
7
+ data.tar.gz: d53eba6d2511c5c2f2991aca0f621d7043b68e4a000c2aff75e34ac964315a4462479a2d56226e429845b522106b76755aa1c13db25481a95a242a5719b395e2
data/CHANGELOG.md CHANGED
@@ -13,39 +13,63 @@ This project adheres to [Semantic Versioning](https://semver.org/).
13
13
 
14
14
  ### Removed
15
15
 
16
+ ### Fixed
17
+
18
+ ### Security
19
+
20
+ ## 6.0.0
21
+
22
+ ### Added
23
+
24
+ - Add support for Rails 7.1 (#146, #148, #149, #150),
25
+ thanks to @hishammalik and @pnicholls
26
+
27
+ ### Removed
28
+
29
+ - Drop support for Rails 6.0 (#142)
30
+
31
+ ## 5.0.1
32
+
33
+ ### Fixed
34
+
35
+ - Add missing files to the gemspec file (#137)
36
+
16
37
  ## 5.0.0
17
38
 
18
39
  ### Added
40
+
19
41
  - Add official support for Ruby 3.2 (#125)
20
42
 
21
43
  ### Changed
44
+
22
45
  - Allow the non-formbuilder version to set the selected option (#134)
23
46
  - Drop whitespace between HTML tags (#115)
24
47
 
25
48
  ### Removed
49
+
26
50
  - Drop support for Rails 5.2 (#112)
27
51
  - Drop support for Ruby 2.6 and 2.7 (#111, #132)
28
52
 
29
- ### Fixed
30
-
31
- ### Security
32
-
33
53
  ## 4.1.0
34
54
 
35
55
  ### Added
56
+
36
57
  - Add support for Ruby 3.1 (#105)
37
58
 
38
59
  ## 4.0.0
39
60
 
40
61
  ### Added
62
+
41
63
  - Add support for Rails 7.0 (#96)
42
64
 
43
65
  ### Removed
66
+
44
67
  - Drop support for Ruby 2.5 (#90)
45
68
 
46
69
  ## 3.0.0
47
70
 
48
71
  ### Added
72
+
49
73
  - Add automatic gem release (#86, #88)
50
74
  - Support Ruby 3 (#81)
51
75
  - Add support for Rails 6.1 (#78, #79, #83)
@@ -53,21 +77,25 @@ This project adheres to [Semantic Versioning](https://semver.org/).
53
77
  - Add support for Ruby 2.7 (#66)
54
78
 
55
79
  ### Changed
80
+
56
81
  - Switch the CI from Travis to GitHub Actions (#80, #85)
57
82
  - Upgrade RSpec and RSpec-Rails (#71)
58
83
  - Update the Ruby versions on Travis CI (#68)
59
84
 
60
85
  ### Removed
86
+
61
87
  - Drop support for Ruby 2.4 (#70)
62
88
  - Drop support for Rails < 5.2 (#65)
63
89
 
64
90
  ### Fixed
91
+
65
92
  - Fix some RuboCop warnings (#73)
66
93
  - Fix warnings in the `.travis.yml` (#67, #69)
67
94
 
68
95
  ## 2.0.0
69
96
 
70
97
  ### Added
98
+
71
99
  - Add support for Rails 6.0
72
100
  ([#60](https://github.com/braingourmets/currency_select/pull/60))
73
101
  - Officially support Rails 5.2
@@ -76,6 +104,7 @@ This project adheres to [Semantic Versioning](https://semver.org/).
76
104
  ([#49](https://github.com/braingourmets/currency_select/pull/49))
77
105
 
78
106
  ### Removed
107
+
79
108
  - Drop support for Rails < 5.1
80
109
  ([#62](https://github.com/braingourmets/currency_select/pull/62))
81
110
  - Drop support for Ruby < 2.4
@@ -84,6 +113,7 @@ This project adheres to [Semantic Versioning](https://semver.org/).
84
113
  ([#48](https://github.com/braingourmets/currency_select/pull/48))
85
114
 
86
115
  ### Fixed
116
+
87
117
  - Add version to the requirements in the gemspec file
88
118
  ([#53](https://github.com/braingourmets/currency_select/pull/53))
89
119
  - Fix file names references from the gemspec file
@@ -94,16 +124,19 @@ This project adheres to [Semantic Versioning](https://semver.org/).
94
124
  ## 1.0.0
95
125
 
96
126
  ### Added
127
+
97
128
  - Officially support Rails 5.2
98
129
  ([#51](https://github.com/braingourmets/currency_select/pull/51))
99
130
  - Add Ruby 2.5.1 to the Travis build matrix
100
131
  ([#49](https://github.com/braingourmets/currency_select/pull/49))
101
132
 
102
133
  ### Removed
134
+
103
135
  - Drop support for Ruby < 2.3
104
136
  ([#48](https://github.com/braingourmets/currency_select/pull/48))
105
137
 
106
138
  ### Fixed
139
+
107
140
  - Add version to the requirements in the gemspec file
108
141
  ([#53](https://github.com/braingourmets/currency_select/pull/53))
109
142
  - Fix file names references from the gemspec file
@@ -114,27 +147,32 @@ This project adheres to [Semantic Versioning](https://semver.org/).
114
147
  ## 0.2.0
115
148
 
116
149
  ### Added
150
+
117
151
  - Automatically use the version number from the VERSION file in the gemspec
118
152
  ([#32](https://github.com/braingourmets/currency_select/pull/32))
119
153
  - Add a code of conduct
120
154
  ([#25](https://github.com/braingourmets/currency_select/pull/25))
121
155
 
122
156
  ### Changed
157
+
123
158
  - Mark all Ruby files as frozen_string_literal: true
124
159
  ([#31](https://github.com/braingourmets/currency_select/pull/31))
125
160
 
126
161
  ### Deprecated
162
+
127
163
  - Support for Rails < 5.0.0 will be removed in version 2.0.0.
128
164
  - Support for Rails < 4.2.0 will be removed in version 1.0.0.
129
165
  - Support for Ruby < 2.3.0 will be removed in version 1.0.0.
130
166
 
131
167
  ### Removed
168
+
132
169
  - Remove pre-Rails-4.0-specific code
133
170
  ([#38](https://github.com/braingourmets/currency_select/pull/38))
134
171
  - Drop Jeweler
135
172
  ([#28](https://github.com/braingourmets/currency_select/pull/28))
136
173
 
137
174
  ### Fixed
175
+
138
176
  - Add ActionView as explicit dependency
139
177
  ([#34](https://github.com/braingourmets/currency_select/pull/34))
140
178
  - Fix the check for only one active selection in the specs
data/README.md CHANGED
@@ -9,6 +9,12 @@ a HTML select list of available currencies.
9
9
  The list of currencies are provided by the
10
10
  [Money gem](https://rubygems.org/gems/money).
11
11
 
12
+ ## New maintainer wanted
13
+
14
+ We're not using this gem anymore, so we'm looking for a new maintainer. If
15
+ you're interested in becoming the new maintainer, please contact us at
16
+ `info AT braingourmets DOT com`.
17
+
12
18
  ## Installation
13
19
 
14
20
  Add the following to your Gemfile:
@@ -24,6 +30,7 @@ currency_select('user', 'currency')
24
30
  ```
25
31
 
26
32
  ### form_for example
33
+
27
34
  ```
28
35
  <%= f.currency_select(:currency, ["USD", "EUR", "CAD"], {}, {class: "form-control"}) -%>
29
36
  ```
data/VERSION CHANGED
@@ -1 +1 @@
1
- 5.0.0
1
+ 6.0.0
@@ -15,17 +15,20 @@ Gem::Specification.new do |s|
15
15
  s.email = 'o.klee@braingourmets.com'
16
16
 
17
17
  s.files = %w[
18
- lib/currency_select.rb rails/init.rb CHANGELOG.md CODE_OF_CONDUCT.md
19
- currency_select.gemspec Gemfile LICENSE Rakefile README.md VERSION
18
+ CHANGELOG.md CODE_OF_CONDUCT.md Gemfile LICENSE README.md Rakefile VERSION
19
+ currency_select.gemspec
20
+ lib/currency_select.rb lib/currency_select_tag.rb lib/form_builder.rb
21
+ lib/form_options_helper.rb lib/to_currency_select_tag.rb
22
+ rails/init.rb
20
23
  ]
21
24
  s.extra_rdoc_files = %w[CHANGELOG.md LICENSE README.md]
22
25
 
23
- s.add_runtime_dependency 'actionview', '>= 6.0.0', '< 7.1'
26
+ s.add_runtime_dependency 'actionview', '>= 6.1.0', '< 7.2'
24
27
  s.add_runtime_dependency 'money', '~> 6.0'
25
28
 
26
- s.add_development_dependency 'rspec-rails', '~> 5.1.0'
27
- s.add_development_dependency 'rubocop', '~> 1.26.0'
28
- s.add_development_dependency 'rubocop-rails', '~> 2.13.2'
29
+ s.add_development_dependency 'rspec-rails', '~> 6.1.0'
30
+ s.add_development_dependency 'rubocop', '~> 1.59.0'
31
+ s.add_development_dependency 'rubocop-rails', '~> 2.22.2'
29
32
  s.add_development_dependency 'rubocop-rake', '~> 0.6.0'
30
- s.add_development_dependency 'rubocop-rspec', '~> 2.8.0'
33
+ s.add_development_dependency 'rubocop-rspec', '~> 2.25.0'
31
34
  end
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'to_currency_select_tag'
4
+ require 'form_options_helper'
5
+
6
+ # CurrencySelect
7
+ module ActionView
8
+ module Helpers
9
+ ##
10
+ # Tag.
11
+ #
12
+ class CurrencySelectTag < Tags::Base
13
+ include ToCurrencySelectTag
14
+ include FormOptionsHelper
15
+ include ActionView::Helpers::Tags::SelectRenderer if defined?(ActionView::Helpers::Tags::SelectRenderer)
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ # CurrencySelect
4
+ module ActionView
5
+ module Helpers
6
+ ##
7
+ # Form builder.
8
+ #
9
+ class FormBuilder
10
+ def currency_select(
11
+ method, priority_currencies = nil, options = {}, html_options = {}
12
+ )
13
+ @template.currency_select(
14
+ @object_name,
15
+ method,
16
+ priority_currencies,
17
+ options.merge(object: @object),
18
+ html_options
19
+ )
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'money'
4
+
5
+ # CurrencySelect
6
+ module ActionView
7
+ module Helpers
8
+ ##
9
+ # Module for the form options.
10
+ #
11
+ module FormOptionsHelper
12
+ # Return select and option tags for the given object and method, using
13
+ # currency_options_for_select to generate the list of option tags.
14
+ def currency_select(
15
+ object, method, priority_currencies = nil, options = {},
16
+ html_options = {}
17
+ )
18
+ tag = CurrencySelectTag.new(object, method, self, options)
19
+ tag.to_currency_select_tag(priority_currencies, options, html_options)
20
+ end
21
+
22
+ # Returns a string of option tags for all available currencies. Supply
23
+ # a currency ISO code as +selected+ to have it marked as the selected
24
+ # option tag. You can also supply an array of currencies as
25
+ # +priority_currencies+, so that they will be listed above the rest of
26
+ # the list.
27
+ def currency_options_for_select(selected = nil, priority_currencies = nil)
28
+ currency_options = ''.html_safe
29
+
30
+ if priority_currencies
31
+ currency_options += options_for_select(
32
+ ::CurrencySelect.priority_currencies_array(priority_currencies),
33
+ selected
34
+ )
35
+ label = '-------------'.html_safe
36
+ option = content_tag(:option, label, value: '', disabled: 'disabled')
37
+ currency_options += option
38
+
39
+ # prevents selected from being included twice in the HTML which causes
40
+ # some browsers to select the second selected option (not priority)
41
+ # which makes it harder to select an alternative priority country
42
+ selected = nil if priority_currencies.include?(selected)
43
+ end
44
+
45
+ # All the countries included in the country_options output.
46
+ currency_options + options_for_select(
47
+ ::CurrencySelect.currencies_array, selected
48
+ )
49
+ end
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ # CurrencySelect
4
+ module ActionView
5
+ module Helpers
6
+ ##
7
+ # Tag.
8
+ #
9
+ module ToCurrencySelectTag
10
+ def to_currency_select_tag(priority_currencies, options, html_options)
11
+ html_options = html_options.stringify_keys
12
+ add_default_name_and_id(html_options)
13
+ value = if method(:value).arity.zero?
14
+ options.fetch(:selected) { value() }
15
+ else
16
+ options.fetch(:selected) { value(object) }
17
+ end
18
+ content_tag(
19
+ 'select',
20
+ add_options(
21
+ currency_options_for_select(value, priority_currencies),
22
+ options,
23
+ value
24
+ ),
25
+ html_options
26
+ )
27
+ end
28
+ end
29
+ end
30
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: currency_select
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trond Arve Nordheim
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-07-28 00:00:00.000000000 Z
12
+ date: 2023-12-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionview
@@ -17,20 +17,20 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 6.0.0
20
+ version: 6.1.0
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
- version: '7.1'
23
+ version: '7.2'
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- version: 6.0.0
30
+ version: 6.1.0
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
- version: '7.1'
33
+ version: '7.2'
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: money
36
36
  requirement: !ruby/object:Gem::Requirement
@@ -51,42 +51,42 @@ dependencies:
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 5.1.0
54
+ version: 6.1.0
55
55
  type: :development
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 5.1.0
61
+ version: 6.1.0
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: rubocop
64
64
  requirement: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.26.0
68
+ version: 1.59.0
69
69
  type: :development
70
70
  prerelease: false
71
71
  version_requirements: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.26.0
75
+ version: 1.59.0
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: rubocop-rails
78
78
  requirement: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 2.13.2
82
+ version: 2.22.2
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 2.13.2
89
+ version: 2.22.2
90
90
  - !ruby/object:Gem::Dependency
91
91
  name: rubocop-rake
92
92
  requirement: !ruby/object:Gem::Requirement
@@ -107,14 +107,14 @@ dependencies:
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 2.8.0
110
+ version: 2.25.0
111
111
  type: :development
112
112
  prerelease: false
113
113
  version_requirements: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 2.8.0
117
+ version: 2.25.0
118
118
  description:
119
119
  email: o.klee@braingourmets.com
120
120
  executables: []
@@ -133,6 +133,10 @@ files:
133
133
  - VERSION
134
134
  - currency_select.gemspec
135
135
  - lib/currency_select.rb
136
+ - lib/currency_select_tag.rb
137
+ - lib/form_builder.rb
138
+ - lib/form_options_helper.rb
139
+ - lib/to_currency_select_tag.rb
136
140
  - rails/init.rb
137
141
  homepage: https://github.com/braingourmets/currency_select
138
142
  licenses: