Class: ActiveMocker::Generate
- Inherits:
-
Object
- Object
- ActiveMocker::Generate
show all
- Extended by:
- Config, Forwardable
- Defined in:
- lib/active_mocker/generate.rb
Constant Summary
collapse
- @@_self =
self
Instance Attribute Summary
Attributes included from Config
#clear_cache, #log_level, #logger, #migration_dir, #mock_dir, #model_attributes, #model_dir, #model_file_reader, #schema_attributes, #schema_file, #schema_file_reader
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Config
check_required_settings, config, reload_default
Constructor Details
Returns a new instance of Generate.
17
18
19
|
# File 'lib/active_mocker/generate.rb', line 17
def initialize
create_template
end
|
Class Method Details
21
22
23
|
# File 'lib/active_mocker/generate.rb', line 21
def self.configure(&block)
config(&block)
end
|
.load_mock(model_name) ⇒ Object
29
30
31
32
|
# File 'lib/active_mocker/generate.rb', line 29
def self.load_mock(model_name)
load File.join(mock_dir, "#{model_name.tableize.singularize}_mock.rb")
"#{model_name}Mock".constantize
end
|
.mock(model_name, force_reload: false) ⇒ Object
25
26
27
|
# File 'lib/active_mocker/generate.rb', line 25
def self.mock(model_name, force_reload: false)
load_mock(model_name)
end
|
Instance Method Details
#create_template ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
# File 'lib/active_mocker/generate.rb', line 38
def create_template
mocks_created = 0
models = generate_model_schema
models.each do |model|
klass_str = ''
klass_str = model.render(File.open(File.join(File.expand_path('../', __FILE__), 'mock_template.erb')).read, mock_append_name)
FileUtils::mkdir_p mock_dir unless File.directory? mock_dir
File.open(File.join(mock_dir,"#{model.table_name.singularize}_mock.rb"), 'w').write(klass_str)
logger.info "saving mock #{model.class_name} to #{mock_dir}"
mocks_created += 1
end
logger.info "Generated #{mocks_created} of #{models.count} mocks"
end
|
#generate_model_schema ⇒ Object
34
35
36
|
# File 'lib/active_mocker/generate.rb', line 34
def generate_model_schema
ActiveMocker::ModelSchema::Generate.new(schema_file: schema_file, models_dir: model_dir, logger: logger).run
end
|
#mock_append_name ⇒ Object
61
62
63
|
# File 'lib/active_mocker/generate.rb', line 61
def mock_append_name
'Mock'
end
|