rantly 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.textile CHANGED
@@ -194,7 +194,7 @@ Rant#sized(n,&block)
194
194
  Rant provides two methods that depends on the size
195
195
 
196
196
  <pre><code>
197
- Rant#array(*branches)
197
+ Rant#array(size=default_size)
198
198
  returns a sized array consisted of elements by Rant#calling random branches.
199
199
  Rant#string(char_class=:print)
200
200
  returns a sized random string, consisted of only chars from a char_class.
@@ -220,13 +220,8 @@ The avaiable char classes for strings are:
220
220
 
221
221
  <pre><code>
222
222
  # sized 10 array of integer or float
223
- > gen.value { sized(10) { array(:integer,:float)}}
223
+ > gen.value { array(10) { branch(:integer,:float)}}
224
224
  => [417733046, -375385433, 0.967812380000118, 26478621, 0.888588160450082, 250944144, 305584916, -151858342, 0.308123867823313, 0.316824642414253]
225
-
226
- # fails if you forget to set the size.
227
- > gen.value { array(:integer,:float)}
228
- RuntimeError: size not set
229
-
230
225
  </code></pre>
231
226
 
232
227
  If you set the size once, it applies to all subsequent recursive structures. Here's a sized 10 array of sized 10 strings,
@@ -239,7 +234,7 @@ If you set the size once, it applies to all subsequent recursive structures. Her
239
234
  Or a sized 10 array of sized 5 strings,
240
235
 
241
236
  <pre><code>
242
- > gen.value { sized(10) { array Proc.new {sized(5) {string}}}}
237
+ > gen.value { array(10) { array(5) { string}}}
243
238
  => ["S\"jf ", "d\\F-$", "-_8pa", "IN0iF", "SxRV$", ".{kQ7", "6>;fo", "}.D8)", "P(tS'", "y0v/v"]
244
239
  </code></pre>
245
240
 
@@ -281,7 +276,7 @@ The check block takes the generated data as its argument. One idiom I find usefu
281
276
  should "generate right sized array" do
282
277
  property_of {
283
278
  len = integer
284
- [len,sized(len) { array :integer }]
279
+ [len,array(len){integer}]
285
280
  }.check { |(len,arr)|
286
281
  assert_equal len, arr.length
287
282
  }
data/VERSION.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
2
  :build:
3
3
  :major: 0
4
- :minor: 2
4
+ :minor: 3
5
5
  :patch: 0
data/lib/rantly.rb CHANGED
@@ -5,3 +5,11 @@ class Rantly
5
5
  end
6
6
 
7
7
  require 'rantly/generator'
8
+
9
+ def Rantly(n=1,&block)
10
+ if n > 1
11
+ Rantly.map(n,&block)
12
+ else
13
+ Rantly.value(&block)
14
+ end
15
+ end
@@ -204,9 +204,9 @@ class Rantly
204
204
  end
205
205
  end
206
206
 
207
- def array(*freq_pairs)
207
+ def array(n=self.size,&block)
208
208
  acc = []
209
- self.size.times { acc << freq(*freq_pairs) }
209
+ n.times { acc << self.instance_eval(&block) }
210
210
  acc
211
211
  end
212
212
 
data/lib/rantly/silly.rb CHANGED
@@ -10,7 +10,7 @@ end
10
10
  module Rantly::Silly::Love
11
11
 
12
12
  def letter(n=3)
13
- body = sized(n) { array(:paragraph) }.join "\n\n"
13
+ body = array(n){paragraph}.join "\n\n"
14
14
  <<-EOS
15
15
  #{address}:
16
16
 
@@ -43,7 +43,7 @@ EOS
43
43
  end
44
44
 
45
45
  def paragraph
46
- sized(range(2,4)) { array(:sentence)}.join " "
46
+ array(range(2,4)){ sentence}.join " "
47
47
  end
48
48
 
49
49
  def sentence
data/rantly.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{rantly}
8
- s.version = "0.2.0"
8
+ s.version = "0.3.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Howard Yeh"]
12
- s.date = %q{2010-01-04}
12
+ s.date = %q{2010-01-12}
13
13
  s.email = %q{hayeah@gmail.com}
14
14
  s.extra_rdoc_files = [
15
15
  "LICENSE",
data/test/rantly_test.rb CHANGED
@@ -189,14 +189,14 @@ class RantlyTest::Generator < Test::Unit::TestCase
189
189
  assert o == 1 || o == 2
190
190
  }
191
191
  property_of {
192
- arr = sized(10) { array(:integer) }
192
+ arr = sized(10) { array { integer } }
193
193
  choose(*arr)
194
194
  }.check { |o|
195
195
  assert o.is_a?(Fixnum)
196
196
  }
197
197
  property_of {
198
198
  # array of array of ints
199
- arr = sized(10) { array(Proc.new { array(:integer)})}
199
+ arr = sized(10) { array { array { integer }}}
200
200
  # choose an array from an array of arrays of ints
201
201
  choose(*arr)
202
202
  }.check { |arr|
@@ -210,7 +210,7 @@ class RantlyTest::Generator < Test::Unit::TestCase
210
210
  should "not pick an element with 0 frequency" do
211
211
  property_of {
212
212
  sized(10) {
213
- array Proc.new { freq([0,:string],[1,:integer]) }
213
+ array { freq([0,:string],[1,:integer]) }
214
214
  }
215
215
  }.check { |arr|
216
216
  assert arr.all? { |o| o.is_a?(Integer)}
@@ -235,7 +235,7 @@ class RantlyTest::Generator < Test::Unit::TestCase
235
235
 
236
236
  should "generate empty array" do
237
237
  property_of {
238
- sized(0) { array(:integer)}
238
+ sized(0) { array { integer }}
239
239
  }.check { |o|
240
240
  assert o.empty?
241
241
  }
@@ -245,7 +245,7 @@ class RantlyTest::Generator < Test::Unit::TestCase
245
245
  property_of {
246
246
  size1 = range(5,10)
247
247
  size2 = range(0,size1-1)
248
- array = sized(size1) { array(Proc.new { sized(size2) { array(:integer)}})}
248
+ array = sized(size1) { array { array(size2) { integer }}}
249
249
  [size1,array]
250
250
  }.check { |(size1,outter_array)|
251
251
  assert_equal size1, outter_array.size
@@ -255,7 +255,7 @@ class RantlyTest::Generator < Test::Unit::TestCase
255
255
 
256
256
  should "generate array with right types" do
257
257
  property_of {
258
- sized(10) { array :integer,:string,:float }
258
+ sized(10) { array { freq(:integer,:string,:float)} }
259
259
  }.check { |arr|
260
260
  assert arr.all? { |o|
261
261
  case o
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rantly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Howard Yeh
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-04 00:00:00 -08:00
12
+ date: 2010-01-12 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15