galetahub-enum_field 0.5.3 → 0.5.4
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 +5 -5
- data/README.md +3 -1
- data/Rakefile +26 -25
- data/lib/enum_field.rb +1 -1
- data/lib/enum_field/attribute_value_resolver.rb +3 -1
- data/lib/enum_field/builder.rb +4 -3
- data/lib/enum_field/define_enum.rb +1 -1
- data/lib/enum_field/enumerated_attribute.rb +1 -1
- data/lib/enum_field/version.rb +3 -1
- data/spec/enum_field/attribute_value_resolver_spec.rb +2 -0
- data/spec/enum_field/define_enum_spec.rb +8 -0
- data/spec/enum_field/enumerated_attribute_spec.rb +4 -2
- data/spec/enum_field_spec.rb +2 -0
- data/spec/spec_helper.rb +3 -1
- metadata +6 -6
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 | 
            -
             | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 2 | 
            +
            SHA256:
         | 
| 3 | 
            +
              metadata.gz: ecf564d565c3fb097c126fee3d88effe88d0240c5359fe2ea0ca466f163f9127
         | 
| 4 | 
            +
              data.tar.gz: 53d0500a0585fe7ebd765b0771f1ca0235a797c7e420d8b4c95edbd177bf1f0c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: f5fee53ce52bc2ff4d69a0c6e99976837164b74ca713f7630c1562158750fdcace36ea1e8e5bf4b0137c4649063842584ba76ee2c4776c8fd92c08981d2e4143
         | 
| 7 | 
            +
              data.tar.gz: 1d70dff1a5d345f44152b85f1eec2a583cb9f9cbb238262525a1bc3fb0afc2384206d26b4cce709215d8ea54d49947059b842b5a1ecc7f908391b3c1f2cc6ca5
         | 
    
        data/README.md
    CHANGED
    
    | @@ -107,7 +107,9 @@ PhoneType.first == PhoneType.home | |
| 107 107 | 
             
            PhoneType.last == PhoneType.mobile
         | 
| 108 108 |  | 
| 109 109 | 
             
            PhoneType.find_by_id(PhoneType.home.id) == PhoneType.home
         | 
| 110 | 
            -
            PhoneType.find_by_id(123456) == nil
         | 
| 110 | 
            +
            PhoneType.find_by_id(123456) == nil # will not raise if id does not exists
         | 
| 111 | 
            +
            PhoneType.safe_find(123456) == nil # just alias for find_by_id
         | 
| 112 | 
            +
             | 
| 111 113 | 
             
            PhoneType.find(2) == PhoneType.commercial
         | 
| 112 114 | 
             
            PhoneType.find(123456)  # will raise
         | 
| 113 115 |  | 
    
        data/Rakefile
    CHANGED
    
    | @@ -1,25 +1,26 @@ | |
| 1 | 
            -
            #  | 
| 2 | 
            -
             | 
| 3 | 
            -
            require 'rake | 
| 4 | 
            -
            require 'rake/ | 
| 5 | 
            -
            require  | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 8 | 
            -
             | 
| 9 | 
            -
             | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 12 | 
            -
             | 
| 13 | 
            -
              t.libs << ' | 
| 14 | 
            -
              t. | 
| 15 | 
            -
              t. | 
| 16 | 
            -
             | 
| 17 | 
            -
             | 
| 18 | 
            -
             | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
              rdoc. | 
| 22 | 
            -
              rdoc. | 
| 23 | 
            -
              rdoc. | 
