module X::Editable::Rails::Configuration

Public Instance Methods

class_options() click to toggle source
# File lib/x-editable-rails/configuration.rb, line 15
def class_options
  options.fetch(:class_options, {})
end
class_options_for(object) click to toggle source
# File lib/x-editable-rails/configuration.rb, line 10
def class_options_for(object)
  class_options = options.fetch(:class_options, {})
  class_options.fetch(object.class.name, {})
end
load_yaml_file(path) click to toggle source
# File lib/x-editable-rails/configuration.rb, line 31
def load_yaml_file(path)
  source = File.read path
  source = ERB.new(source).result
  
  result = YAML.load(source)
  result = {} if result.blank?
  
  result.with_indifferent_access
end
method_options_for(object, method) click to toggle source
# File lib/x-editable-rails/configuration.rb, line 6
def method_options_for(object, method)
  class_options_for(object).fetch(method, {})
end
options() click to toggle source
# File lib/x-editable-rails/configuration.rb, line 19
def options
  config_fn = ::Rails.root.join("config", "x-editable.yml")
  if File.file?(config_fn)
    @options ||= begin
      options = load_yaml_file config_fn
      format_class_options! options
    end
  else
    @options = {}
  end
end

Private Instance Methods

format_class_options!(options) click to toggle source

if the specified options are a string, convert to Hash and make the string the title

# File lib/x-editable-rails/configuration.rb, line 44
def format_class_options!(options)
  if class_options = options[:class_options]
    class_options.each do |class_name, methods|
      methods.each do |method, method_options|
        unless method_options.is_a? Hash
          methods[method] = { title: method_options }.with_indifferent_access
        end
      end
    end
  end
  
  options
end