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 +4 -4
- data/CHANGELOG.md +18 -0
- data/VERSION +1 -1
- data/currency_select.gemspec +8 -5
- data/lib/currency_select.rb +3 -96
- data/lib/currency_select_tag.rb +15 -0
- data/lib/form_builder.rb +23 -0
- data/lib/form_options_helper.rb +52 -0
- data/lib/to_currency_select_tag.rb +30 -0
- metadata +12 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e66e8307689b3cafe1b952135b87cd0a68813c97523bc4ff381039db912cb6ad
|
4
|
+
data.tar.gz: bae46f9d23ba8cfc8f1e99c024187c76d83e133c6937b7fdef526c07e8a3007c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
|
1
|
+
5.0.1
|
data/currency_select.gemspec
CHANGED
@@ -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 = '>=
|
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
|
-
|
19
|
-
currency_select.gemspec
|
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', '>=
|
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.
|
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'
|
data/lib/currency_select.rb
CHANGED
@@ -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
|
data/lib/form_builder.rb
ADDED
@@ -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
|
+
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:
|
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:
|
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:
|
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.
|
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.
|
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:
|
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.
|
160
|
+
rubygems_version: 3.4.10
|
157
161
|
signing_key:
|
158
162
|
specification_version: 4
|
159
163
|
summary: Currency select plugin for Rails
|