Sha256: 6c75fe2fdfe0c7ae4f0cb30176e9420d35d6a670fc382a2cf8961cee6c2d507e

Contents?: true

Size: 696 Bytes

Versions: 1

Compression:

Stored size: 696 Bytes

Contents

module SAXMachine
  class SAXConfig
    class AttributeConfig
      attr_reader :name, :setter

      def initialize(name, options)
        @name     = name.to_s
        @as       = options[:as]
        @setter   = "#{@as}="
        @required = options[:required]
      end

      def column
        @as || @name.to_sym
      end

      def required?
        !!@required
      end

      def value_from_attrs(attrs)
        attrs.fetch(@name, nil)
      end

      def attrs_match?(attrs)
        attrs.key?(@name) || attrs.value?(@name)
      end

      def has_value_and_attrs_match?(attrs)
        attrs_match?(attrs)
      end

      def collection?
        false
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
sax-machine-0.3.0 lib/sax-machine/config/sax_attribute.rb