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 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.9.3-p362
1
+ ruby-2.7.4
data/.travis.yml CHANGED
@@ -5,3 +5,4 @@ rvm:
5
5
  gemfile:
6
6
  - gemfiles/ar3_0.gemfile
7
7
  - gemfiles/ar4_0.gemfile
8
+ - gemfiles/ar4_1.gemfile
data/Gemfile.lock CHANGED
@@ -1,43 +1,46 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- code-box (1.1.0)
4
+ code-box (1.1.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- activemodel (4.0.0)
10
- activesupport (= 4.0.0)
11
- builder (~> 3.1.0)
12
- activerecord (4.0.0)
13
- activemodel (= 4.0.0)
14
- activerecord-deprecated_finders (~> 1.0.2)
15
- activesupport (= 4.0.0)
16
- arel (~> 4.0.0)
17
- activerecord-deprecated_finders (1.0.3)
18
- activesupport (4.0.0)
19
- i18n (~> 0.6, >= 0.6.4)
20
- minitest (~> 4.2)
21
- multi_json (~> 1.3)
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
- ruby
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) }
@@ -6,4 +6,5 @@ group :test do
6
6
  gem 'rake'
7
7
  gem 'rdoc'
8
8
  gem 'sqlite3'
9
+ gem 'minitest'
9
10
  end
@@ -6,4 +6,5 @@ group :test do
6
6
  gem 'rake'
7
7
  gem 'rdoc'
8
8
  gem 'sqlite3'
9
+ gem 'minitest'
9
10
  end
@@ -0,0 +1,10 @@
1
+ source 'http://rubygems.org'
2
+
3
+ gem 'activerecord', '~> 4.1'
4
+
5
+ group :test do
6
+ gem 'rake'
7
+ gem 'rdoc'
8
+ gem 'sqlite3'
9
+ gem 'minitest'
10
+ end
@@ -182,11 +182,11 @@ module CodeBox
182
182
  end
183
183
 
184
184
  def hash
185
- (self.class.name + '#' + #{code_attr}).hash
185
+ [self.class.name, #{code_attr}].hash
186
186
  end
187
187
 
188
- def equal?(other)
189
- other && is_a?(other.class) && #{code_attr} == other.#{code_attr}
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) unless codes_module.const_defined?(constant_name, false)
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
- if const_defined?('All', false)
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)) unless const_defined?(constant_name, false)
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
- constant_name = 'All'
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
- codes = #{code_attr_name}.split(',').map(&:strip)
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}=(code)
78
- code_objs = Array(code)
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"
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module CodeBox
4
- VERSION = "1.1.0"
4
+ VERSION = "1.1.3"
5
5
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'helper'
4
4
 
5
- class TestActsAsCode < Test::Unit::TestCase
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 < Test::Unit::TestCase
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
@@ -1,5 +1,5 @@
1
1
  require 'rubygems'
2
- require 'test/unit'
2
+ require 'minitest/autorun'
3
3
  require 'fileutils'
4
4
  require 'active_record'
5
5
  require 'logger'
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.0
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: 2014-01-29 00:00:00.000000000 Z
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: rake
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
- post_install_message:
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
- rubyforge_project:
115
- rubygems_version: 1.8.23
116
- signing_key:
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: