class DynamicScaffold::Title

Attributes

name[W]

Public Class Methods

new(config) click to toggle source
# File lib/dynamic_scaffold/title.rb, line 5
def initialize(config)
  @config = config
  @titles_cache = {}
  @name = @config.model.model_name.human
end

Public Instance Methods

create() click to toggle source
# File lib/dynamic_scaffold/title.rb, line 41
def create
  titles(:new)
end
current() click to toggle source
# File lib/dynamic_scaffold/title.rb, line 21
def current
  public_send(@config.controller.params[:action])
end
edit() click to toggle source
# File lib/dynamic_scaffold/title.rb, line 29
def edit
  titles(:edit)
end
index() click to toggle source
# File lib/dynamic_scaffold/title.rb, line 25
def index
  titles(:index)
end
name(&block) click to toggle source
# File lib/dynamic_scaffold/title.rb, line 11
def name(&block)
  if block_given?
    @block = block
  elsif !@block.nil?
    @config.controller.view_context.instance_exec(&@block)
  else
    @name
  end
end
new() click to toggle source
# File lib/dynamic_scaffold/title.rb, line 33
def new
  titles(:new)
end
update() click to toggle source
# File lib/dynamic_scaffold/title.rb, line 37
def update
  titles(:edit)
end

Private Instance Methods

titles(action) click to toggle source
# File lib/dynamic_scaffold/title.rb, line 47
def titles(action)
  unless @titles_cache[action]
    titles = OpenStruct.new
    titles.name = name
    titles.full = I18n.t("dynamic_scaffold.title.full.#{action}", name: titles.name)
    titles.action = I18n.t("dynamic_scaffold.title.action.#{action}")
    titles.freeze
    @titles_cache[action] = titles
  end

  @titles_cache[action]
end