Module: HashMap

Defined in:
lib/hash_map.rb,
lib/hash_map/dsl.rb,
lib/hash_map/base.rb,
lib/hash_map/mapper.rb,
lib/hash_map/plugins.rb,
lib/hash_map/version.rb,
lib/hash_map/matchers.rb,
lib/hash_map/json_adapter.rb,
lib/hash_map/after_each_context.rb

Defined Under Namespace

Modules: Matchers, ToDSL Classes: AfterEachContext, Base, DSL, JSONAdapter, KeyNotProvided, Mapper

Constant Summary collapse

BlankToNil =
lambda do |v, ctx|
  Fusu.blank?(v) ? nil : v
end
StringToBoolean =
lambda do |v, ctx|
  return false if v == 'false'
  return true if v == 'true'
  v
end
MarkUnprovided =
lambda do |v, ctx|
  if !ctx.provided?
    KeyNotProvided.new
  else
    v
  end
end
RemoveUnprovideds =
lambda do |o|
  HashMap.deep_reject(o){ |k, v| v.is_a?(HashMap::KeyNotProvided) }
end
UnderscoreKeys =
lambda do |output|
  Fusu::Hash.deep_transform_keys(output){ |k| Fusu::String.underscore(k).to_sym }
end
VERSION =
"0.6.3"

Class Method Summary collapse

Class Method Details

.deep_reject(hash, &block) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/hash_map.rb', line 20

def self.deep_reject(hash, &block)
  hash.each_with_object(Fusu::HashWithIndifferentAccess.new) do |(k, v), memo|
    unless block.call(k, v)
      if v.is_a?(Hash)
        memo[k] = deep_reject(v, &block)
      else
        memo[k] = v
      end
    end
  end
end

.rootObject



4
5
6
# File 'lib/hash_map.rb', line 4

def self.root
  File.expand_path '../..', __FILE__
end