Module Kwalify::Util
In: lib/kwalify.rb
lib/kwalify/util.rb
lib/kwalify/util/hashlike.rb
lib/kwalify/util/ordered-hash.rb

Methods

Classes and Modules

Module Kwalify::Util::HashLike
Class Kwalify::Util::OrderedHash

Public Instance methods

create a hash table from list of hash with primary key.

ex.

  hashlist = [
    { "name"=>"Foo", "gender"=>"M", "age"=>20, },
    { "name"=>"Bar", "gender"=>"F", "age"=>25, },
    { "name"=>"Baz", "gender"=>"M", "age"=>30, },
  ]
  hashtable = YamlHelper.create_hashtable(hashlist, "name")
  p hashtable
      # => { "Foo" => { "name"=>"Foo", "gender"=>"M", "age"=>20, },
      #      "Bar" => { "name"=>"Bar", "gender"=>"F", "age"=>25, },
      #      "Baz" => { "name"=>"Baz", "gender"=>"M", "age"=>30, }, }

get class object. if not found, NameError raised.

get nested value directly.

ex.

  val = YamlHelper.get_value(obj, ['aaa', 0, 'xxx'])

This is equal to the following:

  begin
    val = obj['aaa'][0]['xxx']
  rescue NameError
    val = nil
  end

traverse rule

ex.

  schema = YAML.load_file('myschema.yaml')
  validator = Kwalify::Validator.new(schema)
  Kwalify::Util.traverse_rule(validator) do |rule|
    p rule if rule.classname
  end

traverse schema

ex.

  schema = YAML.load_file('myschema.yaml')
  Kwalify::Util.traverse_schema(schema) do |rulehash|
    ## add module prefix to class name
    if rulehash['class']
      rulehash['class'] = 'MyModule::' + rulehash['class']
    end
  end

expand tab character to spaces

ex.

  untabified_str = YamlHelper.untabify(tabbed_str)

[Validate]