Module: ModelFact
- Includes:
- TR::CondUtils
- Defined in:
- lib/model_fact/helpers/ar_helpers.rb,
lib/model_fact.rb,
lib/model_fact/version.rb,
lib/model_fact/registry.rb,
lib/model_fact/helpers/model_helper.rb,
lib/model_fact/helpers/poro_helpers.rb,
lib/model_fact/helpers/filter_builder.rb
Overview
Defined Under Namespace
Modules: Helpers, ModelHelper
Classes: DuplicatedIDException, Error, InvalidParamValue, ModelNotAvailable, ModelNotFound, Registry
Constant Summary
collapse
- VERSION =
"0.1.1"
Class Method Summary
collapse
-
.instance(id, raise_if_not_found = true) ⇒ Object
To be used by buss app to get model object by given id.
-
.logger(tag = nil, &block) ⇒ Object
-
.method_missing(mtd, *args, &block) ⇒ Object
-
.new_instance(id, *args, &block) ⇒ Object
-
.on_event(id = nil, event = nil, opts = {}, &block) ⇒ Object
-
.register(id, cls, opts = {}) ⇒ Object
-
.try_register(id, cls, opts = { }) ⇒ Object
try_register will not throw exception if ID already registered.
Class Method Details
.instance(id, raise_if_not_found = true) ⇒ Object
To be used by buss app to get model object by given id
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/model_fact.rb', line 44
def self.instance(id, raise_if_not_found = true)
res = Registry.instance.find(id)
if res.nil?
if raise_if_not_found
raise ModelNotFound, "Given ID '#{id}' is not registered"
else
nil
end
else
if defined?(ActiveRecord)
require_relative 'model_fact/helpers/ar_helpers'
logger.debug "ActiveRecord defined for class!"
if res.ancestors.include?(ActiveRecord::Base)
logger.debug "Including ActiveRecordHelper into #{res}"
res.send(:include, ModelFact::Helpers::ActiveRecordHelper)
end
end
res
end
end
|
.logger(tag = nil, &block) ⇒ Object
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
# File 'lib/model_fact.rb', line 95
def self.logger(tag = nil, &block)
if @_logger.nil?
@_logger = TeLogger::Tlogger.new(File.join(Dir.home,"test123.log"))
end
if block
if not_empty?(tag)
@_logger.with_tag(tag, &block)
else
@_logger.with_tag(@_logger.tag, &block)
end
else
if is_empty?(tag)
@_logger.tag = :model_fact
@_logger
else
@_logger.tag = tag
@_logger
end
end
end
|
.method_missing(mtd, *args, &block) ⇒ Object
87
88
89
90
91
92
93
|
# File 'lib/model_fact.rb', line 87
def self.method_missing(mtd, *args, &block)
if Registry.instance.respond_to?(mtd)
Registry.instance.send(mtd, *args, &block)
else
super
end
end
|
.new_instance(id, *args, &block) ⇒ Object
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
# File 'lib/model_fact.rb', line 68
def self.new_instance(id, *args, &block)
cls = instance(id, true)
logger.debug "new_instance got #{cls}"
inst = cls.send(:new, *args, &block)
if defined?(ActiveRecord)
require_relative 'model_fact/helpers/ar_helpers'
logger.debug "ActiveRecord defined!"
if inst.is_a?(ActiveRecord::Base) logger.debug "Including ActiveRecordHelper into #{cls}"
inst.class.send(:include, ModelFact::Helpers::ActiveRecordHelper)
end
end
inst
end
|
.on_event(id = nil, event = nil, opts = {}, &block) ⇒ Object
83
84
85
|
# File 'lib/model_fact.rb', line 83
def self.on_event(id = nil, event = nil, opts = {}, &block)
Registry.instance.on_event(id, event, opts, &block)
end
|
.register(id, cls, opts = {}) ⇒ Object
25
26
27
|
# File 'lib/model_fact.rb', line 25
def self.register(id, cls, opts = {})
Registry.instance.register(id, cls, opts)
end
|
.try_register(id, cls, opts = { }) ⇒ Object
try_register will not throw exception if ID already registered
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/model_fact.rb', line 30
def self.try_register(id, cls, opts = { })
opts = { } if opts.nil?
if Registry.instance.is_registered?(id) or (not_empty?(opts[:alias]) and Registry.instance.is_alias_registered?(opts[:alias]))
false
else
register(id, cls, opts)
true
end
end
|