Sha256: ee16782b0d3ab2cfa61bdbc00c87a98700b50552ecf9e367f6dff4a0e13305ae

Contents?: true

Size: 636 Bytes

Versions: 6

Compression:

Stored size: 636 Bytes

Contents

# frozen_string_literal: true

module LB
  class Persistence
    module Model
      # Helper for dry-struct attributes
      module Attributes
        def delete_attribute(name)
          @schema.delete(name)
          equalizer.instance_variable_get('@keys').delete(name)
          superclass.instance_variable_get('@schema').delete(name)
          @constructor = Dry::Types['coercible.hash']
                         .public_send(constructor_type, @schema)

          self
        end

        def redefine_attribute(name, type)
          delete_attribute(name)
          attribute(name, type)
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
lb-persistence-0.1.0 lib/lb/persistence/model/attributes.rb
lb-persistence-0.0.9 lib/lb/persistence/model/attributes.rb
lb-persistence-0.0.8 lib/lb/persistence/model/attributes.rb
lb-persistence-0.0.7 lib/lb/persistence/model/attributes.rb
lb-persistence-0.0.6 lib/lb/persistence/model/attributes.rb
lb-persistence-0.0.5 lib/lb/persistence/model/attributes.rb