Merge branch 'jprovazn-rails5-shoulda' into 'master'
Fix shoulda-matchers in Rails 5 Closes #47639 See merge request gitlab-org/gitlab-ce!19749
This commit is contained in:
commit
ed366cc23a
|
@ -0,0 +1,27 @@
|
|||
# monkey patch which fixes serialization matcher in Rails 5
|
||||
# https://github.com/thoughtbot/shoulda-matchers/issues/913
|
||||
# This can be removed when a new version of shoulda-matchers
|
||||
# is released
|
||||
module Shoulda
|
||||
module Matchers
|
||||
class RailsShim
|
||||
def self.serialized_attributes_for(model)
|
||||
if defined?(::ActiveRecord::Type::Serialized)
|
||||
# Rails 5+
|
||||
serialized_columns = model.columns.select do |column|
|
||||
model.type_for_attribute(column.name).is_a?(
|
||||
::ActiveRecord::Type::Serialized
|
||||
)
|
||||
end
|
||||
|
||||
serialized_columns.inject({}) do |hash, column| # rubocop:disable Style/EachWithObject
|
||||
hash[column.name.to_s] = model.type_for_attribute(column.name).coder
|
||||
hash
|
||||
end
|
||||
else
|
||||
model.serialized_attributes
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in New Issue