code-box 1.1.0 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
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: