Class: ActiveMocker::MockCreator
- Inherits:
-
Object
- Object
- ActiveMocker::MockCreator
show all
- Defined in:
- lib/active_mocker/mock_creator.rb,
lib/active_mocker/mock_creator/scopes.rb,
lib/active_mocker/mock_creator/attributes.rb,
lib/active_mocker/mock_creator/associations.rb,
lib/active_mocker/mock_creator/safe_methods.rb,
lib/active_mocker/mock_creator/class_methods.rb,
lib/active_mocker/mock_creator/defined_methods.rb,
lib/active_mocker/mock_creator/modules_constants.rb,
lib/active_mocker/mock_creator/mock_build_version.rb,
lib/active_mocker/mock_creator/recreate_class_method_calls.rb
Defined Under Namespace
Modules: Associations, Attributes, ClassMethods, DefinedMethods, MockBuildVersion, ModulesConstants, RecreateClassMethodCalls, SafeMethods, Scopes
Constant Summary
collapse
- ENABLED_PARTIALS_DEFAULT =
[
:mock_build_version,
:modules_constants,
:class_methods,
:attributes,
:recreate_class_method_calls,
:defined_methods,
:scopes,
:associations,
].freeze
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(file:, file_out:, schema_scrapper:, template_creator: nil, class_introspector: nil, enabled_partials: nil, klasses_to_be_mocked:, mock_append_name:, active_record_model:, active_record_base_klass: ActiveRecord::Base) ⇒ MockCreator
Returns a new instance of MockCreator.
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/active_mocker/mock_creator.rb', line 18
def initialize(file:,
file_out:,
schema_scrapper:,
template_creator: nil,
class_introspector: nil,
enabled_partials: nil,
klasses_to_be_mocked:,
mock_append_name:,
active_record_model:,
active_record_base_klass: ActiveRecord::Base)
@file = file
@file_out = file_out
@schema_scrapper = schema_scrapper
@template_creator = template_creator || template_creator_default(file_out)
@class_introspector = class_introspector || class_introspector_default
@enabled_partials = enabled_partials || ENABLED_PARTIALS_DEFAULT
@klasses_to_be_mocked = klasses_to_be_mocked
@active_record_base_klass = active_record_base_klass
@mock_append_name = mock_append_name
@active_record_model = active_record_model
@errors = []
@completed = false
end
|
Instance Attribute Details
#errors ⇒ Object
Returns the value of attribute errors.
61
62
63
|
# File 'lib/active_mocker/mock_creator.rb', line 61
def errors
@errors
end
|
Instance Method Details
#class_name ⇒ Object
137
138
139
|
# File 'lib/active_mocker/mock_creator.rb', line 137
def class_name
@class_name ||= class_introspector.parsed_source.class_name.split("::").last
end
|
#completed? ⇒ Boolean
57
58
59
|
# File 'lib/active_mocker/mock_creator.rb', line 57
def completed?
@completed
end
|
#create ⇒ Object
42
43
44
45
46
|
# File 'lib/active_mocker/mock_creator.rb', line 42
def create
verify_class
render { file_out.close } if errors.empty?
self
end
|
#nested_modules ⇒ Object
141
142
143
144
145
|
# File 'lib/active_mocker/mock_creator.rb', line 141
def nested_modules
@nested_modules ||= begin
class_introspector.parsed_source.module_nesting.join("::")
end
end
|
#partials ⇒ Object
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
# File 'lib/active_mocker/mock_creator.rb', line 116
def partials
OpenStruct.new(enabled_partials.each_with_object({}) do |p, hash|
begin
file = File.new(File.join(File.dirname(__FILE__), "mock_template/_#{p}.erb"))
extend(ActiveMocker::MockCreator.const_get(p.to_s.camelize))
hash[p] = ERB.new(file.read, nil, "-", "_sub#{p}").result(binding)
rescue => e
errors << ErrorObject.new(class_name: class_name,
original_error: e, type: :generation,
level: :error,
message: e.message)
errors << ErrorObject.new(class_name: class_name,
original_error: e,
type: :erb,
level: :debug,
message: "Erb template: #{p} failed.\n#{file.path}")
raise e
end
end)
end
|
#primary_key ⇒ Object
147
148
149
|
# File 'lib/active_mocker/mock_creator.rb', line 147
def primary_key
@primary_key ||= ActiveRecordSchemaScrapper::Attribute.new(name: "id", type: :integer)
end
|
#render ⇒ Object
48
49
50
51
52
53
54
55
|
# File 'lib/active_mocker/mock_creator.rb', line 48
def render
template_creator.render
rescue => e
raise e unless error_already_collected?(e)
ensure
yield
@completed = true
end
|