Class: ActiveMocker::Generate

Inherits:
Object
  • Object
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

#initializeGenerate

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

.configure(&block) ⇒ Object



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_templateObject



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|
    # begin
      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}"

    # rescue Exception => exception
    #   logger.debug $!.backtrace
    #   logger.debug exception
    #   logger.info "failed to load #{model} model"
    #   next
    # end
    mocks_created += 1

  end
  logger.info "Generated #{mocks_created} of #{models.count} mocks"
end

#generate_model_schemaObject



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_nameObject



61
62
63
# File 'lib/active_mocker/generate.rb', line 61

def mock_append_name
  'Mock'
end