Class Origami::Dictionary
In: sources/parser/dictionary.rb
sources/parser/obfuscation.rb
Parent: Hash

Class representing a Dictionary Object. Dictionaries are containers associating a Name to an embedded Object.

Methods

[]   []=   delete   has_key?   map!   merge   new   real_type   to_obfuscated_str  

Included Modules

Origami::Object

External Aliases

to_hash -> to_h
each_value -> each
to_h -> value

Public Class methods

Creates a new Dictionary.

hash:The hash representing the new Dictionary.

[Source]

    # File sources/parser/dictionary.rb, line 47
47:       def initialize(hash = {})
48:         
49:         unless hash.is_a?(Hash)
50:           raise TypeError, "Expected type Hash, received #{hash.class}."
51:         end
52:         
53:         super()
54:         
55:         hash.each_key { |k|
56:           self[k.to_o] = hash[k].to_o unless k.nil?
57:         }
58:         
59:       end

Public Instance methods

[Source]

     # File sources/parser/dictionary.rb, line 141
141:       def [](key)
142:         super(key.to_o)
143:       end

[Source]

     # File sources/parser/dictionary.rb, line 122
122:       def []=(key,val)
123:         
124:         unless key.is_a?(Symbol) or key.is_a?(Name)
125:           fail "Expecting a Name for a Dictionary entry, found #{key.class} instead."
126:         end
127:         
128:         key = key.to_o
129:         if not val.nil?
130:           val = val.to_o
131:           super(key,val)
132:         
133:           val.parent = self
134: 
135:           val
136:         else
137:           delete(key)
138:         end
139:       end

[Source]

     # File sources/parser/dictionary.rb, line 149
149:       def delete(key)
150:         super(key.to_o)
151:       end

[Source]

     # File sources/parser/dictionary.rb, line 145
145:       def has_key?(key)
146:         super(key.to_o)
147:       end

[Source]

     # File sources/parser/dictionary.rb, line 110
110:       def map!(&b)
111:         
112:         self.each_pair { |k,v|
113:           self[k] = b.call(v)
114:         }
115:         
116:       end

[Source]

     # File sources/parser/dictionary.rb, line 118
118:       def merge(dict)
119:         Dictionary.new(super(dict))
120:       end

[Source]

     # File sources/parser/dictionary.rb, line 155
155:       def real_type ; Dictionary end

[Source]

     # File sources/parser/obfuscation.rb, line 117
117:     def to_obfuscated_str
118:       content = TOKENS.first + Obfuscator.junk_spaces
119:       self.each_pair { |key, value|
120:         content << Obfuscator.junk_spaces + 
121:           key.to_obfuscated_str + Obfuscator.junk_spaces + 
122:           value.to_obfuscated_str + Obfuscator.junk_spaces
123:       }
124: 
125:       content << TOKENS.last
126:       super(content)
127:     end

[Validate]