Class: I_Dig_Sql::H

Inherits:
Hash
  • Object
show all
Defined in:
lib/i_dig_sql/H.rb

Instance Method Summary collapse

Constructor Details

#initialize(*options) ⇒ H

Returns a new instance of H.



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/i_dig_sql/H.rb', line 5

def initialize *options
  @h_option = {}
  options.each { |name|
    case name
    when :allow_update
      @h_option[:allow_update] = true
    else
      fail ArgumentError, "Unknown option: #{name.inspect}"
    end
  }

  super()
end

Instance Method Details

#[](name) ⇒ Object



19
20
21
22
# File 'lib/i_dig_sql/H.rb', line 19

def [] name
  fail ArgumentError, "Unknown key: #{name.inspect}" unless has_key?(name)
  super
end

#[]=(name, val) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/i_dig_sql/H.rb', line 24

def []= name, val
  if has_key?(name) && self[name] != val && !@h_option[:allow_update]
    fail ArgumentError, "Key already set: #{name.inspect}"
  end

  super
end

#merge!(*args) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/i_dig_sql/H.rb', line 32

def merge! *args
  args.each { |h|
    h.each { |k,v|
      self[k] = v
    }
  }
  self
end