Class: MTrack::State
- Inherits:
-
Object
- Object
- MTrack::State
- Defined in:
- lib/mtrack/state.rb,
lib/mtrack/state/group.rb
Overview
Holds the internal state of tracked methods on Modules and Classes.
Defined Under Namespace
Classes: Group
Instance Method Summary collapse
-
#[](group_name) ⇒ Object
call-seq: state => group.
-
#add_super_state(state) ⇒ Object
call-seq: add_super_state(state) => state.
-
#add_undefined(name) ⇒ Object
call-seq: add_undefined(name) => name.
-
#delete_tracked(name) ⇒ Object
call-seq: delete_tracked(name) => name.
-
#delete_undefined(name) ⇒ Object
call-seq: delete_undefined(name) => name.
-
#initialize ⇒ State
constructor
call-seq: new() => new_state.
-
#tracked(group_name = nil) ⇒ Object
call-seq: tracked(group_name = nil) => set.
Constructor Details
#initialize ⇒ State
call-seq:
new() => new_state
Creates a new State instance.
16 17 18 19 20 |
# File 'lib/mtrack/state.rb', line 16 def initialize() self.groups = {} self.super_states = Set.new self.undefined = Set.new end |
Instance Method Details
#[](group_name) ⇒ Object
call-seq:
state[group_name] => group
Accepts a group_name passed as a parameter.
Returns an existing or a new group associated with group_name.
29 30 31 |
# File 'lib/mtrack/state.rb', line 29 def [](group_name) groups[group_name] ||= Group.new end |
#add_super_state(state) ⇒ Object
call-seq:
add_super_state(state) => state
Adds a new state to the #super_states set.
Returns passed state.
40 41 42 43 |
# File 'lib/mtrack/state.rb', line 40 def add_super_state(state) super_states.add state state end |
#add_undefined(name) ⇒ Object
call-seq:
add_undefined(name) => name
Adds name to the #undefined methods set.
Returns passed name.
52 53 54 55 |
# File 'lib/mtrack/state.rb', line 52 def add_undefined(name) undefined.add name name end |
#delete_tracked(name) ⇒ Object
call-seq:
delete_tracked(name) => name
Removes method name from all #groups.
Returns passed name.
64 65 66 67 |
# File 'lib/mtrack/state.rb', line 64 def delete_tracked(name) groups.each {|k, v| v.delete_tracked name } name end |
#delete_undefined(name) ⇒ Object
call-seq:
delete_undefined(name) => name
Removes name from the #undefined methods set.
Returns passed name.
76 77 78 79 |
# File 'lib/mtrack/state.rb', line 76 def delete_undefined(name) undefined.delete name name end |
#tracked(group_name = nil) ⇒ Object
call-seq:
tracked(group_name = nil) => set
Returns a set containing the currently tracked methods for a group_name.
86 87 88 89 90 |
# File 'lib/mtrack/state.rb', line 86 def tracked(group_name = nil) ret_val = merge_super_states group_name ret_val.merge groups[group_name].tracked unless groups[group_name].nil? ret_val.subtract undefined end |