module Normalizr
Constants
- VERSION
Public Instance Methods
configuration()
click to toggle source
# File lib/normalizr.rb, line 14 def configuration @configuration ||= Configuration.new end
configure(&block)
click to toggle source
# File lib/normalizr.rb, line 18 def configure(&block) unless block_given? raise ArgumentError, '.configure must be called with a block' end configuration.instance_eval(&block) end
find(name)
click to toggle source
# File lib/normalizr.rb, line 26 def find(name) unless name.respond_to?(:call) configuration.normalizers.fetch(name) { raise MissingNormalizer.new(name) } else name end end
normalize(obj, *normalizers)
click to toggle source
# File lib/normalizr.rb, line 44 def normalize(obj, *normalizers) normalizers_with_default(normalizers).reduce(obj) do |memo, name| name, options = name.first if Hash === name process(memo, name, options) end end
process(obj, name, options)
click to toggle source
# File lib/normalizr.rb, line 34 def process(obj, name, options) if Array === obj obj.map { |item| process(item, name, options) }.tap do |ary| ary.compact! if name == :blank end else find(name).call(obj, options) end end
Private Instance Methods
normalizers_with_default(normalizers)
click to toggle source
# File lib/normalizr.rb, line 54 def normalizers_with_default(normalizers) default_index = normalizers.index(:default) normalizers[default_index.to_i] = configuration.default_normalizers if normalizers.empty? || default_index normalizers.flatten! normalizers end