Module: Normalizr

Extended by:
Normalizr
Included in:
Normalizr
Defined in:
lib/normalizr.rb,
lib/normalizr/concern.rb,
lib/normalizr/version.rb,
lib/normalizr/exceptions.rb,
lib/normalizr/configuration.rb,
lib/normalizr/rspec/matcher.rb,
lib/normalizr/options_parser.rb

Defined Under Namespace

Modules: Concern, RSpec Classes: Configuration, MissingNormalizer, OptionsParser

Constant Summary collapse

VERSION =
'0.1.0'

Instance Method Summary collapse

Instance Method Details

#configurationObject



14
15
16
# File 'lib/normalizr.rb', line 14

def configuration
  @configuration ||= Configuration.new
end

#configureObject



18
19
20
# File 'lib/normalizr.rb', line 18

def configure
  configuration.instance_eval &Proc.new
end

#find(name) ⇒ Object



22
23
24
25
26
27
28
# File 'lib/normalizr.rb', line 22

def find(name)
  unless name.respond_to?(:call)
    configuration.normalizers.fetch(name) { raise MissingNormalizer.new(name) }
  else
    name
  end
end

#normalize(value, *normalizers) ⇒ Object



30
31
32
33
34
35
36
37
# File 'lib/normalizr.rb', line 30

def normalize(value, *normalizers)
  normalizers = configuration.default_normalizers if normalizers.empty?
  normalizers.each do |name|
    name, options = name.first if Hash === name
    value = find(name).call(value, options)
  end
  value
end