| 24 | 
            -
              rdoc.rdoc_files.include(' | 
| 25 | 
            -
             | 
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'rake'
         | 
| 4 | 
            +
            require 'rake/testtask'
         | 
| 5 | 
            +
            require 'rake/rdoctask'
         | 
| 6 | 
            +
            require File.join(File.dirname(__FILE__), 'lib', 'enum_field', 'version')
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            desc 'Default: run unit tests.'
         | 
| 9 | 
            +
            task default: :test
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            desc 'Test the enum_field plugin.'
         | 
| 12 | 
            +
            Rake::TestTask.new(:test) do |t|
         | 
| 13 | 
            +
              t.libs << 'lib'
         | 
| 14 | 
            +
              t.libs << 'test'
         | 
| 15 | 
            +
              t.pattern = 'test/**/*_test.rb'
         | 
| 16 | 
            +
              t.verbose = true
         | 
| 17 | 
            +
            end
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            desc 'Generate documentation for the enum_field plugin.'
         | 
| 20 | 
            +
            Rake::RDocTask.new(:rdoc) do |rdoc|
         | 
| 21 | 
            +
              rdoc.rdoc_dir = 'rdoc'
         | 
| 22 | 
            +
              rdoc.title    = 'EnumField'
         | 
| 23 | 
            +
              rdoc.options << '--line-numbers' << '--inline-source'
         | 
| 24 | 
            +
              rdoc.rdoc_files.include('README.rdoc')
         | 
| 25 | 
            +
              rdoc.rdoc_files.include('lib/**/*.rb')
         | 
| 26 | 
            +
            end
         | 
    
        data/lib/enum_field.rb
    CHANGED
    
    
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            module EnumField
         | 
| 2 4 | 
             
              class AttributeValueResolver
         | 
| 3 5 | 
             
                attr_reader :value, :klass
         | 
| @@ -18,7 +20,7 @@ module EnumField | |
| 18 20 | 
             
                private
         | 
| 19 21 |  | 
| 20 22 | 
             
                def value_is_member?
         | 
| 21 | 
            -
                  value | 
| 23 | 
            +
                  value&.respond_to?(:id)
         | 
| 22 24 | 
             
                end
         | 
| 23 25 |  | 
| 24 26 | 
             
                def value_is_member_name?
         | 
    
        data/lib/enum_field/builder.rb
    CHANGED
    
    | @@ -1,8 +1,8 @@ | |
| 1 | 
            -
            #  | 
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 3 | 
             
            module EnumField
         | 
| 4 4 | 
             
              class Builder
         | 
| 5 | 
            -
                METHODS = %w[all names find_by_id find first last ids valid_id? valid_name?].freeze
         | 
| 5 | 
            +
                METHODS = %w[all names find_by_id find first last ids valid_id? valid_name? safe_find].freeze
         | 
| 6 6 |  | 
| 7 7 | 
             
                attr_reader :members
         | 
| 8 8 |  | 
| @@ -58,12 +58,13 @@ module EnumField | |
| 58 58 |  | 
| 59 59 | 
             
                def find_by_id(id)
         | 
| 60 60 | 
             
                  case id
         | 
| 61 | 
            -
                  when Array | 
| 61 | 
            +
                  when Array
         | 
| 62 62 | 
             
                    all.select { |object| id.include?(object.id) }
         | 
| 63 63 | 
             
                  else
         | 
| 64 64 | 
             
                    all.detect { |object| object.id == id }
         | 
| 65 65 | 
             
                  end
         | 
| 66 66 | 
             
                end
         | 
| 67 | 
            +
                alias safe_find find_by_id
         | 
| 67 68 |  | 
| 68 69 | 
             
                def method_missing(method_name, *args, &block)
         | 
| 69 70 | 
             
                  if @target.respond_to?(method_name)
         | 
    
        data/lib/enum_field/version.rb
    CHANGED
    
    
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            require 'spec_helper'
         | 
| 2 4 |  | 
| 3 5 | 
             
            describe EnumField::DefineEnum do
         | 
| @@ -38,6 +40,12 @@ describe EnumField::DefineEnum do | |
| 38 40 | 
             
                  expect(Role.find_by_id(3)).to eq Role.employee
         | 
| 39 41 | 
             
                end
         | 
| 40 42 |  | 
| 43 | 
            +
                it 'must safe_find one instance' do
         | 
| 44 | 
            +
                  expect(Role.safe_find(1)).to eq Role.admin
         | 
| 45 | 
            +
                  expect(Role.safe_find(2)).to eq Role.manager
         | 
| 46 | 
            +
                  expect(Role.safe_find(3)).to eq Role.employee
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
             | 
| 41 49 | 
             
                it 'must find_by_id array of instances' do
         | 
| 42 50 | 
             
                  expect(Role.find_by_id([2, 3])).to eq [Role.manager, Role.employee]
         | 
| 43 51 | 
             
                  expect(Role.find_by_id([nil, 1])).to eq [Role.admin]
         | 
| @@ -1,3 +1,5 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 1 3 | 
             
            require 'spec_helper'
         | 
| 2 4 |  | 
| 3 5 | 
             
            describe EnumField::EnumeratedAttribute do
         | 
| @@ -35,8 +37,8 @@ describe EnumField::EnumeratedAttribute do | |
| 35 37 | 
             
              end
         | 
| 36 38 |  | 
| 37 39 | 
             
              it 'must set role_type_id' do
         | 
| 38 | 
            -
                expect  | 
| 40 | 
            +
                expect do
         | 
| 39 41 | 
             
                  admin_user.role_type = new_role
         | 
| 40 | 
            -
                 | 
| 42 | 
            +
                end.to change { admin_user.role_type_id }.from(RoleType.admin.id).to(new_role.id)
         | 
| 41 43 | 
             
              end
         | 
| 42 44 | 
             
            end
         | 
    
        data/spec/enum_field_spec.rb
    CHANGED
    
    
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: galetahub-enum_field
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.5. | 
| 4 | 
            +
              version: 0.5.4
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Igor Galeta
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 12 | 
            +
            date: 2020-02-14 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: activesupport
         | 
| @@ -108,13 +108,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 108 108 | 
             
                  version: '0'
         | 
| 109 109 | 
             
            requirements: []
         | 
| 110 110 | 
             
            rubyforge_project: 
         | 
| 111 | 
            -
            rubygems_version: 2. | 
| 111 | 
            +
            rubygems_version: 2.7.6.2
         | 
| 112 112 | 
             
            signing_key: 
         | 
| 113 113 | 
             
            specification_version: 4
         | 
| 114 114 | 
             
            summary: Enumerated attributes for any ruby class aka Active Record
         | 
| 115 115 | 
             
            test_files:
         | 
| 116 | 
            -
            - spec/enum_field/attribute_value_resolver_spec.rb
         | 
| 117 | 
            -
            - spec/enum_field/define_enum_spec.rb
         | 
| 118 | 
            -
            - spec/enum_field/enumerated_attribute_spec.rb
         | 
| 119 116 | 
             
            - spec/enum_field_spec.rb
         | 
| 120 117 | 
             
            - spec/spec_helper.rb
         | 
| 118 | 
            +
            - spec/enum_field/enumerated_attribute_spec.rb
         | 
| 119 | 
            +
            - spec/enum_field/attribute_value_resolver_spec.rb
         | 
| 120 | 
            +
            - spec/enum_field/define_enum_spec.rb
         |