Module: TurboCrud

Defined in:
lib/turbo_crud/engine.rb,
lib/turbo_crud.rb,
lib/turbo_crud/helpers.rb,
lib/turbo_crud/version.rb,
lib/turbo_crud/controller.rb,
lib/generators/turbo_crud/doctor_generator.rb,
lib/generators/turbo_crud/install_generator.rb,
lib/generators/turbo_crud/scaffold_generator.rb,
lib/generators/turbo_crud/full_scaffold_generator.rb,
lib/generators/turbo_crud/concerns/install_support.rb

Overview

Rails Engine: lets the gem ship views/assets/helpers like a mini-app. 🧰

Defined Under Namespace

Modules: Controller, Generators, Helpers Classes: Configuration, Engine, Error, MissingRowPartialError

Constant Summary collapse

VERSION =

Version constant: bump here, not in 12 random places. 🧠

"0.5.0"

Class Method Summary collapse

Class Method Details

.configObject



77
78
79
# File 'lib/turbo_crud.rb', line 77

def self.config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

Yields:



81
82
83
# File 'lib/turbo_crud.rb', line 81

def self.configure
  yield(config)
end

.model_default_for(model_or_record, key) ⇒ Object

Resolve model-specific defaults by trying common key styles.



86
87
88
89
90
91
# File 'lib/turbo_crud.rb', line 86

def self.model_default_for(model_or_record, key)
  defaults = model_defaults_for(model_or_record)
  return nil unless defaults.is_a?(Hash)

  defaults[key.to_sym]
end

.model_defaults_for(model_or_record) ⇒ Object



93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/turbo_crud.rb', line 93

def self.model_defaults_for(model_or_record)
  klass =
    if model_or_record.is_a?(Class)
      model_or_record
    elsif model_or_record.respond_to?(:klass) && model_or_record.klass.is_a?(Class)
      model_or_record.klass
    elsif model_or_record.respond_to?(:class)
      model_or_record.class
    end

  return nil unless klass&.respond_to?(:model_name)

  keys = [
    klass,
    klass.name,
    klass.name.to_sym,
    klass.model_name.name,
    klass.model_name.name.to_sym,
    klass.model_name.element,
    klass.model_name.element.to_sym,
    klass.model_name.singular,
    klass.model_name.singular.to_sym
  ]

  keys.each do |candidate|
    value = config.model_defaults[candidate]
    return value if value
  end

  nil
end