junklet 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YTc3MWM0MDE5OTgyMDZhNjJiMzU1YmY3NzY2MWYwMDA3N2ZlYzU0Yg==
4
+ ZDBjY2JlZjYxYjAyMjI4NTc0NTBlZDkwZTRjNzdmMjMyZmQwNGMyMQ==
5
5
  data.tar.gz: !binary |-
6
- YzZkMTI1ZDMwZjE3ZDg0ODI1MDcxOTEwZTQ3MmY0MDY5MTc5NTdjNA==
6
+ MmRjOTE4OGRiYTA4ODkyYzE3ZTAzNTQ3Y2VjOGYzZDkwZjc0NTY4MA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YmNkODBhODcyN2M2Y2U0NWZmMmJlNzMxOWZlNmQ5OTBkNTA5OWEzMjNlNzMw
10
- YmQwMWQ5MmM4NDVhOWVkYWIzY2ZjNTQ2NDM4YjdjOWZmYWY5YzU5YWUwY2Qw
11
- ZGUxYzczMmI5ODFlYTdmODJkNjc4Y2MzZTE5YTVhNzMyZTFkZmE=
9
+ NGY2OTMwZGM3NDc5MWI5MzFjYmY2ZTFiZTdjM2VjOTFiMjJiYWVjMjk3N2Fk
10
+ OWE1MDU2YTc5OWI1M2ZmMjM2YThiMzNiZGMyYTg1MGJkNzNlOTU1NDVjMWEw
11
+ N2NjMjNjYzE5ZTQyYWNkMGZiNmFkODFhZjkxYzAyNzk4YTNjZmE=
12
12
  data.tar.gz: !binary |-
13
- NGI0MmYyNDA0MTJmOTJlY2ExYzAxY2Q5MDdjNTEwNTY3Zjc3YjJiOTFlMTli
14
- NjIyNDVkZDkzYjZmMzY2Njg3MzEyZDZhOGRmNTdkMzg2N2M4NDk2YWE3YTBh
15
- MWU5MmIxODYxOTRhZDdjOWEyNWQwNTc1ZGVmMmM1MWY1ZjcwYzg=
13
+ YjRkMGJhNjdhNzBmMzI4N2U3ZjgwZTVhNjdmODdjNmQxYzg0ZWM1NzBkMzYz
14
+ NTljODE1NjM4Y2I2YTc0NjEzMjc3MmM3Zjg3M2I1N2NiZDZjODcyZDBjMWM5
15
+ ODI3MGI1NjQ5ZmQ5MDYyNTM0ODFmY2M4ODdkMWI2MWM0Y2QwZTE=
@@ -1,3 +1,3 @@
1
1
  module Junklet
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
data/lib/junklet.rb CHANGED
@@ -8,24 +8,32 @@ module RSpec
8
8
  opts = args.size > 1 && !args.last.is_a?(Symbol) && args.pop || {}
9
9
 
10
10
  names = args.map(&:to_s)
11
-
11
+
12
12
  if opts.key?(:separator)
13
13
  names = names.map {|name| name.gsub(/_/, opts[:separator]) }
14
14
  end
15
-
15
+
16
16
  args.zip(names).each do |arg, name|
17
17
  let(arg) { "#{name}-#{junk}" }
18
18
  end
19
19
  end
20
20
  end
21
21
 
22
- def junk(size=32)
23
- # hex returns size*2 digits, because it returns a 0..255 byte
24
- # as a hex pair. But when we want junt, we want *bytes* of
25
- # junk. Get (size+1)/2 chars, which will be correct for even
26
- # sizes and 1 char too many for odds, so trim off with
27
- # [0...size] (note three .'s to trim off final char)
28
- SecureRandom.hex((size+1)/2)[0...size]
22
+ def junk(size=32, options={})
23
+ if :integer == options[:type]
24
+ # TODO: We can actual know how many hex digits we need in
25
+ # advance because of te ratio of the logs. We should totally
26
+ # work that out sometime. The ratio is like 1.2 something. For
27
+ # now, blah, just make it work.
28
+ SecureRandom.hex.to_i(16).to_s[0..size]
29
+ else
30
+ # hex returns size*2 digits, because it returns a 0..255 byte
31
+ # as a hex pair. But when we want junt, we want *bytes* of
32
+ # junk. Get (size+1)/2 chars, which will be correct for even
33
+ # sizes and 1 char too many for odds, so trim off with
34
+ # [0...size] (note three .'s to trim off final char)
35
+ SecureRandom.hex((size+1)/2)[0...size]
36
+ end
29
37
  end
30
38
  end
31
39
  end
@@ -8,11 +8,11 @@ describe Junklet do
8
8
  describe '.junklet' do
9
9
  context "with a single arg" do
10
10
  junklet :trash
11
-
11
+
12
12
  specify { expect(trash).to be }
13
13
  specify { expect(trash).to match /^trash-/ }
14
14
  specify { expect(trash).to match hex_regex }
15
-
15
+
16
16
  describe "memoization" do
17
17
  specify { expect(trash).to eq(trash) }
18
18
  end
@@ -44,10 +44,10 @@ describe Junklet do
44
44
 
45
45
  describe '.junk' do
46
46
  let(:trash) { junk }
47
-
47
+
48
48
  specify { expect(trash).to match hex_regex }
49
49
  specify { expect(trash.size).to eq(32) }
50
-
50
+
51
51
  it "is not cached" do
52
52
  expect(junk).to_not eq(junk)
53
53
  end
@@ -59,7 +59,7 @@ describe Junklet do
59
59
  context "with argument" do
60
60
  let(:little_trash) { junk 5 }
61
61
  let(:big_trash) { junk 100 }
62
-
62
+
63
63
  it "returns junk of that length" do
64
64
  expect(little_trash.size).to eq(5)
65
65
  expect(big_trash.size).to eq(100)
@@ -70,5 +70,13 @@ describe Junklet do
70
70
  expect(big_trash).to match /^[\da-f]{100}$/
71
71
  end
72
72
  end
73
+
74
+ context "with type: :decimal" do
75
+ let(:junk_integer) { junk 15, type: :integer }
76
+ it "returns the request number of decimal digits" do
77
+ expect { (widget_id).to be_a Integer }
78
+ expect { (widget_id.to_s.size).to eq(15) }
79
+ end
80
+ end
73
81
  end
74
82
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: junklet
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Brady