Class: JsonRander::JHash

Inherits:
Object
  • Object
show all
Defined in:
lib/json_rander/json_hash_builder.rb

Overview

json object: { xx : xx, yy

yy}

Instance Method Summary collapse

Constructor Details

#initializeJHash

Returns a new instance of JHash.



5
6
7
8
9
10
11
# File 'lib/json_rander/json_hash_builder.rb', line 5

def initialize
  @pairs = []

  # add random json key/value pairs to json object
  pair_num = Random.rand(JsonRander::configuration.hash_max_length)
  pair_num.times { self.add_random }
end

Instance Method Details

#add_randomObject



23
24
25
26
# File 'lib/json_rander/json_hash_builder.rb', line 23

def add_random
  @pairs << [rand_key, rand_value]
  return self
end

#rand_keyObject

get random key: string only



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

def rand_key
  return JString.new
end

#rand_valueObject

get random value: string/num/hash/array



19
20
21
# File 'lib/json_rander/json_hash_builder.rb', line 19

def rand_value
  return Kernel.const_get(JsonRander.random_type).new
end

#to_sObject

to json string



29
30
31
32
33
# File 'lib/json_rander/json_hash_builder.rb', line 29

def to_s
  key_value_strs = []
  @pairs.each { | key, value | key_value_strs << "#{key.to_s} : #{value.to_s}" }
  return "{ " + key_value_strs.join(", ") + " }"
end