Class: JsonRander::JNumBuilder

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/json_rander/json_num_builder.rb

Overview

Json Num Builder: singleton

Instance Method Summary collapse

Constructor Details

#initializeJNumBuilder

Returns a new instance of JNumBuilder.



112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/json_rander/json_num_builder.rb', line 112

def initialize
  @nodes = { n0: JNumHead.new(:n1, :n2, :n3),
             n1: JNumMinus.new(:n2, :n3),
             n2: JNumZero.new(:n5, :n7, :n8, :n12),
             n3: JNumPositiveDigit.new(:n4, :n5, :n7, :n8, :n12),
             n4: JNumDigit.new(:n3, :n4, :n5, :n7, :n8, :n12),
             n5: JNumDot.new(:n6),
             n6: JNumDigit.new(:n6, :n7, :n8, :n12),
             n7: JNumBigE.new(:n9, :n10, :n11),
             n8: JNumSmallE.new(:n9, :n10, :n11),
             n9: JNumPlus.new(:n11),
             n10: JNumMinus.new(:n11),
             n11: JNumDigit.new(:n11, :n12),
             n12: JNumTail.new
           }
end

Instance Method Details

#get_numObject

get a valid json numer



130
131
132
133
134
135
136
137
138
139
140
141
142
143
# File 'lib/json_rander/json_num_builder.rb', line 130

def get_num
  num_string = ""

  # begin walking from :n0
  current_node = @nodes[:n0]

  # end walking when reaches tail
  until current_node.is_tail? do
       num_string << current_node.to_s
       current_node = @nodes[current_node.random_next]
  end

  return num_string
end