class Flagist::Definer
Public Class Methods
new(model,data)
click to toggle source
# File lib/flagist.rb, line 147 def initialize(model,data) @config = ::Flagist.config @model = model @data = data end
Public Instance Methods
method_missing(method,*args)
click to toggle source
# File lib/flagist.rb, line 153 def method_missing(method,*args) if args.size > 1 case args.first when ::Hash opts = args.shift end end case args.last when ::Hash hash = args.pop end info = @data[method] ||= {} if opts opts.each do |k,v| info[k] = v end end unless info[:type] info[:type] = (method.to_s.pluralize == method.to_s) ? :array : :scalar end flags = info[:flags] ||= {} args.each do |value| flag = flags[value] ||= {} flag[:value] = value flag[:name] = value end if hash hash.each do |value,name| flag = flags[value] ||= {} flag[:value] = value flag[:name] = name end end labels = ::I18n.translate("#{@config.i18n_namespace}.#{@model.model_name.singular}.#{method}", default: {}) flags.each do |value,flag| name = flag[:name] if labels[name] flag[:label] = labels[name] end end info end