Sha256: 51d4731879e1b56ec3efcb51e2258856855e82fed515dda9cd38f339bd109b5a

Contents?: true

Size: 701 Bytes

Versions: 1

Compression:

Stored size: 701 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)
        if pair = attrs.assoc(@name)
          pair.last
        end
      end

      def attrs_match?(attrs)
        !!attrs.assoc(@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
lazy-sax-machine-0.1.0 lib/lazy-sax-machine/sax_attribute_config.rb