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.
Class 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 = {}) ⇒ Object private
-
.register(name, fn = nil, &block) ⇒ Object
private
store.register(:to_json) { |v| v.to_json }.
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.
13 14 15 |
# File 'lib/transproc/store.rb', line 13 def methods @methods end |
Class 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
45 46 47 |
# File 'lib/transproc/store.rb', line 45 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
35 36 37 |
# File 'lib/transproc/store.rb', line 35 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
64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/transproc/store.rb', line 64 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 |
.initialize(methods = {}) ⇒ 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.
24 25 26 27 |
# File 'lib/transproc/store.rb', line 24 def initialize(methods = {}) @methods = methods.dup.freeze freeze 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 }
56 57 58 |
# File 'lib/transproc/store.rb', line 56 def register(name, fn = nil, &block) self.class.new(methods.merge(name => fn || block)) end |