Class: Charyf::Application
- Inherits:
-
AppEngine
show all
- Includes:
- Initializable
- Defined in:
- lib/charyf/utils/application.rb,
lib/charyf/utils/application/bootstrap.rb,
lib/charyf/utils/application/configuration.rb
Defined Under Namespace
Modules: Bootstrap
Classes: Configuration
Constant Summary
Constants inherited
from Extension
Extension::ABSTRACT
Class Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
included, #run_initializers
Methods inherited from AppEngine
#load_generators
Methods inherited from Extension
abstract?, #extension_name, extension_name, #extension_namespace, generators, #initialize, subclasses
Class Attribute Details
.called_from ⇒ Object
Returns the value of attribute called_from.
17
18
19
|
# File 'lib/charyf/utils/application.rb', line 17
def called_from
@called_from
end
|
Class Method Details
38
39
40
|
# File 'lib/charyf/utils/application.rb', line 38
def config
instance.config
end
|
.inherited(base) ⇒ Object
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/charyf/utils/application.rb', line 19
def inherited(base)
super
Charyf.app_class = base
base.called_from = begin
call_stack = caller_locations.map { |l| l.absolute_path || l.path }
File.dirname(call_stack.detect { |p| p !~ %r[charyf[\w.-]*/lib/utils] })
end
end
|
30
31
32
|
# File 'lib/charyf/utils/application.rb', line 30
def instance
super.run_load_hooks!
end
|
Instance Method Details
59
60
61
|
# File 'lib/charyf/utils/application.rb', line 59
def config
@config ||= Application::Configuration.new(self.class.find_root(self.class.called_from))
end
|
63
64
65
|
# File 'lib/charyf/utils/application.rb', line 63
def configure(&block)
instance_eval(&block)
end
|
#initialize!(group: :default) ⇒ Object
44
45
46
47
48
49
|
# File 'lib/charyf/utils/application.rb', line 44
def initialize!(group: :default)
return self if @initialized
@initialized = true
run_initializers(group, self)
end
|
#intent_processors ⇒ Object
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/charyf/utils/application.rb', line 76
def intent_processors
klasses = config.enabled_intent_processors.map do |processor_name|
klass = Charyf::Engine::Intent::Processor.list[processor_name]
raise Charyf::Utils::InvalidConfiguration.new("No intent processor strategy with name '#{processor_name}' found") unless klass
klass
end
raise Charyf::Utils::InvalidConfiguration.new('No intent processor strategies specified') if klasses.empty?
klasses
end
|
106
107
108
109
110
111
|
# File 'lib/charyf/utils/application.rb', line 106
def parser
klass = Charyf::Utils::Parser.get(config.i18n.locale)
raise Charyf::Utils::InvalidConfiguration.new("No parser for locale '#{config.i18n.locale}' found") unless klass
klass
end
|
#run_load_hooks! ⇒ Object
51
52
53
54
55
56
57
|
# File 'lib/charyf/utils/application.rb', line 51
def run_load_hooks!
return self if @ran_load_hooks
@ran_load_hooks = true
self
end
|