Class: Transproc::Store Private
- Inherits:
-
Object
- Object
- Transproc::Store
- Defined in:
- lib/transproc/store.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Immutable collection of named procedures from external modules
Instance Attribute Summary collapse
-
#methods ⇒ Hash
readonly
private
The associated list of imported procedures.
Instance Method Summary collapse
-
#contain?(key) ⇒ Boolean
private
Returns wether the collection contains such procedure by its key.
-
#fetch(key) ⇒ Proc
private
Returns a procedure by its key in the collection.
-
#import(*args) ⇒ Object
private
Imports proc(s) to the collection from another module.
-
#initialize(methods = {}) ⇒ Store
constructor
private
A new instance of Store.
-
#register(name, fn = nil, &block) ⇒ Object
private
store.register(:to_json) { |v| v.to_json }.
Constructor Details
#initialize(methods = {}) ⇒ Store
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Store.
25 26 27 28 |
# File 'lib/transproc/store.rb', line 25 def initialize(methods = {}) @methods = methods.dup.freeze freeze end |
Instance Attribute Details
#methods ⇒ Hash (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns The associated list of imported procedures.
14 15 16 |
# File 'lib/transproc/store.rb', line 14 def methods @methods end |
Instance Method Details
#contain?(key) ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns wether the collection contains such procedure by its key
46 47 48 |
# File 'lib/transproc/store.rb', line 46 def contain?(key) methods.key?(key) end |
#fetch(key) ⇒ Proc
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a procedure by its key in the collection
36 37 38 |
# File 'lib/transproc/store.rb', line 36 def fetch(key) methods.fetch(key) end |
#import(*args) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Imports proc(s) to the collection from another module
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/transproc/store.rb', line 65 def import(*args) first = args.first return import_all(first) if first.instance_of?(Module) opts = args.pop source = opts.fetch(:from) rename = opts.fetch(:as) { first.to_sym } return import_methods(source, args) if args.count > 1 import_method(source, first, rename) end |
#register(name, fn = nil, &block) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
store.register(:to_json) { |v| v.to_json }
57 58 59 |
# File 'lib/transproc/store.rb', line 57 def register(name, fn = nil, &block) self.class.new(methods.merge(name => fn || block)) end |