Class: AwesomeAnnotate::Model

Inherits:
Thor
  • Object
show all
Includes:
AnnotationBlock, RailsEnvironment, SchemaAnnotation, Thor::Actions
Defined in:
lib/awesome_annotate/model.rb

Instance Method Summary collapse

Constructor Details

#initialize(params = {}) ⇒ Model

Returns a new instance of Model.



17
18
19
20
21
# File 'lib/awesome_annotate/model.rb', line 17

def initialize(params = {})
  super()
  @env_file_path = Pathname.new(params[:env_file_path] || 'config/environment.rb')
  @model_dir = Pathname.new(params[:model_dir] || 'app/models')
end

Instance Method Details

#annotate(model_name) ⇒ Object



24
25
26
27
28
29
# File 'lib/awesome_annotate/model.rb', line 24

def annotate(model_name)
  raise 'Rails application path is required' unless @env_file_path.exist?

  load_rails_environment
  annotate_loaded_model(model_name)
end

#annotate_all(model_names = []) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
# File 'lib/awesome_annotate/model.rb', line 32

def annotate_all(model_names = [])
  raise 'Rails application path is required' unless @env_file_path.exist?

  load_rails_environment

  if model_names.empty?
    discover_model_names.each { |model_name| annotate_discovered_model(model_name) }
  else
    model_names.each { |model_name| annotate_loaded_model(model_name) }
  end
end

#remove(model_name) ⇒ Object



45
46
47
48
49
# File 'lib/awesome_annotate/model.rb', line 45

def remove(model_name)
  file_path = model_file_path(model_name)

  remove_model_annotation(file_path)
end

#remove_all(model_names = []) ⇒ Object



52
53
54
55
56
57
58
# File 'lib/awesome_annotate/model.rb', line 52

def remove_all(model_names = [])
  if model_names.empty?
    discovered_model_file_paths.each { |file_path| remove_model_annotation(file_path, report_missing: false) }
  else
    model_names.each { |model_name| remove(model_name) }
  end
end