Method: ModelFormatter.init_options
- Defined in:
- lib/model_formatter.rb
.init_options(defaults, model, attr) ⇒ Object
:nodoc:
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/model_formatter.rb', line 25 def self.(defaults, model, attr) # :nodoc: = defaults.dup [:attr] = attr [:prefix] ||= DEFAULT_FORMAT_PREFIX [:formatted_attr] ||= "#{[:prefix]}#{attr}" # If :as is set, then it must be either a formatter Class, formatter Object, Symbol, or String [:formatter] = formatter_for([:as], [:options]) unless [:as].nil? # Define the formatter from a :block if :block is defined [:formatter] = define_formatter(attr, &[:block]) unless [:block].nil? # Define :formatter from a block based on :from and :to if they're both set if ![:from].nil? and ![:to].nil? [:formatter] = Module.new [:formatter].class.send :define_method, :from, [:from] [:formatter].class.send :define_method, :to, [:to] end # If :as is still not defined raise an error raise 'No formatting options have been defined.' if [:formatter].nil? end |