code-box 1.1.2 → 2.0.pre1
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/Gemfile.lock +26 -29
- data/code-box.gemspec +5 -4
- data/lib/code-box/acts_as_code.rb +20 -21
- data/lib/code-box/code_attribute.rb +3 -1
- data/lib/code-box/version.rb +1 -1
- data/test/code-box/test_acts_as_code.rb +7 -6
- data/test/code-box/test_code_attribute.rb +2 -0
- data/test/helper.rb +5 -7
- data/test/resources/models.rb +12 -12
- metadata +42 -44
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: b5afe4ddbba5d1d56cbc3138bf18f2f90362bbe847c1012f70f4e20246d6605b
         | 
| 4 | 
            +
              data.tar.gz: d193e966b4d7aad65ac25e03ebe8b7c4ccebcf17b5581b292840b12118c93540
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: 53f339272afdd05eb062555f81a9a145308d060eaef3252cca5bd5e66c9526191b616332d07d1eeb6871c2a7972b714d6474ade829e2f075a582110117a9ab4a
         | 
| 7 | 
            +
              data.tar.gz: 5d80e4739ef4722b273e34ae6321e40d9c3e3e684587b797437ad3bd10931ec64237e36809f2757c97a9cd608ccc933b2d79d1e94ee22d9ec322e7115ad0cab7
         | 
    
        data/.ruby-version
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            ruby- | 
| 1 | 
            +
            ruby-2.7.4
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,44 +1,41 @@ | |
| 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 ( | 
| 10 | 
            -
                  activesupport (=  | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
                   | 
| 14 | 
            -
             | 
| 15 | 
            -
                   | 
| 16 | 
            -
                   | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
             | 
| 22 | 
            -
                   | 
| 23 | 
            -
             | 
| 24 | 
            -
                 | 
| 25 | 
            -
                 | 
| 26 | 
            -
                 | 
| 27 | 
            -
             | 
| 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)
         | 
| 9 | 
            +
                activemodel (7.0.4.1)
         | 
| 10 | 
            +
                  activesupport (= 7.0.4.1)
         | 
| 11 | 
            +
                activerecord (7.0.4.1)
         | 
| 12 | 
            +
                  activemodel (= 7.0.4.1)
         | 
| 13 | 
            +
                  activesupport (= 7.0.4.1)
         | 
| 14 | 
            +
                activesupport (7.0.4.1)
         | 
| 15 | 
            +
                  concurrent-ruby (~> 1.0, >= 1.0.2)
         | 
| 16 | 
            +
                  i18n (>= 1.6, < 2)
         | 
| 17 | 
            +
                  minitest (>= 5.1)
         | 
| 18 | 
            +
                  tzinfo (~> 2.0)
         | 
| 19 | 
            +
                bigdecimal (3.1.3)
         | 
| 20 | 
            +
                concurrent-ruby (1.1.10)
         | 
| 21 | 
            +
                i18n (1.12.0)
         | 
| 22 | 
            +
                  concurrent-ruby (~> 1.0)
         | 
| 23 | 
            +
                minitest (5.17.0)
         | 
| 24 | 
            +
                rake (13.0.6)
         | 
| 25 | 
            +
                sqlite3 (1.6.0-x86_64-darwin)
         | 
| 26 | 
            +
                tzinfo (2.0.5)
         | 
| 27 | 
            +
                  concurrent-ruby (~> 1.0)
         | 
| 35 28 |  | 
| 36 29 | 
             
            PLATFORMS
         | 
| 37 | 
            -
               | 
| 30 | 
            +
              x86_64-darwin-21
         | 
| 38 31 |  | 
| 39 32 | 
             
            DEPENDENCIES
         | 
| 40 | 
            -
              activerecord (~>  | 
| 33 | 
            +
              activerecord (~> 7.0)
         | 
| 34 | 
            +
              bigdecimal
         | 
| 41 35 | 
             
              code-box!
         | 
| 42 36 | 
             
              minitest
         | 
| 43 37 | 
             
              rake
         | 
| 44 38 | 
             
              sqlite3
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            BUNDLED WITH
         | 
| 41 | 
            +
               2.4.1
         | 
    
        data/code-box.gemspec
    CHANGED
    
    | @@ -3,8 +3,9 @@ $:.push File.expand_path("../lib", __FILE__) | |
| 3 3 | 
             
            require File.expand_path('../lib/code-box/version', __FILE__)
         | 
| 4 4 |  | 
| 5 5 | 
             
            Gem::Specification.new do |gem|
         | 
| 6 | 
            -
              gem.name          =  | 
| 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"]
         | 
| @@ -12,15 +13,15 @@ Gem::Specification.new do |gem| | |
| 12 13 | 
             
              gem.summary       = %q{Specify attributes as code and provide lookup by I18n-, cache- or associated and support for building code classes.}
         | 
| 13 14 | 
             
              gem.homepage      = %q{http://github.com/verticonaut/code-box}
         | 
| 14 15 |  | 
| 15 | 
            -
              gem.add_development_dependency  "activerecord", "~>  | 
| 16 | 
            +
              gem.add_development_dependency  "activerecord", "~> 7.0"
         | 
| 16 17 | 
             
              gem.add_development_dependency  "sqlite3"
         | 
| 17 18 | 
             
              gem.add_development_dependency  "rake"
         | 
| 18 19 | 
             
              gem.add_development_dependency  "minitest"
         | 
| 20 | 
            +
              gem.add_development_dependency  "bigdecimal"
         | 
| 19 21 |  | 
| 20 22 | 
             
              gem.files         = `git ls-files`.split($\)
         | 
| 21 23 | 
             
              gem.executables   = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
         | 
| 22 24 | 
             
              gem.test_files    = gem.files.grep(%r{^(test|spec|features)/})
         | 
| 23 25 | 
             
              gem.require_paths = ["lib"]
         | 
| 24 | 
            -
              gem.rdoc_options  <<  | 
| 26 | 
            +
              gem.rdoc_options  << "--charset" << "UTF-8" << "--line-numbers"
         | 
| 25 27 | 
             
            end
         | 
| 26 | 
            -
             | 
| @@ -1,5 +1,4 @@ | |
| 1 | 
            -
             | 
| 2 | 
            -
            # encoding: utf-8
         | 
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 3 2 |  | 
| 4 3 | 
             
            module CodeBox
         | 
| 5 4 |  | 
| @@ -34,8 +33,8 @@ module CodeBox | |
| 34 33 | 
             
                  instance_eval <<-RUBY_
         | 
| 35 34 | 
             
                    class << base
         | 
| 36 35 | 
             
                      def _code_box_i18n_model_segment
         | 
| 37 | 
            -
                        return CodeBox.i18n_model_segment if "#{ | 
| 38 | 
            -
                        "#{ | 
| 36 | 
            +
                        return CodeBox.i18n_model_segment if "#{_code_box_i18n_model_segment}".empty?
         | 
| 37 | 
            +
                        "#{_code_box_i18n_model_segment}"
         | 
| 39 38 | 
             
                      end
         | 
| 40 39 | 
             
                    end
         | 
| 41 40 | 
             
                  RUBY_
         | 
| @@ -47,11 +46,11 @@ module CodeBox | |
| 47 46 |  | 
| 48 47 | 
             
                module ClassMethods
         | 
| 49 48 | 
             
                  DefaultOptions = {
         | 
| 50 | 
            -
             | 
| 51 | 
            -
             | 
| 52 | 
            -
             | 
| 53 | 
            -
             | 
| 54 | 
            -
             | 
| 49 | 
            +
                    code_attribute:            "code",
         | 
| 50 | 
            +
                    sti:                       false,
         | 
| 51 | 
            +
                    uniqueness_case_sensitive: true,
         | 
| 52 | 
            +
                    position_attr:             :position,
         | 
| 53 | 
            +
                    define_test_methods:       true,
         | 
| 55 54 | 
             
                  }
         | 
| 56 55 |  | 
| 57 56 | 
             
                  def acts_as_code(*codes_and_or_options)
         | 
| @@ -63,7 +62,7 @@ module CodeBox | |
| 63 62 | 
             
                    case_sensitive        = opts[:uniqueness_case_sensitive]
         | 
| 64 63 | 
             
                    define_test_methods   = opts[:define_test_methods]
         | 
| 65 64 |  | 
| 66 | 
            -
                    model_type =  | 
| 65 | 
            +
                    model_type = ancestors.include?("ActiveRecord::Base".constantize) ? :active_record : :poro
         | 
| 67 66 |  | 
| 68 67 | 
             
                    class_eval <<-RUBY_
         | 
| 69 68 | 
             
                      def translated_#{code_attr}(locale = I18n.locale, *options)
         | 
| @@ -123,7 +122,7 @@ module CodeBox | |
| 123 122 | 
             
                        # If starts with 'i18n.' it is considered an I18n key, else the label itself
         | 
| 124 123 | 
             
                        options = translate_#{code_attr}(codes, build: :zip)
         | 
| 125 124 | 
             
                        if include_empty
         | 
| 126 | 
            -
                          label = I18n.t(label[5..-1], locale: locale) if label. | 
| 125 | 
            +
                          label = I18n.t(label[5..-1], locale: locale) if label.start_with?('i18n.')
         | 
| 127 126 | 
             
                          options.unshift [label, value]
         | 
| 128 127 | 
             
                        end
         | 
| 129 128 |  | 
| @@ -138,7 +137,7 @@ module CodeBox | |
| 138 137 | 
             
                    instance_eval <<-CODE
         | 
| 139 138 | 
             
                      class << self
         | 
| 140 139 | 
             
                        def _code_box_code_attr_name
         | 
| 141 | 
            -
                           | 
| 140 | 
            +
                          code_attr.to_s
         | 
| 142 141 | 
             
                        end
         | 
| 143 142 |  | 
| 144 143 | 
             
                        def code_cache
         | 
| @@ -155,7 +154,7 @@ module CodeBox | |
| 155 154 | 
             
                      when :active_record
         | 
| 156 155 |  | 
| 157 156 | 
             
                        order_expression = if self.attribute_names.include?(position_attr) then
         | 
| 158 | 
            -
                          "coalesce(#{position_attr | 
| 157 | 
            +
                          "coalesce(#{position_attr}, #{code_attr})"
         | 
| 159 158 | 
             
                        else
         | 
| 160 159 | 
             
                          code_attr.to_s
         | 
| 161 160 | 
             
                        end
         | 
| @@ -168,7 +167,7 @@ module CodeBox | |
| 168 167 | 
             
                        CODE
         | 
| 169 168 |  | 
| 170 169 | 
             
                      when :poro
         | 
| 171 | 
            -
                         | 
| 170 | 
            +
                        _order_attr = position_attr ? position_attr.to_s : code_attr.to_s
         | 
| 172 171 |  | 
| 173 172 | 
             
                        class_eval <<-CODE
         | 
| 174 173 | 
             
                          attr_accessor :#{code_attr}
         | 
| @@ -202,11 +201,11 @@ module CodeBox | |
| 202 201 |  | 
| 203 202 | 
             
                  def define_codes(*codes, define_test_methods)
         | 
| 204 203 | 
             
                    # --- Define the code constants...
         | 
| 205 | 
            -
                    code_attr   =  | 
| 206 | 
            -
                    model_type  =  | 
| 204 | 
            +
                    code_attr   = _code_box_code_attr_name
         | 
| 205 | 
            +
                    model_type  = ancestors.include?("ActiveRecord::Base".constantize) ? :active_record : :poro
         | 
| 207 206 |  | 
| 208 207 | 
             
                    module_name  = code_attr.pluralize.camelize
         | 
| 209 | 
            -
                    codes_module = const_set(module_name, Module.new) | 
| 208 | 
            +
                    codes_module = const_set(module_name, Module.new)
         | 
| 210 209 |  | 
| 211 210 | 
             
                    # Create a constant for each code
         | 
| 212 211 | 
             
                    constants = {}
         | 
| @@ -216,7 +215,7 @@ module CodeBox | |
| 216 215 | 
             
                      constants[constant_name] = constant
         | 
| 217 216 | 
             
                    end
         | 
| 218 217 |  | 
| 219 | 
            -
                    codes_module.const_set( | 
| 218 | 
            +
                    codes_module.const_set("All", constants.values.compact)
         | 
| 220 219 |  | 
| 221 220 |  | 
| 222 221 | 
             
                    # Define test methods for each code like e.g.
         | 
| @@ -243,12 +242,12 @@ module CodeBox | |
| 243 242 |  | 
| 244 243 | 
             
                    constants = {}
         | 
| 245 244 | 
             
                    codes.each do |code|
         | 
| 246 | 
            -
                      constant_name            =  | 
| 247 | 
            -
                      constant                 = const_set(constant_name,  | 
| 245 | 
            +
                      constant_name            = code.to_s.camelize
         | 
| 246 | 
            +
                      constant                 = const_set(constant_name, new(code.to_s))
         | 
| 248 247 | 
             
                      constants[constant_name] = constant
         | 
| 249 248 | 
             
                    end
         | 
| 250 249 |  | 
| 251 | 
            -
                    const_set( | 
| 250 | 
            +
                    const_set("All", constants.values.compact)
         | 
| 252 251 |  | 
| 253 252 | 
             
                    class_eval <<-CODE
         | 
| 254 253 | 
             
                      def self.all
         | 
| @@ -69,7 +69,9 @@ 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 |  | 
    
        data/lib/code-box/version.rb
    CHANGED
    
    
| @@ -69,6 +69,7 @@ class TestActsAsCode < MiniTest::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 < MiniTest::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
         | 
| @@ -98,6 +98,8 @@ class TestCodeAttribute <MiniTest::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
    
    | @@ -8,14 +8,12 @@ require 'logger' | |
| 8 8 | 
             
            # Setup AR environment
         | 
| 9 9 | 
             
            # ------------------------------------------------------
         | 
| 10 10 |  | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
             | 
| 14 | 
            -
                : | 
| 15 | 
            -
                :database => ':memory:'
         | 
| 11 | 
            +
            ActiveRecord::Base.establish_connection(
         | 
| 12 | 
            +
              {
         | 
| 13 | 
            +
                adapter:   "sqlite3",
         | 
| 14 | 
            +
                database: ":memory:",
         | 
| 16 15 | 
             
              }
         | 
| 17 | 
            -
             | 
| 18 | 
            -
            ActiveRecord::Base.establish_connection("test")
         | 
| 16 | 
            +
            )
         | 
| 19 17 |  | 
| 20 18 | 
             
            # Setup logger
         | 
| 21 19 | 
             
            tmp = File.expand_path('../../tmp', __FILE__)
         | 
    
        data/test/resources/models.rb
    CHANGED
    
    | @@ -1,8 +1,9 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            # ------------------------------------------------------
         | 
| 2 4 | 
             
            # Defined the respective AR Models
         | 
| 3 5 | 
             
            # ------------------------------------------------------
         | 
| 4 6 | 
             
            module Codes
         | 
| 5 | 
            -
             | 
| 6 7 | 
             
              class SampleClass < ActiveRecord::Base
         | 
| 7 8 | 
             
                self.table_name = :codes_sample_class
         | 
| 8 9 |  | 
| @@ -10,23 +11,23 @@ module Codes | |
| 10 11 |  | 
| 11 12 | 
             
                # i18n codes
         | 
| 12 13 | 
             
                code_attribute :gender
         | 
| 13 | 
            -
                code_attribute :country,      : | 
| 14 | 
            +
                code_attribute :country,      lookup_type: :i18n, code_attribute_suffix: "iso"
         | 
| 14 15 |  | 
| 15 16 | 
             
                # lookup codes
         | 
| 16 | 
            -
                code_attribute :civil_status, : | 
| 17 | 
            -
                code_attribute :ager_type,    : | 
| 17 | 
            +
                code_attribute :civil_status, lookup_type: :lookup, class_name: "Codes::CivilStatus"
         | 
| 18 | 
            +
                code_attribute :ager_type,    lookup_type: :lookup, foreign_code_attribute: "code_id"
         | 
| 18 19 |  | 
| 19 | 
            -
                code_attribute :country_2,    : | 
| 20 | 
            +
                code_attribute :country_2,    lookup_type: :associated, class_name: "Codes::Country"
         | 
| 20 21 |  | 
| 21 | 
            -
                code_attribute :countries,    : | 
| 22 | 
            +
                code_attribute :countries,    lookup_type: :lookup, class_name: "Codes::Country", enum: :set
         | 
| 22 23 | 
             
              end
         | 
| 23 24 |  | 
| 24 25 | 
             
              class CivilStatus
         | 
| 25 | 
            -
                include CodeBox::ActsAsCode[ | 
| 26 | 
            +
                include CodeBox::ActsAsCode["single", "married", type: :poro]
         | 
| 26 27 | 
             
              end
         | 
| 27 28 |  | 
| 28 29 | 
             
              class CivilStatusUseDefine
         | 
| 29 | 
            -
                include CodeBox::ActsAsCode[: | 
| 30 | 
            +
                include CodeBox::ActsAsCode[type: :poro]
         | 
| 30 31 |  | 
| 31 32 | 
             
                define_codes(:single, :married)
         | 
| 32 33 | 
             
              end
         | 
| @@ -53,23 +54,22 @@ module Codes | |
| 53 54 | 
             
                self.table_name = :codes_country
         | 
| 54 55 |  | 
| 55 56 | 
             
                def self.for_code(code)
         | 
| 56 | 
            -
                  where( | 
| 57 | 
            +
                  where("code= ?", code).first
         | 
| 57 58 | 
             
                end
         | 
| 58 59 | 
             
              end
         | 
| 59 60 |  | 
| 60 61 |  | 
| 61 62 | 
             
              class ArCode < ActiveRecord::Base
         | 
| 62 63 | 
             
                self.table_name = :codes_ar_code
         | 
| 63 | 
            -
                include CodeBox::ActsAsCode[: | 
| 64 | 
            +
                include CodeBox::ActsAsCode[type: :active_record]
         | 
| 64 65 | 
             
              end
         | 
| 65 66 |  | 
| 66 67 | 
             
              class SegmentModel
         | 
| 67 | 
            -
                include CodeBox::CodeAttribute[: | 
| 68 | 
            +
                include CodeBox::CodeAttribute[i18n_model_segment: :model]
         | 
| 68 69 |  | 
| 69 70 | 
             
                attr_accessor :gender_code
         | 
| 70 71 |  | 
| 71 72 | 
             
                # i18n codes
         | 
| 72 73 | 
             
                code_attribute :gender
         | 
| 73 74 | 
             
              end
         | 
| 74 | 
            -
             | 
| 75 75 | 
             
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,78 +1,83 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: code-box
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 2.0.pre1
         | 
| 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: 2023-01-20 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 | 
            -
                    version: ' | 
| 19 | 
            +
                    version: '7.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 | 
            -
                    version: ' | 
| 26 | 
            +
                    version: '7.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 | 
            +
                - - ">="
         | 
| 36 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 37 33 | 
             
                    version: '0'
         | 
| 38 34 | 
             
              type: :development
         | 
| 39 35 | 
             
              prerelease: false
         | 
| 40 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 | 
            -
                none: false
         | 
| 42 37 | 
             
                requirements:
         | 
| 43 | 
            -
                - -  | 
| 38 | 
            +
                - - ">="
         | 
| 44 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 45 40 | 
             
                    version: '0'
         | 
| 46 41 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 47 42 | 
             
              name: rake
         | 
| 48 43 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 49 | 
            -
                none: false
         | 
| 50 44 | 
             
                requirements:
         | 
| 51 | 
            -
                - -  | 
| 45 | 
            +
                - - ">="
         | 
| 52 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 53 47 | 
             
                    version: '0'
         | 
| 54 48 | 
             
              type: :development
         | 
| 55 49 | 
             
              prerelease: false
         | 
| 56 50 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 57 | 
            -
                none: false
         | 
| 58 51 | 
             
                requirements:
         | 
| 59 | 
            -
                - -  | 
| 52 | 
            +
                - - ">="
         | 
| 60 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 61 54 | 
             
                    version: '0'
         | 
| 62 55 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 63 56 | 
             
              name: minitest
         | 
| 64 57 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 65 | 
            -
                none: false
         | 
| 66 58 | 
             
                requirements:
         | 
| 67 | 
            -
                - -  | 
| 59 | 
            +
                - - ">="
         | 
| 68 60 | 
             
                  - !ruby/object:Gem::Version
         | 
| 69 61 | 
             
                    version: '0'
         | 
| 70 62 | 
             
              type: :development
         | 
| 71 63 | 
             
              prerelease: false
         | 
| 72 64 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 73 | 
            -
                none: false
         | 
| 74 65 | 
             
                requirements:
         | 
| 75 | 
            -
                - -  | 
| 66 | 
            +
                - - ">="
         | 
| 67 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 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: '0'
         | 
| 76 | 
            +
              type: :development
         | 
| 77 | 
            +
              prerelease: false
         | 
| 78 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 79 | 
            +
                requirements:
         | 
| 80 | 
            +
                - - ">="
         | 
| 76 81 | 
             
                  - !ruby/object:Gem::Version
         | 
| 77 82 | 
             
                    version: '0'
         | 
| 78 83 | 
             
            description: Specify attributes as code and provide lookup by I18n-, cache- or associated
         | 
| @@ -83,9 +88,9 @@ executables: [] | |
| 83 88 | 
             
            extensions: []
         | 
| 84 89 | 
             
            extra_rdoc_files: []
         | 
| 85 90 | 
             
            files:
         | 
| 86 | 
            -
            - .gitignore
         | 
| 87 | 
            -
            - .ruby-version
         | 
| 88 | 
            -
            - .travis.yml
         | 
| 91 | 
            +
            - ".gitignore"
         | 
| 92 | 
            +
            - ".ruby-version"
         | 
| 93 | 
            +
            - ".travis.yml"
         | 
| 89 94 | 
             
            - Gemfile
         | 
| 90 95 | 
             
            - Gemfile.lock
         | 
| 91 96 | 
             
            - LICENSE
         | 
| @@ -107,37 +112,30 @@ files: | |
| 107 112 | 
             
            - test/resources/models.rb
         | 
| 108 113 | 
             
            - test/resources/schema.rb
         | 
| 109 114 | 
             
            homepage: http://github.com/verticonaut/code-box
         | 
| 110 | 
            -
            licenses: | 
| 111 | 
            -
             | 
| 115 | 
            +
            licenses:
         | 
| 116 | 
            +
            - BSD-2-Clause
         | 
| 117 | 
            +
            metadata: {}
         | 
| 118 | 
            +
            post_install_message:
         | 
| 112 119 | 
             
            rdoc_options:
         | 
| 113 | 
            -
            - --charset
         | 
| 120 | 
            +
            - "--charset"
         | 
| 114 121 | 
             
            - UTF-8
         | 
| 115 | 
            -
            - --line-numbers
         | 
| 122 | 
            +
            - "--line-numbers"
         | 
| 116 123 | 
             
            require_paths:
         | 
| 117 124 | 
             
            - lib
         | 
| 118 125 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 119 | 
            -
              none: false
         | 
| 120 126 | 
             
              requirements:
         | 
| 121 | 
            -
              - -  | 
| 127 | 
            +
              - - ">="
         | 
| 122 128 | 
             
                - !ruby/object:Gem::Version
         | 
| 123 129 | 
             
                  version: '0'
         | 
| 124 | 
            -
                  segments:
         | 
| 125 | 
            -
                  - 0
         | 
| 126 | 
            -
                  hash: -2951990761497190642
         | 
| 127 130 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 128 | 
            -
              none: false
         | 
| 129 131 | 
             
              requirements:
         | 
| 130 | 
            -
              - -  | 
| 132 | 
            +
              - - ">"
         | 
| 131 133 | 
             
                - !ruby/object:Gem::Version
         | 
| 132 | 
            -
                  version:  | 
| 133 | 
            -
                  segments:
         | 
| 134 | 
            -
                  - 0
         | 
| 135 | 
            -
                  hash: -2951990761497190642
         | 
| 134 | 
            +
                  version: 1.3.1
         | 
| 136 135 | 
             
            requirements: []
         | 
| 137 | 
            -
             | 
| 138 | 
            -
             | 
| 139 | 
            -
             | 
| 140 | 
            -
            specification_version: 3
         | 
| 136 | 
            +
            rubygems_version: 3.3.8
         | 
| 137 | 
            +
            signing_key:
         | 
| 138 | 
            +
            specification_version: 4
         | 
| 141 139 | 
             
            summary: Specify attributes as code and provide lookup by I18n-, cache- or associated
         | 
| 142 140 | 
             
              and support for building code classes.
         | 
| 143 141 | 
             
            test_files:
         |