eitil 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/eitil_core/README.md +33 -0
- data/eitil_core/lib/eitil_core.rb +1 -0
- data/eitil_core/lib/eitil_core/mocks.rb +6 -0
- data/eitil_core/lib/eitil_core/mocks/array.rb +39 -0
- data/eitil_core/lib/eitil_core/mocks/hash.rb +36 -0
- data/eitil_core/lib/eitil_core/mocks/string.rb +11 -0
- data/lib/eitil/version.rb +1 -1
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2bf167d056adee32eeba94ac5282d6a9890575a309c775bd53da822f4817501e
|
4
|
+
data.tar.gz: '08bbebecb6e9d84567d522d9c7b62e23ff8b3a6e3b3b1fee5639a58aa9f6bc68'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cab736bd8a72ba50468f017d91f12fabe1a8a8887bb892797c7466296227fb763e413a5ae372c535ef134963181414ac8ef3d7cae497d708b178f05a93c03ce1
|
7
|
+
data.tar.gz: dc057b62c574bea1b96e4074c9af724cf3ad59d957f9a62790cbe63ec998503c1ae1a1b5f253388d293ab1bfb5eeeb41b7f247dc61e1b635dacadc7bf644ddd0
|
data/eitil_core/README.md
CHANGED
@@ -259,6 +259,39 @@ Find.gem_path(gem_name)
|
|
259
259
|
```
|
260
260
|
|
261
261
|
|
262
|
+
## Mocks
|
263
|
+
|
264
|
+
```ruby
|
265
|
+
|
266
|
+
require "eitil_core/mocks"
|
267
|
+
|
268
|
+
```
|
269
|
+
|
270
|
+
```ruby
|
271
|
+
# require "eitil_core/mocks/string"
|
272
|
+
|
273
|
+
String.mock(n=25)
|
274
|
+
# String.mock(10) # ==> "oooooo c nnnnnnnnnn ttttttttt p kkk r ppppp rrrrrrr uuu"
|
275
|
+
```
|
276
|
+
|
277
|
+
```ruby
|
278
|
+
# require "eitil_core/mocks/array"
|
279
|
+
|
280
|
+
Array.mock(n=10, type=Integer, &block)
|
281
|
+
# Array.mock # ==> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
282
|
+
# Array.mock(10, Float) #==> [1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0]
|
283
|
+
# Built-in methods are provided for classes Integer, Float, String, Date, Time
|
284
|
+
# But any other class is accepted as well, also your own classes such as User, Shift and Environment
|
285
|
+
```
|
286
|
+
|
287
|
+
```ruby
|
288
|
+
# require "eitil_core/mocks/hash"
|
289
|
+
|
290
|
+
Hash.mock(n=10)
|
291
|
+
# Hash.mock(10) #==> {"a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5, "f"=>6, "g"=>7, "h"=>8, "i"=>9, "j"=>10}
|
292
|
+
```
|
293
|
+
|
294
|
+
|
262
295
|
## SafeExecutions
|
263
296
|
|
264
297
|
```ruby
|
@@ -0,0 +1,39 @@
|
|
1
|
+
|
2
|
+
# require "eitil_core/mocks/array"
|
3
|
+
|
4
|
+
class Array
|
5
|
+
|
6
|
+
def self.mock(n=10, type=Integer, &block)
|
7
|
+
|
8
|
+
return Array.new(n,&block) if block_given?
|
9
|
+
|
10
|
+
case type.to_s
|
11
|
+
|
12
|
+
when 'Integer'
|
13
|
+
Array.new(n) {|i| i+1}
|
14
|
+
|
15
|
+
when 'Float'
|
16
|
+
Array.new(n) {|i| i+1.0}
|
17
|
+
|
18
|
+
when 'String'
|
19
|
+
words = String.mock(n).split
|
20
|
+
Array.new(n) {|i| words[i]}
|
21
|
+
|
22
|
+
when 'Time'
|
23
|
+
time_now = Time.now
|
24
|
+
Array.new(n) {|i| time_now + (i * (60 * 60 * 24)) }
|
25
|
+
|
26
|
+
when 'Date'
|
27
|
+
date_now = Date.today
|
28
|
+
Array.new(n) {|i| date_now + (i * 1) }
|
29
|
+
|
30
|
+
else
|
31
|
+
Array.new(n) do
|
32
|
+
type.send(:new) rescue
|
33
|
+
raise NoNewMethodError, 'Please provide Object that responds to `new` call'
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
|
2
|
+
# require "eitil_core/mocks/hash"
|
3
|
+
|
4
|
+
class Hash
|
5
|
+
|
6
|
+
def self.mock(n=10)
|
7
|
+
range = mock_size(n).to_a
|
8
|
+
Hash[Array.mock(n) {|m| range[m] }.zip(Array.mock(n))]
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def self.mock_size(n)
|
14
|
+
EitilCore::Mock.hash_range_for(n)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
module EitilCore
|
21
|
+
module Mock
|
22
|
+
|
23
|
+
def self.hash_range_for(n)
|
24
|
+
range = nil
|
25
|
+
i = 0
|
26
|
+
|
27
|
+
until range != nil do
|
28
|
+
range = ('a'..'z') if n <= 26
|
29
|
+
range = ('a'.."z#{'z'*i}") if n < (26 + (26 ** (i+1) )) && !range
|
30
|
+
i += 1
|
31
|
+
end
|
32
|
+
range
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
data/lib/eitil/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eitil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jurriaan Schrofer
|
@@ -110,6 +110,10 @@ files:
|
|
110
110
|
- eitil_core/lib/eitil_core/lookups.rb
|
111
111
|
- eitil_core/lib/eitil_core/lookups/all_methods.rb
|
112
112
|
- eitil_core/lib/eitil_core/lookups/gem_path.rb
|
113
|
+
- eitil_core/lib/eitil_core/mocks.rb
|
114
|
+
- eitil_core/lib/eitil_core/mocks/array.rb
|
115
|
+
- eitil_core/lib/eitil_core/mocks/hash.rb
|
116
|
+
- eitil_core/lib/eitil_core/mocks/string.rb
|
113
117
|
- eitil_core/lib/eitil_core/railtie.rb
|
114
118
|
- eitil_core/lib/eitil_core/safe_executions.rb
|
115
119
|
- eitil_core/lib/eitil_core/safe_executions/safe_call.rb
|