currency_select 4.1.0 → 5.0.1

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: 34966f5e01826eea10afd72d0482a6b206086c84ae9c1b3daff05abfb71b5e0c
4
- data.tar.gz: 9848694b180fe61281b0f042560c606d1a4f0b13140b3f18311f6f7162ac1ced
3
+ metadata.gz: e66e8307689b3cafe1b952135b87cd0a68813c97523bc4ff381039db912cb6ad
4
+ data.tar.gz: bae46f9d23ba8cfc8f1e99c024187c76d83e133c6937b7fdef526c07e8a3007c
5
5
  SHA512:
6
- metadata.gz: 542ce884664c90151e0fe52bdd81e12175b51b444784d8c30c1aabd645f2bb2b607b2ae2532b4fafde242bb021cd1aae6b83dc2723ea933a885d1cb6027698d1
7
- data.tar.gz: 40fd4238f223fb9b6d045744c777cc8b4fabfadf2179e85b22cc160d90811a6a0ec89a4d36c5ada145db503465d693466d166811b77bcc507d0b4612c82446af
6
+ metadata.gz: 95ca18df0dcda855119e0631278a4743b3067bea1adf7f43dc7a51153ff6702556bb307be15ec8e8b6f5e2b63c083723d79b05a4a7be8578106a607fd07ccb11
7
+ data.tar.gz: b2c8201dcad0b20634fa6487f4c7c9bc2196b02bbde98da7e9f598f548215a0c31cdca25827c5e7f6d5fd3bd2ca463eeee02c94a51d935d8f2d8cfb720a3963e
data/CHANGELOG.md CHANGED
@@ -17,6 +17,24 @@ This project adheres to [Semantic Versioning](https://semver.org/).
17
17
 
18
18
  ### Security
19
19
 
20
+ ## 5.0.1
21
+
22
+ ### Fixed
23
+ - Add missing files to the gemspec file (#137)
24
+
25
+ ## 5.0.0
26
+
27
+ ### Added
28
+ - Add official support for Ruby 3.2 (#125)
29
+
30
+ ### Changed
31
+ - Allow the non-formbuilder version to set the selected option (#134)
32
+ - Drop whitespace between HTML tags (#115)
33
+
34
+ ### Removed
35
+ - Drop support for Rails 5.2 (#112)
36
+ - Drop support for Ruby 2.6 and 2.7 (#111, #132)
37
+
20
38
  ## 4.1.0
21
39
 
22
40
  ### Added
data/VERSION CHANGED
@@ -1 +1 @@
1
- 4.1.0
1
+ 5.0.1
@@ -8,23 +8,26 @@ Gem::Specification.new do |s|
8
8
  s.version = version
9
9
  s.license = 'MIT'
10
10
 
11
- s.required_ruby_version = '>= 2.6.0'
11
+ s.required_ruby_version = '>= 3.0.0'
12
12
 
13
13
  s.homepage = 'https://github.com/braingourmets/currency_select'
14
14
  s.authors = ['Trond Arve Nordheim', 'Oliver Klee']
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', '>= 5.2.0', '< 7.1'
26
+ s.add_runtime_dependency 'actionview', '>= 6.0.0', '< 7.1'
24
27
  s.add_runtime_dependency 'money', '~> 6.0'
25
28
 
26
29
  s.add_development_dependency 'rspec-rails', '~> 5.1.0'
27
- s.add_development_dependency 'rubocop', '~> 1.25.1'
30
+ s.add_development_dependency 'rubocop', '~> 1.26.0'
28
31
  s.add_development_dependency 'rubocop-rails', '~> 2.13.2'
29
32
  s.add_development_dependency 'rubocop-rake', '~> 0.6.0'
30
33
  s.add_development_dependency 'rubocop-rspec', '~> 2.8.0'
@@ -1,5 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'currency_select_tag'
4
+ require 'form_builder'
5
+ require 'form_options_helper'
3
6
  require 'money'
4
7
 
5
8
  ##
@@ -67,99 +70,3 @@ module CurrencySelect
67
70
  end
68
71
  end
69
72
  end
70
-
71
- # CurrencySelect
72
- module ActionView
73
- module Helpers
74
- ##
75
- # Module for the form options.
76
- #
77
- module FormOptionsHelper
78
- # Return select and option tags for the given object and method, using
79
- # currency_options_for_select to generate the list of option tags.
80
- def currency_select(
81
- object, method, priority_currencies = nil, options = {},
82
- html_options = {}
83
- )
84
- tag = CurrencySelectTag.new(object, method, self, options)
85
- tag.to_currency_select_tag(priority_currencies, options, html_options)
86
- end
87
-
88
- # Returns a string of option tags for all available currencies. Supply
89
- # a currency ISO code as +selected+ to have it marked as the selected
90
- # option tag. You can also supply an array of currencies as
91
- # +priority_currencies+, so that they will be listed above the rest of
92
- # the list.
93
- def currency_options_for_select(selected = nil, priority_currencies = nil)
94
- currency_options = ''.html_safe
95
-
96
- if priority_currencies
97
- currency_options += options_for_select(
98
- ::CurrencySelect.priority_currencies_array(priority_currencies),
99
- selected
100
- )
101
- raw = '<option value="" disabled="disabled">-------------</option>'
102
- currency_options += raw.html_safe + "\n"
103
-
104
- # prevents selected from being included twice in the HTML which causes
105
- # some browsers to select the second selected option (not priority)
106
- # which makes it harder to select an alternative priority country
107
- selected = nil if priority_currencies.include?(selected)
108
- end
109
-
110
- # All the countries included in the country_options output.
111
- currency_options + options_for_select(
112
- ::CurrencySelect.currencies_array, selected
113
- )
114
- end
115
- end
116
-
117
- ##
118
- # Tag.
119
- #
120
- module ToCurrencySelectTag
121
- def to_currency_select_tag(priority_currencies, options, html_options)
122
- html_options = html_options.stringify_keys
123
- add_default_name_and_id(html_options)
124
- value = if method(:value).arity.zero?
125
- value()
126
- else
127
- value(object)
128
- end
129
- content_tag(
130
- 'select',
131
- add_options(
132
- currency_options_for_select(value, priority_currencies),
133
- options,
134
- value
135
- ),
136
- html_options
137
- )
138
- end
139
- end
140
-
141
- ##
142
- # Tag.
143
- #
144
- class CurrencySelectTag < Tags::Base
145
- include ToCurrencySelectTag
146
- end
147
-
148
- ##
149
- # Form builder.
150
- #
151
- class FormBuilder
152
- def currency_select(
153
- method, priority_currencies = nil, options = {}, html_options = {}
154
- )
155
- @template.currency_select(
156
- @object_name,
157
- method,
158
- priority_currencies,
159
- options.merge(object: @object),
160
- html_options
161
- )
162
- end
163
- end
164
- end
165
- end
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'to_currency_select_tag'
4
+
5
+ # CurrencySelect
6
+ module ActionView
7
+ module Helpers
8
+ ##
9
+ # Tag.
10
+ #
11
+ class CurrencySelectTag < Tags::Base
12
+ include ToCurrencySelectTag
13
+ end
14
+ end
15
+ 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: 4.1.0
4
+ version: 5.0.1
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: 2022-02-25 00:00:00.000000000 Z
12
+ date: 2023-08-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: actionview
@@ -17,7 +17,7 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 5.2.0
20
+ version: 6.0.0
21
21
  - - "<"
22
22
  - !ruby/object:Gem::Version
23
23
  version: '7.1'
@@ -27,7 +27,7 @@ dependencies:
27
27
  requirements:
28
28
  - - ">="
29
29
  - !ruby/object:Gem::Version
30
- version: 5.2.0
30
+ version: 6.0.0
31
31
  - - "<"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '7.1'
@@ -65,14 +65,14 @@ dependencies:
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: 1.25.1
68
+ version: 1.26.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.25.1
75
+ version: 1.26.0
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: rubocop-rails
78
78
  requirement: !ruby/object:Gem::Requirement
@@ -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:
@@ -146,14 +150,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
146
150
  requirements:
147
151
  - - ">="
148
152
  - !ruby/object:Gem::Version
149
- version: 2.6.0
153
+ version: 3.0.0
150
154
  required_rubygems_version: !ruby/object:Gem::Requirement
151
155
  requirements:
152
156
  - - ">="
153
157
  - !ruby/object:Gem::Version
154
158
  version: '0'
155
159
  requirements: []
156
- rubygems_version: 3.3.7
160
+ rubygems_version: 3.4.10
157
161
  signing_key:
158
162
  specification_version: 4
159
163
  summary: Currency select plugin for Rails