Sha256: 1642b068712dc0211f0d034c1474e046b9800e3cb1ab19cc270b80410cb73626

Contents?: true

Size: 629 Bytes

Versions: 14

Compression:

Stored size: 629 Bytes

Contents

module SoberSwag
  module Nodes
    ##
    # One attribute of an object.
    class Attribute
      def initialize(key, required, value)
        @key = key
        @required = required
        @value = value
      end

      def deconstruct
        [key, required, value]
      end

      def deconstruct_keys
        { key: key, required: required, value: value }
      end

      attr_reader :key, :required, :value

      def map(&block)
        self.class.new(key, required, value.map(&block))
      end

      def cata(&block)
        block.call(self.class.new(key, required, value.cata(&block)))
      end
    end
  end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
sober_swag-0.14.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.13.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.12.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.11.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.10.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.9.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.8.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.7.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.6.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.5.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.4.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.3.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.2.0 lib/sober_swag/nodes/attribute.rb
sober_swag-0.1.0 lib/sober_swag/nodes/attribute.rb