Module: Statesman::GeneratorHelpers

Included in:
ActiveRecordTransitionGenerator, MigrationGenerator
Defined in:
lib/generators/statesman/generator_helpers.rb

Instance Method Summary collapse

Instance Method Details

#association_nameObject



25
26
27
# File 'lib/generators/statesman/generator_helpers.rb', line 25

def association_name
  klass.demodulize.underscore.pluralize
end

#class_name_optionObject



5
6
7
# File 'lib/generators/statesman/generator_helpers.rb', line 5

def class_name_option
  ", class_name: '#{parent}'" unless parent.underscore == parent_name
end

#configurationObject

[] is deprecated and will be removed in 6.2



54
55
56
57
58
59
60
# File 'lib/generators/statesman/generator_helpers.rb', line 54

def configuration
  if ActiveRecord::Base.configurations.respond_to?(:configs_for)
    ActiveRecord::Base.configurations.configs_for(env_name: Rails.env).first
  else
    ActiveRecord::Base.configurations[Rails.env]
  end
end

#database_supports_partial_indexes?Boolean

Returns:

  • (Boolean)


62
63
64
# File 'lib/generators/statesman/generator_helpers.rb', line 62

def database_supports_partial_indexes?
  Statesman::Adapters::ActiveRecord.database_supports_partial_indexes?(parent.constantize)
end

#index_name(index_id) ⇒ Object



41
42
43
# File 'lib/generators/statesman/generator_helpers.rb', line 41

def index_name(index_id)
  "index_#{table_name}_#{index_id}"
end

#metadata_column_configObject



70
71
72
73
74
# File 'lib/generators/statesman/generator_helpers.rb', line 70

def 
  return if mysql?

  ", default: #{}"
end

#metadata_column_typeObject



33
34
35
36
37
38
39
# File 'lib/generators/statesman/generator_helpers.rb', line 33

def 
  if ActiveRecord::Base.connection.supports_json?
    postgres? ? :jsonb : :json
  else
    :text
  end
end

#metadata_default_valueObject



66
67
68
# File 'lib/generators/statesman/generator_helpers.rb', line 66

def 
  Utils.rails_5_or_higher? ? "{}" : "'{}'"
end

#model_file_nameObject



9
10
11
# File 'lib/generators/statesman/generator_helpers.rb', line 9

def model_file_name
  "app/models/#{klass.underscore}.rb"
end

#mysql?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/generators/statesman/generator_helpers.rb', line 49

def mysql?
  configuration.adapter.try(:match, /mysql/)
end

#parent_idObject



21
22
23
# File 'lib/generators/statesman/generator_helpers.rb', line 21

def parent_id
  parent_name + "_id"
end

#parent_nameObject



13
14
15
# File 'lib/generators/statesman/generator_helpers.rb', line 13

def parent_name
  parent.underscore.split("/").join("_")
end

#parent_table_nameObject



17
18
19
# File 'lib/generators/statesman/generator_helpers.rb', line 17

def parent_table_name
  parent.underscore.split("/").join("_").tableize
end

#postgres?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/generators/statesman/generator_helpers.rb', line 45

def postgres?
  configuration.adapter.try(:match, /postgres/)
end

#table_nameObject



29
30
31
# File 'lib/generators/statesman/generator_helpers.rb', line 29

def table_name
  klass.underscore.split("/").join("_").tableize
end