File: hash_definition.rb

package info (click to toggle)
ruby-roxml 4.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 800 kB
  • sloc: ruby: 4,133; xml: 1,013; makefile: 7
file content (25 lines) | stat: -rw-r--r-- 609 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
module ROXML
  class HashDefinition # :nodoc:
    attr_reader :key, :value
    attr_accessor :wrapper

    def initialize(opts)
      opts.assert_valid_keys(:key, :value)

      @key = Definition.new(nil, to_definition_options(opts, :key))
      @value = Definition.new(nil, to_definition_options(opts, :value))
    end

  private
    def to_definition_options(opts, what)
      case opts[what]
      when Hash
        opts[what]
      when String, Symbol
        {:from => opts[what]}
      else
        raise ArgumentError, "unrecognized hash parameter: #{what} => #{opts[what]}"
      end
    end
  end
end