code-box 1.1.0 → 1.1.3
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 +7 -0
- data/.ruby-version +1 -1
- data/.travis.yml +1 -0
- data/Gemfile.lock +31 -28
- data/code-box.gemspec +4 -1
- data/gemfiles/ar3_0.gemfile +1 -0
- data/gemfiles/ar4_0.gemfile +1 -0
- data/gemfiles/ar4_1.gemfile +10 -0
- data/lib/code-box/acts_as_code.rb +7 -18
- data/lib/code-box/code_attribute.rb +12 -3
- data/lib/code-box/version.rb +1 -1
- data/test/code-box/test_acts_as_code.rb +8 -7
- data/test/code-box/test_code_attribute.rb +3 -1
- data/test/helper.rb +1 -1
- metadata +53 -33
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 00d38d11fd72eecfe95c9addc855d4ddaf964663342e4e8f46822fda84518f67
|
|
4
|
+
data.tar.gz: 0131057470abd1e47400b93b812e712c5adc3e1a291a84003624e7ab5519b647
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: db8c592630921f36d79000ae7c2062644fe112d33b3afec5c7b4d5d8b17881d038becf40fcfcadc9cf59eda1fc58206dcb88e2c4432294fa72dbc751f13e9563
|
|
7
|
+
data.tar.gz: 83379416834c3d6b237b1ea0399454d54cb828bde2b7afd020c34d21d9570f0b2f7d525977e18b4094ca011bf94fba376ccf7326435829ab8c455d96539c586f
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
ruby-
|
|
1
|
+
ruby-2.7.4
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,43 +1,46 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
code-box (1.1.
|
|
4
|
+
code-box (1.1.3)
|
|
5
5
|
|
|
6
6
|
GEM
|
|
7
7
|
remote: https://rubygems.org/
|
|
8
8
|
specs:
|
|
9
|
-
activemodel (4.
|
|
10
|
-
activesupport (= 4.
|
|
11
|
-
builder (~> 3.1
|
|
12
|
-
activerecord (4.
|
|
13
|
-
activemodel (= 4.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
9
|
+
activemodel (4.2.11.3)
|
|
10
|
+
activesupport (= 4.2.11.3)
|
|
11
|
+
builder (~> 3.1)
|
|
12
|
+
activerecord (4.2.11.3)
|
|
13
|
+
activemodel (= 4.2.11.3)
|
|
14
|
+
activesupport (= 4.2.11.3)
|
|
15
|
+
arel (~> 6.0)
|
|
16
|
+
activesupport (4.2.11.3)
|
|
17
|
+
i18n (~> 0.7)
|
|
18
|
+
minitest (~> 5.1)
|
|
19
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
|
20
|
+
tzinfo (~> 1.1)
|
|
21
|
+
arel (6.0.4)
|
|
22
|
+
bigdecimal (1.4.4)
|
|
23
|
+
builder (3.2.4)
|
|
24
|
+
concurrent-ruby (1.1.9)
|
|
25
|
+
i18n (0.9.5)
|
|
26
|
+
concurrent-ruby (~> 1.0)
|
|
27
|
+
minitest (5.15.0)
|
|
28
|
+
rake (13.0.6)
|
|
29
|
+
sqlite3 (1.3.13)
|
|
30
|
+
thread_safe (0.3.6)
|
|
31
|
+
tzinfo (1.2.9)
|
|
22
32
|
thread_safe (~> 0.1)
|
|
23
|
-
tzinfo (~> 0.3.37)
|
|
24
|
-
arel (4.0.0)
|
|
25
|
-
atomic (1.1.14)
|
|
26
|
-
builder (3.1.4)
|
|
27
|
-
i18n (0.6.5)
|
|
28
|
-
minitest (4.7.5)
|
|
29
|
-
multi_json (1.8.0)
|
|
30
|
-
rake (10.1.0)
|
|
31
|
-
sqlite3 (1.3.8)
|
|
32
|
-
thread_safe (0.1.3)
|
|
33
|
-
atomic
|
|
34
|
-
tzinfo (0.3.37)
|
|
35
33
|
|
|
36
34
|
PLATFORMS
|
|
37
|
-
|
|
35
|
+
x86_64-darwin-21
|
|
38
36
|
|
|
39
37
|
DEPENDENCIES
|
|
40
38
|
activerecord (~> 4.0)
|
|
39
|
+
bigdecimal (~> 1.4.4)
|
|
41
40
|
code-box!
|
|
41
|
+
minitest
|
|
42
42
|
rake
|
|
43
|
-
sqlite3
|
|
43
|
+
sqlite3 (~> 1.3.6)
|
|
44
|
+
|
|
45
|
+
BUNDLED WITH
|
|
46
|
+
2.3.8
|
data/code-box.gemspec
CHANGED
|
@@ -5,6 +5,7 @@ require File.expand_path('../lib/code-box/version', __FILE__)
|
|
|
5
5
|
Gem::Specification.new do |gem|
|
|
6
6
|
gem.name = 'code-box'
|
|
7
7
|
gem.version = CodeBox::VERSION
|
|
8
|
+
gem.license = 'BSD-2-Clause'
|
|
8
9
|
|
|
9
10
|
gem.authors = ["Martin Schweizer"]
|
|
10
11
|
gem.email = ["contact@verticonaut.me"]
|
|
@@ -13,8 +14,10 @@ Gem::Specification.new do |gem|
|
|
|
13
14
|
gem.homepage = %q{http://github.com/verticonaut/code-box}
|
|
14
15
|
|
|
15
16
|
gem.add_development_dependency "activerecord", "~> 4.0"
|
|
16
|
-
gem.add_development_dependency "sqlite3"
|
|
17
|
+
gem.add_development_dependency "sqlite3", "~> 1.3.6"
|
|
17
18
|
gem.add_development_dependency "rake"
|
|
19
|
+
gem.add_development_dependency "minitest"
|
|
20
|
+
gem.add_development_dependency "bigdecimal", "~> 1.4.4"
|
|
18
21
|
|
|
19
22
|
gem.files = `git ls-files`.split($\)
|
|
20
23
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
data/gemfiles/ar3_0.gemfile
CHANGED
data/gemfiles/ar4_0.gemfile
CHANGED
|
@@ -182,11 +182,11 @@ module CodeBox
|
|
|
182
182
|
end
|
|
183
183
|
|
|
184
184
|
def hash
|
|
185
|
-
|
|
185
|
+
[self.class.name, #{code_attr}].hash
|
|
186
186
|
end
|
|
187
187
|
|
|
188
|
-
def
|
|
189
|
-
other
|
|
188
|
+
def eql?(other)
|
|
189
|
+
other.is_a?(self.class) && self.hash == other.hash
|
|
190
190
|
end
|
|
191
191
|
|
|
192
192
|
def ==(other)
|
|
@@ -212,16 +212,11 @@ module CodeBox
|
|
|
212
212
|
constants = {}
|
|
213
213
|
codes.each do |code|
|
|
214
214
|
constant_name = code.to_s.camelize
|
|
215
|
-
constant = codes_module.const_set(constant_name, code.to_s)
|
|
215
|
+
constant = codes_module.const_set(constant_name, code.to_s)
|
|
216
216
|
constants[constant_name] = constant
|
|
217
217
|
end
|
|
218
|
-
raise "Could not define all code constants. Only defined for #{constants.values.compact.inspect}" unless constants.values.compact.size == codes.size
|
|
219
218
|
|
|
220
|
-
|
|
221
|
-
raise "Could not define constant 'All' for all codes."
|
|
222
|
-
else
|
|
223
|
-
codes_module.const_set('All', constants.values.compact)
|
|
224
|
-
end
|
|
219
|
+
codes_module.const_set('All', constants.values.compact)
|
|
225
220
|
|
|
226
221
|
|
|
227
222
|
# Define test methods for each code like e.g.
|
|
@@ -249,17 +244,11 @@ module CodeBox
|
|
|
249
244
|
constants = {}
|
|
250
245
|
codes.each do |code|
|
|
251
246
|
constant_name = "#{code.to_s.camelize}"
|
|
252
|
-
constant = const_set(constant_name, self.new(code.to_s))
|
|
247
|
+
constant = const_set(constant_name, self.new(code.to_s))
|
|
253
248
|
constants[constant_name] = constant
|
|
254
249
|
end
|
|
255
|
-
raise "Could not define all code instance constants. Only defined for #{constants.values.compact.inspect}" unless constants.values.compact.size == codes.size
|
|
256
250
|
|
|
257
|
-
|
|
258
|
-
if const_defined?(constant_name, false)
|
|
259
|
-
raise "Could not define constant '#{const_name}' for all codes."
|
|
260
|
-
else
|
|
261
|
-
const_set(constant_name, constants.values.compact)
|
|
262
|
-
end
|
|
251
|
+
const_set('All', constants.values.compact)
|
|
263
252
|
|
|
264
253
|
class_eval <<-CODE
|
|
265
254
|
def self.all
|
|
@@ -69,16 +69,25 @@ module CodeBox
|
|
|
69
69
|
class_eval <<-RUBY_
|
|
70
70
|
# getter
|
|
71
71
|
def #{code_name}
|
|
72
|
-
|
|
72
|
+
code_value = #{code_attr_name}
|
|
73
|
+
return [] if code_value.nil?
|
|
74
|
+
codes = code_value.split(',').map(&:strip)
|
|
73
75
|
codes.map{ |code| #{code_class_name}.for_code(code) }
|
|
74
76
|
end
|
|
75
77
|
|
|
76
78
|
# setter
|
|
77
|
-
def #{code_name}=(
|
|
78
|
-
code_objs = Array(
|
|
79
|
+
def #{code_name}=(code_obj)
|
|
80
|
+
code_objs = Array(code_obj)
|
|
79
81
|
value = code_objs.map{ |code_obj| code_obj.#{foreign_code_attr_name} }.join(',')
|
|
80
82
|
self.#{code_attr_name} = value
|
|
81
83
|
end
|
|
84
|
+
|
|
85
|
+
# getter raw
|
|
86
|
+
# not getter raw - it's defined already
|
|
87
|
+
|
|
88
|
+
def #{code_attr_name}_list=(codes)
|
|
89
|
+
self.#{code_attr_name} = Array(codes).join(',')
|
|
90
|
+
end
|
|
82
91
|
RUBY_
|
|
83
92
|
when :binary
|
|
84
93
|
raise ArgumentError, "#:binary is not yet supported enum option"
|
data/lib/code-box/version.rb
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
|
-
class TestActsAsCode <
|
|
5
|
+
class TestActsAsCode < MiniTest::Unit::TestCase
|
|
6
6
|
|
|
7
7
|
def test_all_methods
|
|
8
8
|
assert_equal 2, Codes::CivilStatus.all.size
|
|
@@ -69,6 +69,7 @@ class TestActsAsCode < Test::Unit::TestCase
|
|
|
69
69
|
|
|
70
70
|
def test_code_translation
|
|
71
71
|
code = Codes::CivilStatus.new('married')
|
|
72
|
+
I18n.locale = :en
|
|
72
73
|
|
|
73
74
|
assert_equal code.translated_code, 'married'
|
|
74
75
|
assert_equal code.translated_code(:de), 'verheiratet'
|
|
@@ -80,27 +81,27 @@ class TestActsAsCode < Test::Unit::TestCase
|
|
|
80
81
|
|
|
81
82
|
options_array = Codes::CivilStatus.build_select_options(include_empty: true)
|
|
82
83
|
assert_equal options_array.size, 3
|
|
83
|
-
assert_equal options_array.first[1], nil
|
|
84
|
+
assert_equal options_array.first[1], nil
|
|
84
85
|
end
|
|
85
86
|
|
|
86
87
|
def test_options_building_with_text_label
|
|
87
88
|
options_array = Codes::CivilStatus.build_select_options(include_empty: { label: 'MyLabel' })
|
|
88
89
|
assert_equal options_array.size, 3
|
|
89
|
-
assert_equal options_array.first[0], 'MyLabel'
|
|
90
|
-
assert_equal options_array.first[1], nil
|
|
90
|
+
assert_equal options_array.first[0], 'MyLabel'
|
|
91
|
+
assert_equal options_array.first[1], nil
|
|
91
92
|
end
|
|
92
93
|
|
|
93
94
|
def test_options_building_with_custom_value
|
|
94
95
|
options_array = Codes::CivilStatus.build_select_options(include_empty: { value: 'all' })
|
|
95
96
|
assert_equal options_array.size, 3
|
|
96
|
-
assert_equal options_array.first[1], 'all'
|
|
97
|
+
assert_equal options_array.first[1], 'all'
|
|
97
98
|
end
|
|
98
99
|
|
|
99
100
|
def test_options_building_with_custom_label_and_value
|
|
100
101
|
options_array = Codes::CivilStatus.build_select_options(include_empty: { label: 'Yaiii', value: 'all' })
|
|
101
102
|
assert_equal options_array.size, 3
|
|
102
|
-
assert_equal options_array.first[0], 'Yaiii'
|
|
103
|
-
assert_equal options_array.first[1], 'all'
|
|
103
|
+
assert_equal options_array.first[0], 'Yaiii'
|
|
104
|
+
assert_equal options_array.first[1], 'all'
|
|
104
105
|
end
|
|
105
106
|
|
|
106
107
|
end
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
require 'helper'
|
|
4
4
|
|
|
5
|
-
class TestCodeAttribute <
|
|
5
|
+
class TestCodeAttribute <MiniTest::Unit::TestCase
|
|
6
6
|
|
|
7
7
|
def setup
|
|
8
8
|
end
|
|
@@ -98,6 +98,8 @@ class TestCodeAttribute < Test::Unit::TestCase
|
|
|
98
98
|
|
|
99
99
|
# :type => :associated ----------------------------------------------------------------
|
|
100
100
|
def test_code_attribute_lookup_associated
|
|
101
|
+
Codes::Country.delete_all
|
|
102
|
+
|
|
101
103
|
code_ch = Codes::Country.create(:code => 'CH', :name => 'Switzerland')
|
|
102
104
|
code_de = Codes::Country.create(:code => 'DE', :name => 'Germany')
|
|
103
105
|
|
data/test/helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,64 +1,85 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: code-box
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 1.1.3
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Martin Schweizer
|
|
9
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 2022-03-10 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: activerecord
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
|
-
- - ~>
|
|
17
|
+
- - "~>"
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
21
19
|
version: '4.0'
|
|
22
20
|
type: :development
|
|
23
21
|
prerelease: false
|
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
23
|
requirements:
|
|
27
|
-
- - ~>
|
|
24
|
+
- - "~>"
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
29
26
|
version: '4.0'
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
|
31
28
|
name: sqlite3
|
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
|
33
|
-
none: false
|
|
34
30
|
requirements:
|
|
35
|
-
- -
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: 1.3.6
|
|
34
|
+
type: :development
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - "~>"
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: 1.3.6
|
|
41
|
+
- !ruby/object:Gem::Dependency
|
|
42
|
+
name: rake
|
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
|
44
|
+
requirements:
|
|
45
|
+
- - ">="
|
|
36
46
|
- !ruby/object:Gem::Version
|
|
37
47
|
version: '0'
|
|
38
48
|
type: :development
|
|
39
49
|
prerelease: false
|
|
40
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
51
|
requirements:
|
|
43
|
-
- -
|
|
52
|
+
- - ">="
|
|
44
53
|
- !ruby/object:Gem::Version
|
|
45
54
|
version: '0'
|
|
46
55
|
- !ruby/object:Gem::Dependency
|
|
47
|
-
name:
|
|
56
|
+
name: minitest
|
|
48
57
|
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
58
|
requirements:
|
|
51
|
-
- -
|
|
59
|
+
- - ">="
|
|
52
60
|
- !ruby/object:Gem::Version
|
|
53
61
|
version: '0'
|
|
54
62
|
type: :development
|
|
55
63
|
prerelease: false
|
|
56
64
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
65
|
requirements:
|
|
59
|
-
- -
|
|
66
|
+
- - ">="
|
|
60
67
|
- !ruby/object:Gem::Version
|
|
61
68
|
version: '0'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: bigdecimal
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: 1.4.4
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: 1.4.4
|
|
62
83
|
description: Specify attributes as code and provide lookup by I18n-, cache- or associated
|
|
63
84
|
and support for building code classes.
|
|
64
85
|
email:
|
|
@@ -67,9 +88,9 @@ executables: []
|
|
|
67
88
|
extensions: []
|
|
68
89
|
extra_rdoc_files: []
|
|
69
90
|
files:
|
|
70
|
-
- .gitignore
|
|
71
|
-
- .ruby-version
|
|
72
|
-
- .travis.yml
|
|
91
|
+
- ".gitignore"
|
|
92
|
+
- ".ruby-version"
|
|
93
|
+
- ".travis.yml"
|
|
73
94
|
- Gemfile
|
|
74
95
|
- Gemfile.lock
|
|
75
96
|
- LICENSE
|
|
@@ -78,6 +99,7 @@ files:
|
|
|
78
99
|
- code-box.gemspec
|
|
79
100
|
- gemfiles/ar3_0.gemfile
|
|
80
101
|
- gemfiles/ar4_0.gemfile
|
|
102
|
+
- gemfiles/ar4_1.gemfile
|
|
81
103
|
- lib/code-box.rb
|
|
82
104
|
- lib/code-box/acts_as_code.rb
|
|
83
105
|
- lib/code-box/code_attribute.rb
|
|
@@ -90,31 +112,30 @@ files:
|
|
|
90
112
|
- test/resources/models.rb
|
|
91
113
|
- test/resources/schema.rb
|
|
92
114
|
homepage: http://github.com/verticonaut/code-box
|
|
93
|
-
licenses:
|
|
94
|
-
|
|
115
|
+
licenses:
|
|
116
|
+
- BSD-2-Clause
|
|
117
|
+
metadata: {}
|
|
118
|
+
post_install_message:
|
|
95
119
|
rdoc_options:
|
|
96
|
-
- --charset
|
|
120
|
+
- "--charset"
|
|
97
121
|
- UTF-8
|
|
98
|
-
- --line-numbers
|
|
122
|
+
- "--line-numbers"
|
|
99
123
|
require_paths:
|
|
100
124
|
- lib
|
|
101
125
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
102
|
-
none: false
|
|
103
126
|
requirements:
|
|
104
|
-
- -
|
|
127
|
+
- - ">="
|
|
105
128
|
- !ruby/object:Gem::Version
|
|
106
129
|
version: '0'
|
|
107
130
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
|
-
none: false
|
|
109
131
|
requirements:
|
|
110
|
-
- -
|
|
132
|
+
- - ">="
|
|
111
133
|
- !ruby/object:Gem::Version
|
|
112
134
|
version: '0'
|
|
113
135
|
requirements: []
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
specification_version: 3
|
|
136
|
+
rubygems_version: 3.3.8
|
|
137
|
+
signing_key:
|
|
138
|
+
specification_version: 4
|
|
118
139
|
summary: Specify attributes as code and provide lookup by I18n-, cache- or associated
|
|
119
140
|
and support for building code classes.
|
|
120
141
|
test_files:
|
|
@@ -125,4 +146,3 @@ test_files:
|
|
|
125
146
|
- test/resources/locale/en.yml
|
|
126
147
|
- test/resources/models.rb
|
|
127
148
|
- test/resources/schema.rb
|
|
128
|
-
has_rdoc:
|