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 = {}, indirect = false)
48:         
49:         unless hash.is_a?(Hash)
50:           raise TypeError, "Expected type Hash, received #{hash.class}."
51:         end
52:         
53:         super(indirect)
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 142
142:       def [](key)
143:         super(key.to_o)
144:       end

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

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

[Source]

     # File sources/parser/dictionary.rb, line 156
156:       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:       print(content)
127:     end

[Validate]