currency_select 5.0.0 → 6.0.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 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: