Sha256: c8ff6b2bca7f955b04f2d11d07ab3f01f4de996dc498262ea7f61b59d0a44d59

Contents?: true

Size: 669 Bytes

Versions: 4

Compression:

Stored size: 669 Bytes

Contents

module Hobo

  module Dryml

    class NoParameterError < RuntimeError; end

    class TagParameters < Hash

      def initialize(parameters, exclude_names=nil)
        if exclude_names.blank?
          update(parameters)
        else
          parameters.each_pair { |k, v| self[k] = v unless k.in?(exclude_names) }
        end
      end

      def method_missing(name, default_content="")
        if name.to_s =~ /\?$/
          has_key?(name.to_s[0..-2].to_sym)
        else
          self[name]._?.call(default_content) || ""
        end
      end

      undef_method :default

      def [](param_name)
        fetch(param_name, nil)
      end

    end

  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
hobo-0.8.1 lib/hobo/dryml/tag_parameters.rb
hobo-0.8.2 lib/hobo/dryml/tag_parameters.rb
hobo-0.8.3 lib/hobo/dryml/tag_parameters.rb
hobo-0.8 lib/hobo/dryml/tag_parameters.rb