Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package rubygem-virtus for openSUSE:Factory 
checked in at 2021-06-29 22:43:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/rubygem-virtus (Old)
 and      /work/SRC/openSUSE:Factory/.rubygem-virtus.new.2625 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "rubygem-virtus"

Tue Jun 29 22:43:19 2021 rev:3 rq:902941 version:2.0.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/rubygem-virtus/rubygem-virtus.changes    
2015-03-23 12:18:17.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.rubygem-virtus.new.2625/rubygem-virtus.changes  
2021-06-29 22:43:56.758927983 +0200
@@ -1,0 +2,17 @@
+Thu Jun 24 18:07:58 UTC 2021 - Stephan Kulow <co...@suse.com>
+
+updated to version 2.0.0
+ see installed Changelog.md
+
+  # v2.0.0 2021-06-07
+  
+  * [added] New method `Virtus::Atrribute::Collection#value_coerced?`  (dslh)
+  * [changed] inflecto was replaced with dry-inflector (solnic)
+  * [changed] equalizer was replaced with the internal virtus/equalizer 
(solnic)
+  * [changed] `Virtus::Attribute#==` was revised (see 
ef57af319334a1d4f3e0860acbde7c6d6f0eb8ef) (novikserg)
+  * [fixed] Mass assignment bug fix (see #325) (novikserg)
+  
+  [Compare 
v1.0.5..v2.0.0](https://github.com/solnic/virtus/compare/v1.0.5...v2.0.0)
+  
+
+-------------------------------------------------------------------

Old:
----
  virtus-1.0.5.gem

New:
----
  virtus-2.0.0.gem

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ rubygem-virtus.spec ++++++
--- /var/tmp/diff_new_pack.TfvtL7/_old  2021-06-29 22:43:57.126928468 +0200
+++ /var/tmp/diff_new_pack.TfvtL7/_new  2021-06-29 22:43:57.126928468 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package rubygem-virtus
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2021 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,7 +12,7 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
@@ -24,16 +24,16 @@
 #
 
 Name:           rubygem-virtus
-Version:        1.0.5
+Version:        2.0.0
 Release:        0
 %define mod_name virtus
 %define mod_full_name %{mod_name}-%{version}
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+BuildRequires:  %{ruby >= 2.0}
 BuildRequires:  %{rubygem gem2rpm}
-BuildRequires:  %{ruby}
 BuildRequires:  ruby-macros >= 5
-Url:            https://github.com/solnic/virtus
-Source:         http://rubygems.org/gems/%{mod_full_name}.gem
+URL:            https://github.com/solnic/virtus
+Source:         https://rubygems.org/gems/%{mod_full_name}.gem
 Source1:        gem2rpm.yml
 Summary:        Attributes on Steroids for Plain Old Ruby Objects
 License:        MIT

++++++ virtus-1.0.5.gem -> virtus-2.0.0.gem ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.ruby-version new/.ruby-version
--- old/.ruby-version   2015-03-18 12:49:02.000000000 +0100
+++ new/.ruby-version   1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-2.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.travis.yml new/.travis.yml
--- old/.travis.yml     2015-03-18 12:49:02.000000000 +0100
+++ new/.travis.yml     2021-06-07 15:26:58.000000000 +0200
@@ -1,22 +1,21 @@
+sudo: false
 language: ruby
-before_install: gem install bundler
 bundler_args: --without tools
-script: "bundle exec rake spec"
-env:
-  - 
CODECLIMATE_REPO_TOKEN=2b66fbb7c7c72503eb7841a479c0ad923f691729f4109b4aa8c9b4def1ebb42d
+cache: bundler
 rvm:
-  - 1.9
   - 2.0
   - 2.1
   - 2.2
+  - 2.3
+  - 2.4
+  - 2.5
+  - 2.6
+  - 2.7
+  - 3.0
   - jruby
-  - rbx
-  - ruby-head
-matrix:
-  allow_failures:
-    - rvm: ruby-head
-    - rvm: rbx
-notifications:
-  email:
-    - piotr.soln...@gmail.com
-    - dan.k...@gmail.com
+before_script:
+  - curl -L 
https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64
 > ./cc-test-reporter
+  - chmod +x ./cc-test-reporter
+  - ./cc-test-reporter before-build
+after_script:
+  - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Changelog.md new/Changelog.md
--- old/Changelog.md    2015-03-18 12:49:02.000000000 +0100
+++ new/Changelog.md    2021-06-07 15:26:58.000000000 +0200
@@ -1,3 +1,13 @@
+# v2.0.0 2021-06-07
+
+* [added] New method `Virtus::Atrribute::Collection#value_coerced?`  (dslh)
+* [changed] inflecto was replaced with dry-inflector (solnic)
+* [changed] equalizer was replaced with the internal virtus/equalizer (solnic)
+* [changed] `Virtus::Attribute#==` was revised (see 
ef57af319334a1d4f3e0860acbde7c6d6f0eb8ef) (novikserg)
+* [fixed] Mass assignment bug fix (see #325) (novikserg)
+
+[Compare 
v1.0.5..v2.0.0](https://github.com/solnic/virtus/compare/v1.0.5...v2.0.0)
+
 # v1.0.5 2015-03-18
 
 * [feature] Support for :nullify_blank option when configuring a virtus module 
(lucasmazza)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Gemfile new/Gemfile
--- old/Gemfile 2015-03-18 12:49:02.000000000 +0100
+++ new/Gemfile 2021-06-07 15:26:58.000000000 +0200
@@ -2,20 +2,9 @@
 
 gemspec
 
-gem 'bogus', '~> 0.1'
-gem 'inflecto', '~> 0.0.2'
-gem 'rspec', '~> 3.1'
+gem 'dry-inflector'
+gem 'rspec'
+gem 'bogus'
+gem 'simplecov', platform: :ruby
 
 gem "codeclimate-test-reporter", group: :test, require: false
-
-group :tools do
-  gem 'guard'
-  gem 'guard-rspec'
-
-  gem 'rubocop'
-
-  platform :mri do
-    gem 'mutant'
-    gem 'mutant-rspec'
-  end
-end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.md new/README.md
--- old/README.md       2015-03-18 12:49:02.000000000 +0100
+++ new/README.md       2021-06-07 15:26:58.000000000 +0200
@@ -1,18 +1,21 @@
 [gem]: https://rubygems.org/gems/virtus
 [travis]: https://travis-ci.org/solnic/virtus
-[gemnasium]: https://gemnasium.com/solnic/virtus
 [codeclimate]: https://codeclimate.com/github/solnic/virtus
 [coveralls]: https://coveralls.io/r/solnic/virtus
 [inchpages]: http://inch-ci.org/github/solnic/virtus/
 
+DISCONTINUED
+------------
+
+> Working on virtus taught me a lot about handling data in Ruby, which 
involves coercions, type safety and validation (amongst other things). Even 
though the project has been successful, and serving well for many people, I 
decided to build something better. As a result, 
[dry-types](https://github.com/dry-rb/dry-types), 
[dry-struct](https://github.com/dry-rb/dry-struct) and 
[dry-schema](https://github.com/dry-rb/dry-schema) were born. These projects 
should be considered as virtus' successors, with better separation of concerns 
and better features. If you're interested in a modern take on same problems 
that virtus tried to solve, please check out these projects!
+>
+> @solnic
+
 Virtus
 ======
 
-# Ruby Object Mapper
-
 [![Gem Version](https://badge.fury.io/rb/virtus.svg)][gem]
 [![Build 
Status](https://travis-ci.org/solnic/virtus.svg?branch=master)][travis]
-[![Dependency Status](https://gemnasium.com/solnic/virtus.png)][gemnasium]
 [![Code 
Climate](https://codeclimate.com/github/solnic/virtus/badges/gpa.svg)][codeclimate]
 [![Test 
Coverage](https://codeclimate.com/github/solnic/virtus/badges/coverage.svg)][codeclimate]
 [![Inline 
docs](http://inch-ci.org/github/solnic/virtus.svg?branch=master)][inchpages]
@@ -61,7 +64,7 @@
 end
 
 user = User.new(:name => 'Piotr', :age => 31)
-user.attributes # => { :name => "Piotr", :age => 31 }
+user.attributes # => { :name => "Piotr", :age => 31, :birthday => nil }
 
 user.name # => "Piotr"
 
@@ -579,6 +582,13 @@
 Post.attribute_set[:blog].type.primitive # => Blog
 ```
 
+## Plugins / Extensions
+
+List of plugins/extensions that add features to Virtus:
+
+* [virtus-localized](https://github.com/XescuGC/virtus-localized): Localize 
the attributes
+* [virtus-relations](https://github.com/smanolloff/virtus-relations): Add 
relations to Virtus objects
+
 Ruby version support
 --------------------
 
Binary files old/checksums.yaml.gz and new/checksums.yaml.gz differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus/attribute/builder.rb 
new/lib/virtus/attribute/builder.rb
--- old/lib/virtus/attribute/builder.rb 2015-03-18 12:49:02.000000000 +0100
+++ new/lib/virtus/attribute/builder.rb 2021-06-07 15:26:58.000000000 +0200
@@ -25,13 +25,7 @@
     # @api private
     def determine_type
       if type.include?('::')
-        # TODO: wrap it up in Virtus.constantize and use feature-detection to
-        #       pick up either Inflecto or ActiveSupport, whateve is available
-        if defined?(Inflecto)
-          Inflecto.constantize(type)
-        else
-          raise NotImplementedError, 'Virtus needs inflecto gem to constantize 
namespaced constant names'
-        end
+        Virtus.constantize(type)
       else
         Object.const_get(type)
       end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus/attribute/collection.rb 
new/lib/virtus/attribute/collection.rb
--- old/lib/virtus/attribute/collection.rb      2015-03-18 12:49:02.000000000 
+0100
+++ new/lib/virtus/attribute/collection.rb      2021-06-07 15:26:58.000000000 
+0200
@@ -80,6 +80,11 @@
         end
       end
 
+      # @api public
+      def value_coerced?(value)
+        super && value.all? { |item| member_type.value_coerced? item }
+      end
+
       # @api private
       def finalize
         return self if finalized?
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus/attribute/default_value.rb 
new/lib/virtus/attribute/default_value.rb
--- old/lib/virtus/attribute/default_value.rb   2015-03-18 12:49:02.000000000 
+0100
+++ new/lib/virtus/attribute/default_value.rb   2021-06-07 15:26:58.000000000 
+0200
@@ -7,6 +7,8 @@
     class DefaultValue
       extend DescendantsTracker
 
+      include Equalizer.new(inspect) << :value
+
       # Builds a default value instance
       #
       # @return [Virtus::Attribute::DefaultValue]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus/attribute.rb new/lib/virtus/attribute.rb
--- old/lib/virtus/attribute.rb 2015-03-18 12:49:02.000000000 +0100
+++ new/lib/virtus/attribute.rb 2021-06-07 15:26:58.000000000 +0200
@@ -13,12 +13,12 @@
   #   # strict mode
   #   attr = Virtus::Attribute.build(Integer, :strict => true)
   #   attr.coerce('not really coercible')
-  #   # => Virtus::CoercionError: Failed to coerce "fsafa" into Integer
+  #   # => Virtus::CoercionError: Failed to coerce "not really coercible" into 
Integer
   #
   class Attribute
     extend DescendantsTracker, Options, TypeLookup
 
-    include ::Equalizer.new(:type, :options)
+    include Equalizer.new(inspect) << :type << :options
 
     accept_options :primitive, :accessor, :default, :lazy, :strict, :required, 
:finalize, :nullify_blank
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus/builder.rb new/lib/virtus/builder.rb
--- old/lib/virtus/builder.rb   2015-03-18 12:49:02.000000000 +0100
+++ new/lib/virtus/builder.rb   2021-06-07 15:26:58.000000000 +0200
@@ -120,11 +120,7 @@
 
     # @api private
     def extensions
-      super + [
-        Extensions::AllowedWriterMethods,
-        ValueObject::AllowedWriterMethods,
-        ValueObject::InstanceMethods
-      ]
+      super << ValueObject::AllowedWriterMethods << 
ValueObject::InstanceMethods
     end
 
     # @api private
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus/class_inclusions.rb 
new/lib/virtus/class_inclusions.rb
--- old/lib/virtus/class_inclusions.rb  2015-03-18 12:49:02.000000000 +0100
+++ new/lib/virtus/class_inclusions.rb  2021-06-07 15:26:58.000000000 +0200
@@ -13,7 +13,6 @@
     def self.included(descendant)
       super
       descendant.extend(ClassMethods)
-      descendant.extend(Extensions::AllowedWriterMethods)
       descendant.class_eval { include Methods }
       descendant.class_eval { include InstanceMethods }
       descendant.class_eval { include InstanceMethods::Constructor }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus/coercer.rb new/lib/virtus/coercer.rb
--- old/lib/virtus/coercer.rb   2015-03-18 12:49:02.000000000 +0100
+++ new/lib/virtus/coercer.rb   2021-06-07 15:26:58.000000000 +0200
@@ -3,6 +3,7 @@
   # Abstract coercer class
   #
   class Coercer
+    include Equalizer.new(inspect) << :primitive << :type
 
     # @api private
     attr_reader :primitive, :type
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus/extensions.rb new/lib/virtus/extensions.rb
--- old/lib/virtus/extensions.rb        2015-03-18 12:49:02.000000000 +0100
+++ new/lib/virtus/extensions.rb        2021-06-07 15:26:58.000000000 +0200
@@ -18,7 +18,6 @@
       object.instance_eval do
         extend Methods
         extend InstanceMethods
-        extend AllowedWriterMethods
         extend InstanceMethods::MassAssignment
       end
     end
@@ -72,26 +71,9 @@
       def values(&block)
         private :attributes= if instance_methods.include?(:attributes=)
         yield
-        include(::Equalizer.new(*attribute_set.map(&:name)))
+        include(Equalizer.new(name, attribute_set.map(&:name)))
       end
 
-      private
-
-      # Return an attribute set for that instance
-      #
-      # @return [AttributeSet]
-      #
-      # @api private
-      def attribute_set
-        @attribute_set
-      end
-
-    end # Methods
-
-    module AllowedWriterMethods
-      WRITER_METHOD_REGEXP   = /=\z/.freeze
-      INVALID_WRITER_METHODS = %w[ == != === []= attributes= ].to_set.freeze
-
       # The list of writer methods that can be mass-assigned to in #attributes=
       #
       # @return [Set]
@@ -106,8 +88,18 @@
           end
       end
 
-    end # AllowedWriterMethods
+      private
 
-  end # module Extensions
+      # Return an attribute set for that instance
+      #
+      # @return [AttributeSet]
+      #
+      # @api private
+      def attribute_set
+        @attribute_set
+      end
 
+    end # Methods
+
+  end # module Extensions
 end # module Virtus
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus/instance_methods.rb 
new/lib/virtus/instance_methods.rb
--- old/lib/virtus/instance_methods.rb  2015-03-18 12:49:02.000000000 +0100
+++ new/lib/virtus/instance_methods.rb  2021-06-07 15:26:58.000000000 +0200
@@ -14,7 +14,7 @@
       #
       # @api private
       def initialize(attributes = nil)
-        self.class.attribute_set.set(self, attributes) if attributes
+        attribute_set.set(self, attributes) if attributes
         set_default_attributes
       end
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus/model.rb new/lib/virtus/model.rb
--- old/lib/virtus/model.rb     2015-03-18 12:49:02.000000000 +0100
+++ new/lib/virtus/model.rb     2021-06-07 15:26:58.000000000 +0200
@@ -31,7 +31,7 @@
         descendant.extend(Extensions::Methods)
         descendant.extend(InstanceMethods)
       end
-      private_class_method :included
+      private_class_method :extended
 
     end # Core
 
@@ -51,7 +51,6 @@
       # @api private
       def self.included(descendant)
         super
-        descendant.extend(Extensions::AllowedWriterMethods)
         descendant.send(:include, InstanceMethods::MassAssignment)
       end
       private_class_method :included
@@ -59,7 +58,6 @@
       # @api private
       def self.extended(descendant)
         super
-        descendant.extend(Extensions::AllowedWriterMethods)
         descendant.extend(InstanceMethods::MassAssignment)
       end
       private_class_method :extended
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus/support/options.rb 
new/lib/virtus/support/options.rb
--- old/lib/virtus/support/options.rb   2015-03-18 12:49:02.000000000 +0100
+++ new/lib/virtus/support/options.rb   2021-06-07 15:26:58.000000000 +0200
@@ -37,7 +37,7 @@
     # Defines which options are valid for a given attribute class
     #
     # @example
-    #   class MyAttribute < Virtus::Attribute::Object
+    #   class MyAttribute < Virtus::Attribute
     #     accept_options :foo, :bar
     #   end
     #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus/version.rb new/lib/virtus/version.rb
--- old/lib/virtus/version.rb   2015-03-18 12:49:02.000000000 +0100
+++ new/lib/virtus/version.rb   2021-06-07 15:26:58.000000000 +0200
@@ -1,3 +1,3 @@
 module Virtus
-  VERSION = '1.0.5'.freeze
+  VERSION = '2.0.0'.freeze
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/lib/virtus.rb new/lib/virtus.rb
--- old/lib/virtus.rb   2015-03-18 12:49:02.000000000 +0100
+++ new/lib/virtus.rb   2021-06-07 15:26:58.000000000 +0200
@@ -207,6 +207,25 @@
     @configuration ||= Configuration.new
   end
 
+  # @api private
+  def self.constantize(type)
+    inflector.constantize(type)
+  end
+
+  # @api private
+  def self.inflector
+    @inflector ||=
+      begin
+        require 'dry/inflector'
+        Dry::Inflector.new
+      rescue LoadError
+        raise(
+          NotImplementedError,
+          'Virtus needs dry-inflector gem to constantize namespaced constant 
names'
+        )
+      end
+  end
+
   # Finalize pending attributes
   #
   # @example
@@ -241,7 +260,6 @@
 end # module Virtus
 
 require 'descendants_tracker'
-require 'equalizer'
 require 'axiom-types'
 require 'coercible'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/metadata new/metadata
--- old/metadata        2015-03-18 12:49:02.000000000 +0100
+++ new/metadata        2021-06-07 15:26:58.000000000 +0200
@@ -1,14 +1,14 @@
 --- !ruby/object:Gem::Specification
 name: virtus
 version: !ruby/object:Gem::Version
-  version: 1.0.5
+  version: 2.0.0
 platform: ruby
 authors:
 - Piotr Solnica
-autorequire: 
+autorequire:
 bindir: bin
 cert_chain: []
-date: 2015-03-18 00:00:00.000000000 Z
+date: 2021-06-07 00:00:00.000000000 Z
 dependencies:
 - !ruby/object:Gem::Dependency
   name: descendants_tracker
@@ -31,26 +31,6 @@
       - !ruby/object:Gem::Version
         version: 0.0.3
 - !ruby/object:Gem::Dependency
-  name: equalizer
-  requirement: !ruby/object:Gem::Requirement
-    requirements:
-    - - "~>"
-      - !ruby/object:Gem::Version
-        version: '0.0'
-    - - ">="
-      - !ruby/object:Gem::Version
-        version: 0.0.9
-  type: :runtime
-  prerelease: false
-  version_requirements: !ruby/object:Gem::Requirement
-    requirements:
-    - - "~>"
-      - !ruby/object:Gem::Version
-        version: '0.0'
-    - - ">="
-      - !ruby/object:Gem::Version
-        version: 0.0.9
-- !ruby/object:Gem::Dependency
   name: coercible
   requirement: !ruby/object:Gem::Requirement
     requirements:
@@ -106,7 +86,6 @@
 - ".pelusa.yml"
 - ".rspec"
 - ".ruby-gemset"
-- ".ruby-version"
 - ".travis.yml"
 - ".yardopts"
 - CONTRIBUTING.md
@@ -151,6 +130,7 @@
 - lib/virtus/support/type_lookup.rb
 - lib/virtus/value_object.rb
 - lib/virtus/version.rb
+- spec/integration/attributes_attribute_spec.rb
 - spec/integration/building_module_spec.rb
 - spec/integration/collection_member_coercion_spec.rb
 - spec/integration/custom_attributes_spec.rb
@@ -183,6 +163,8 @@
 - spec/unit/virtus/attribute/coercible_predicate_spec.rb
 - spec/unit/virtus/attribute/collection/class_methods/build_spec.rb
 - spec/unit/virtus/attribute/collection/coerce_spec.rb
+- spec/unit/virtus/attribute/collection/value_coerced_predicate_spec.rb
+- spec/unit/virtus/attribute/comparison_spec.rb
 - spec/unit/virtus/attribute/custom_collection_spec.rb
 - spec/unit/virtus/attribute/defined_spec.rb
 - spec/unit/virtus/attribute/embedded_value/class_methods/build_spec.rb
@@ -222,7 +204,7 @@
 licenses:
 - MIT
 metadata: {}
-post_install_message: 
+post_install_message:
 rdoc_options: []
 require_paths:
 - lib
@@ -230,16 +212,15 @@
   requirements:
   - - ">="
     - !ruby/object:Gem::Version
-      version: '0'
+      version: '2.0'
 required_rubygems_version: !ruby/object:Gem::Requirement
   requirements:
   - - ">="
     - !ruby/object:Gem::Version
       version: '0'
 requirements: []
-rubyforge_project: 
-rubygems_version: 2.4.5
-signing_key: 
+rubygems_version: 3.2.15
+signing_key:
 specification_version: 4
 summary: Attributes on Steroids for Plain Old Ruby Objects
 test_files: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec/integration/attributes_attribute_spec.rb 
new/spec/integration/attributes_attribute_spec.rb
--- old/spec/integration/attributes_attribute_spec.rb   1970-01-01 
01:00:00.000000000 +0100
+++ new/spec/integration/attributes_attribute_spec.rb   2021-06-07 
15:26:58.000000000 +0200
@@ -0,0 +1,28 @@
+require 'spec_helper'
+
+describe "Adding attribute called 'attributes'" do
+
+  context "when mass assignment is disabled" do
+    before do
+      module Examples
+        class User
+          include Virtus.model(mass_assignment: false)
+
+          attribute :attributes
+        end
+      end
+    end
+
+    it "allows model to use `attributes` attribute" do
+      user = Examples::User.new
+      expect(user.attributes).to eq(nil)
+      user.attributes = "attributes string"
+      expect(user.attributes).to eq("attributes string")
+    end
+
+    it "doesn't accept `attributes` key in initializer" do
+      user = Examples::User.new(attributes: 'attributes string')
+      expect(user.attributes).to eq(nil)
+    end
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec/spec_helper.rb new/spec/spec_helper.rb
--- old/spec/spec_helper.rb     2015-03-18 12:49:02.000000000 +0100
+++ new/spec/spec_helper.rb     2021-06-07 15:26:58.000000000 +0200
@@ -1,12 +1,11 @@
-if RUBY_ENGINE == "rbx"
-  require "codeclimate-test-reporter"
-  CodeClimate::TestReporter.start
+if RUBY_ENGINE == 'ruby' && RUBY_VERSION >= '3.0'
+  require 'simplecov'
+  SimpleCov.start
 end
 
 require 'rspec'
 require 'bogus/rspec'
 require 'virtus'
-require 'inflecto' # for resolving namespaced constant names
 
 module Virtus
   def self.warn(*)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/spec/unit/virtus/attribute/collection/value_coerced_predicate_spec.rb 
new/spec/unit/virtus/attribute/collection/value_coerced_predicate_spec.rb
--- old/spec/unit/virtus/attribute/collection/value_coerced_predicate_spec.rb   
1970-01-01 01:00:00.000000000 +0100
+++ new/spec/unit/virtus/attribute/collection/value_coerced_predicate_spec.rb   
2021-06-07 15:26:58.000000000 +0200
@@ -0,0 +1,31 @@
+require 'spec_helper'
+require 'set'
+
+describe Virtus::Attribute::Collection, '#value_coerced?' do
+  subject { object.value_coerced?(input) }
+
+  let(:object) { described_class.build(Array[Integer]) }
+
+  context 'when input has correctly typed members' do
+    let(:input) { [1, 2, 3] }
+
+    it { is_expected.to be(true) }
+  end
+
+  context 'when input has incorrectly typed members' do
+    let(:input) { [1, 2, '3'] }
+
+    it { is_expected.to be(false) }
+  end
+
+  context 'when the collection type is incorrect' do
+    let(:input) { Set[1, 2, 3] }
+
+    it { is_expected.to be(false) }
+  end
+
+  context 'when the input is empty' do
+    let(:input) { [] }
+    it { is_expected.to be(true) }
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec/unit/virtus/attribute/comparison_spec.rb 
new/spec/unit/virtus/attribute/comparison_spec.rb
--- old/spec/unit/virtus/attribute/comparison_spec.rb   1970-01-01 
01:00:00.000000000 +0100
+++ new/spec/unit/virtus/attribute/comparison_spec.rb   2021-06-07 
15:26:58.000000000 +0200
@@ -0,0 +1,20 @@
+require 'spec_helper'
+
+describe Virtus::Attribute, '#== (defined by including Virtus::Equalizer)' do
+  let(:attribute) { described_class.build(String, :name => :name) }
+
+  it 'returns true when attributes have same type and options' do
+    equal_attribute = described_class.build(String, :name => :name)
+    expect(attribute == equal_attribute).to be_truthy
+  end
+
+  it 'returns false when attributes have different type' do
+    different_attribute = described_class.build(Integer, :name => :name)
+    expect(attribute == different_attribute).to be_falsey
+  end
+
+  it 'returns false when attributes have different options' do
+    different_attribute = described_class.build(Integer, :name => :name_two)
+    expect(attribute == different_attribute).to be_falsey
+  end
+end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec/unit/virtus/attribute_set/append_spec.rb 
new/spec/unit/virtus/attribute_set/append_spec.rb
--- old/spec/unit/virtus/attribute_set/append_spec.rb   2015-03-18 
12:49:02.000000000 +0100
+++ new/spec/unit/virtus/attribute_set/append_spec.rb   2021-06-07 
15:26:58.000000000 +0200
@@ -38,10 +38,10 @@
 
     it { is_expected.to equal(object) }
 
-    it 'replaces the original attribute' do
-      expect { subject }.to change { object.to_a }.
-        from(attributes).
-        to([ attribute ])
+    it "replaces the original attribute object" do
+      expect { subject }.to change { object.to_a.map(&:__id__) }.
+      from(attributes.map(&:__id__)).
+      to([attribute.__id__])
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec/unit/virtus/attribute_set/element_set_spec.rb 
new/spec/unit/virtus/attribute_set/element_set_spec.rb
--- old/spec/unit/virtus/attribute_set/element_set_spec.rb      2015-03-18 
12:49:02.000000000 +0100
+++ new/spec/unit/virtus/attribute_set/element_set_spec.rb      2021-06-07 
15:26:58.000000000 +0200
@@ -37,20 +37,28 @@
 
     it { is_expected.to equal(attribute) }
 
-    it 'replaces the original attribute' do
-      expect { subject }.to change { object.to_a }.from(attributes).to([ 
attribute ])
+    it "replaces the original attribute object" do
+      expect { subject }.to change { object.to_a.map(&:__id__) }.
+      from(attributes.map(&:__id__)).
+      to([attribute.__id__])
     end
 
-    it 'allows #[] to access the attribute with a symbol' do
-      expect { subject }.to change { object['name'] 
}.from(original).to(attribute)
+    it 'allows #[] to access the attribute with a string' do
+      expect { subject }.to change { object['name'].__id__ }.
+      from(original.__id__).
+      to(attribute.__id__)
     end
 
-    it 'allows #[] to access the attribute with a string' do
-      expect { subject }.to change { object[:name] 
}.from(original).to(attribute)
+    it 'allows #[] to access the attribute with a symbol' do
+      expect { subject }.to change { object[:name].__id__ }.
+      from(original.__id__).
+      to(attribute.__id__)
     end
 
     it 'allows #reset to track overridden attributes' do
-      expect { subject }.to change { object.reset.to_a }.from(attributes).to([ 
attribute ])
+      expect { subject }.to change { object.reset.to_a.map(&:__id__) }.
+      from(attributes.map(&:__id__)).
+      to([attribute.__id__])
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/spec/unit/virtus/attribute_set/merge_spec.rb 
new/spec/unit/virtus/attribute_set/merge_spec.rb
--- old/spec/unit/virtus/attribute_set/merge_spec.rb    2015-03-18 
12:49:02.000000000 +0100
+++ new/spec/unit/virtus/attribute_set/merge_spec.rb    2021-06-07 
15:26:58.000000000 +0200
@@ -21,12 +21,14 @@
 
   context 'with a duplicate attribute' do
     let(:attributes) { [Virtus::Attribute.build(String, :name => name)] }
-    let(:attribute)  { Virtus::Attribute.build(String, :name => name) }
+    let(:attribute)  {  Virtus::Attribute.build(String, :name => name) }
 
     it { is_expected.to equal(object) }
 
-    it 'replaces the original attribute' do
-      expect { subject }.to change { object.to_a 
}.from(attributes).to([attribute])
+    it "replaces the original attribute object" do
+      expect { subject }.to change { object.to_a.map(&:__id__) }.
+      from(attributes.map(&:__id__)).
+      to([attribute.__id__])
     end
   end
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/virtus.gemspec new/virtus.gemspec
--- old/virtus.gemspec  2015-03-18 12:49:02.000000000 +0100
+++ new/virtus.gemspec  2021-06-07 15:26:58.000000000 +0200
@@ -18,9 +18,9 @@
   gem.extra_rdoc_files = %w[LICENSE README.md TODO.md]
 
   gem.add_dependency('descendants_tracker', '~> 0.0', '>= 0.0.3')
-  gem.add_dependency('equalizer', '~> 0.0', '>= 0.0.9')
   gem.add_dependency('coercible', '~> 1.0')
   gem.add_dependency('axiom-types', '~> 0.1')
 
   gem.add_development_dependency 'rake'
+  gem.required_ruby_version = '>= 2.0'
 end

Reply via email to