[フレーム]

Class: OpenStruct

Inherits:
Object show all
Defined in:
opal/stdlib/ostruct.rb

Instance Method Summary collapse

Constructor Details

#initialize(hash = nil) ⇒ OpenStruct

Returns a new instance of OpenStruct

2
3
4
5
6
7
8
# File 'opal/stdlib/ostruct.rb', line 2
def initialize(hash = nil)
 @table = {}
 hash.each_pair {|key, value|
 @table[key.to_sym] = value
 } if hash
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *args) ⇒ Object

18
19
20
21
22
23
24
# File 'opal/stdlib/ostruct.rb', line 18
def method_missing(name, *args)
 if name.end_with? '='
 @table[name[0 .. -2].to_sym] = args[0]
 else
 @table[name.to_sym]
 end
end

Instance Method Details

#==(other) ⇒ Object

34
35
36
37
38
# File 'opal/stdlib/ostruct.rb', line 34
def ==(other)
 return false unless other.is_a?(OpenStruct )
 @table == other.instance_variable_get(:@table)
end

#===(other) ⇒ Object

40
41
42
43
44
# File 'opal/stdlib/ostruct.rb', line 40
def ===(other)
 return false unless other.is_a?(OpenStruct )
 @table === other.instance_variable_get(:@table)
end

#[](name) ⇒ Object

10
11
12
# File 'opal/stdlib/ostruct.rb', line 10
def [](name)
 @table[name.to_sym]
end

#[]=(name, value) ⇒ Object

14
15
16
# File 'opal/stdlib/ostruct.rb', line 14
def []=(name, value)
 @table[name.to_sym] = value
end

#each_pairObject

26
27
28
29
30
31
32
# File 'opal/stdlib/ostruct.rb', line 26
def each_pair
 return enum_for :each_pair unless block_given?
 @table.each_pair {|pair|
 yield pair
 }
end

#eql?(other) ⇒ Boolean

Returns:

46
47
48
49
50
# File 'opal/stdlib/ostruct.rb', line 46
def eql?(other)
 return false unless other.is_a?(OpenStruct )
 @table.eql? other.instance_variable_get(:@table)
end

#hashObject

60
61
62
# File 'opal/stdlib/ostruct.rb', line 60
def hash
 @table.hash
end

#inspectObject

64
65
66
67
68
# File 'opal/stdlib/ostruct.rb', line 64
def inspect
 "#<#{self.class}: #{each_pair.map {|name, value|
 "#{name}=#{self[name].inspect}"
 }.join("")}>"
end

#to_hObject

52
53
54
# File 'opal/stdlib/ostruct.rb', line 52
def to_h
 @table.dup
end

#to_nObject

56
57
58
# File 'opal/stdlib/ostruct.rb', line 56
def to_n
 @table.to_n
end

AltStyle によって変換されたページ (->オリジナル) /