class DynamicText::LocalsSetter

Public Instance Methods

get_dynamic_locals(resource, attribute, opts={}) click to toggle source

Set all locals for dynamic text view partial based on passed in arguments

# File lib/dynamic_text/locals_setter.rb, line 3
def get_dynamic_locals(resource, attribute, opts={})
  locals.merge!(opts).tap do |locals|
    locals[:resource] = resource
    locals[:attribute] = attribute
    locals[:resource_id] = resource.id
    locals[:value] = resource.send(attribute)
    locals[:resource_scope] ||= default_resource_scope
    locals[:placeholder] ||= default_placeholder
    locals[:resource_type] ||= default_resource_type
    locals[:resource_route] ||= default_resource_route
    locals[:dynamic_tag] ||= default_dynamic_tag
    locals[:style_class] ||= default_style_class
  end
end
get_editable_locals(resource, attribute, opts={}) click to toggle source

Set all locals for editable text view partial based on passed in arguments

# File lib/dynamic_text/locals_setter.rb, line 19
def get_editable_locals(resource, attribute, opts={})
  get_dynamic_locals(resource, attribute, opts).tap do |locals|
    locals[:url] ||= default_url
    locals[:js_key] ||= default_js_key
    locals[:style_class] ||= default_style_class
  end
end

Private Instance Methods

camel_to_underscore(string) click to toggle source

Helpers

# File lib/dynamic_text/locals_setter.rb, line 65
def camel_to_underscore(string)
  string.gsub(/::/, '/').
  gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
  gsub(/([a-z\d])([A-Z])/,'\1_\2').
  tr("-", "_").
  downcase
end
default_dynamic_tag() click to toggle source
# File lib/dynamic_text/locals_setter.rb, line 47
def default_dynamic_tag
  get_locals(:resource_type, :resource_id, :attribute).join(":")
end
default_js_key() click to toggle source
# File lib/dynamic_text/locals_setter.rb, line 55
def default_js_key
  get_locals(:resource_type, :attribute).join(":")
end
default_placeholder() click to toggle source
# File lib/dynamic_text/locals_setter.rb, line 35
def default_placeholder
  "Enter #{get_local(:attribute)}..."
end
default_resource_route() click to toggle source
# File lib/dynamic_text/locals_setter.rb, line 43
def default_resource_route
  get_local(:resource_type).pluralize
end
default_resource_scope() click to toggle source

Defaults

# File lib/dynamic_text/locals_setter.rb, line 31
def default_resource_scope
  DynamicText.configuration.resource_scope
end
default_resource_type() click to toggle source
# File lib/dynamic_text/locals_setter.rb, line 39
def default_resource_type
  camel_to_underscore get_local(:resource).class.name
end
default_style_class() click to toggle source
# File lib/dynamic_text/locals_setter.rb, line 59
def default_style_class
  DynamicText.configuration.use_default_style? ? "dt-default-style" : ""
end
default_url() click to toggle source
# File lib/dynamic_text/locals_setter.rb, line 51
def default_url
  get_locals(:resource_scope, :resource_route, :resource_id).join("/")
end
get_local(local_name) click to toggle source
# File lib/dynamic_text/locals_setter.rb, line 77
def get_local(local_name)
  locals[local_name]
end
get_locals(*local_names) click to toggle source
# File lib/dynamic_text/locals_setter.rb, line 81
def get_locals(*local_names)
  local_names.collect do |local_name|
    get_local(local_name)
  end
end
locals() click to toggle source
# File lib/dynamic_text/locals_setter.rb, line 73
def locals
  @locals ||= {}
end