tfg_support 0.0.2 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +23 -0
- data/lib/tfg_support/sequence.rb +16 -0
- data/lib/tfg_support/version.rb +1 -1
- data/lib/tfg_support.rb +1 -0
- data/spec/sequence_spec.rb +28 -0
- metadata +22 -11
- checksums.yaml +0 -7
data/README.md
CHANGED
@@ -37,6 +37,29 @@ also works for setting. New hashes will be created for missing keys.
|
|
37
37
|
hash
|
38
38
|
=> {:foo=>{:bar=>{:baz=>:frob}, :missing_key=>{:baz=>:frob}}}
|
39
39
|
|
40
|
+
### TfgSupport::Sequence
|
41
|
+
|
42
|
+
An object which can be used to generate an infinite sequence.
|
43
|
+
|
44
|
+
sequence = TfgSupport::Sequence.new(1) { |previous| previous * 2 }
|
45
|
+
sequence.next
|
46
|
+
=> 1
|
47
|
+
sequence.next
|
48
|
+
=> 2
|
49
|
+
sequence.next
|
50
|
+
=> 4
|
51
|
+
|
52
|
+
#### self.new
|
53
|
+
|
54
|
+
**Sequence.new(initial_value, &generator)**
|
55
|
+
|
56
|
+
Returns a new `Sequence` object.
|
57
|
+
|
58
|
+
#### next
|
59
|
+
*this method is not thread safe*
|
60
|
+
|
61
|
+
Applies the generator block provided during construction to the previous result.
|
62
|
+
|
40
63
|
|
41
64
|
## Contributing
|
42
65
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module TfgSupport
|
2
|
+
class Sequence
|
3
|
+
|
4
|
+
def initialize(args, &block)
|
5
|
+
@current_value, @generator = args, block
|
6
|
+
end
|
7
|
+
|
8
|
+
# return the next element in the sequence
|
9
|
+
|
10
|
+
def next
|
11
|
+
@current_value = @generator.call(@current_value) if @called
|
12
|
+
@called = true
|
13
|
+
@current_value
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
data/lib/tfg_support/version.rb
CHANGED
data/lib/tfg_support.rb
CHANGED
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TfgSupport::Sequence do
|
4
|
+
|
5
|
+
let(:sequence) do
|
6
|
+
TfgSupport::Sequence.new(1) do |previous|
|
7
|
+
previous * 2
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "#next" do
|
12
|
+
|
13
|
+
it "returns the starting value the first time it's called" do
|
14
|
+
sequence.next.should eq 1
|
15
|
+
end
|
16
|
+
|
17
|
+
it "returns the result of the generator for successive calls" do
|
18
|
+
sequence.next
|
19
|
+
sequence.next.should eq 2
|
20
|
+
end
|
21
|
+
|
22
|
+
it "passes the result of the previous invocation of the generator, to the generator" do
|
23
|
+
sequence.next
|
24
|
+
sequence.next
|
25
|
+
sequence.next.should eq 4
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tfg_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.1.1
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- Courtney de Lautour
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
12
|
+
date: 2013-05-24 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: bundler
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
16
18
|
requirements:
|
17
19
|
- - ~>
|
18
20
|
- !ruby/object:Gem::Version
|
@@ -20,6 +22,7 @@ dependencies:
|
|
20
22
|
type: :development
|
21
23
|
prerelease: false
|
22
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
23
26
|
requirements:
|
24
27
|
- - ~>
|
25
28
|
- !ruby/object:Gem::Version
|
@@ -27,29 +30,33 @@ dependencies:
|
|
27
30
|
- !ruby/object:Gem::Dependency
|
28
31
|
name: rake
|
29
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
30
34
|
requirements:
|
31
|
-
- - '>='
|
35
|
+
- - ! '>='
|
32
36
|
- !ruby/object:Gem::Version
|
33
37
|
version: '0'
|
34
38
|
type: :development
|
35
39
|
prerelease: false
|
36
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
37
42
|
requirements:
|
38
|
-
- - '>='
|
43
|
+
- - ! '>='
|
39
44
|
- !ruby/object:Gem::Version
|
40
45
|
version: '0'
|
41
46
|
- !ruby/object:Gem::Dependency
|
42
47
|
name: rspec
|
43
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
44
50
|
requirements:
|
45
|
-
- - '>='
|
51
|
+
- - ! '>='
|
46
52
|
- !ruby/object:Gem::Version
|
47
53
|
version: '0'
|
48
54
|
type: :development
|
49
55
|
prerelease: false
|
50
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
51
58
|
requirements:
|
52
|
-
- - '>='
|
59
|
+
- - ! '>='
|
53
60
|
- !ruby/object:Gem::Version
|
54
61
|
version: '0'
|
55
62
|
description: A collection of helper methods / extensions for Ruby
|
@@ -66,34 +73,38 @@ files:
|
|
66
73
|
- Rakefile
|
67
74
|
- lib/tfg_support.rb
|
68
75
|
- lib/tfg_support/deep_hash_accessor.rb
|
76
|
+
- lib/tfg_support/sequence.rb
|
69
77
|
- lib/tfg_support/version.rb
|
70
78
|
- spec/hash_spec.rb
|
79
|
+
- spec/sequence_spec.rb
|
71
80
|
- spec/spec_helper.rb
|
72
81
|
- tfg_support.gemspec
|
73
82
|
homepage: https://github.com/Amerdrix/TFG-support
|
74
83
|
licenses:
|
75
84
|
- MIT
|
76
|
-
metadata: {}
|
77
85
|
post_install_message:
|
78
86
|
rdoc_options: []
|
79
87
|
require_paths:
|
80
88
|
- lib
|
81
89
|
required_ruby_version: !ruby/object:Gem::Requirement
|
90
|
+
none: false
|
82
91
|
requirements:
|
83
|
-
- - '>='
|
92
|
+
- - ! '>='
|
84
93
|
- !ruby/object:Gem::Version
|
85
94
|
version: '0'
|
86
95
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
none: false
|
87
97
|
requirements:
|
88
|
-
- - '>='
|
98
|
+
- - ! '>='
|
89
99
|
- !ruby/object:Gem::Version
|
90
100
|
version: '0'
|
91
101
|
requirements: []
|
92
102
|
rubyforge_project:
|
93
|
-
rubygems_version:
|
103
|
+
rubygems_version: 1.8.25
|
94
104
|
signing_key:
|
95
|
-
specification_version:
|
105
|
+
specification_version: 3
|
96
106
|
summary: A collection of helper methods / extensions for Ruby
|
97
107
|
test_files:
|
98
108
|
- spec/hash_spec.rb
|
109
|
+
- spec/sequence_spec.rb
|
99
110
|
- spec/spec_helper.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: 5d2e74fe149cb3556dbb7838fcd794b6c366f20d
|
4
|
-
data.tar.gz: 69d75ea4414ca09562bed2a9b9c1d145af312c6f
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 8b537908f2b2a0dd8bf02398c7a1a6c21c438ce75fd06d2810655925cfeef978786765012c124bcdb4efa15e93c29f779dbcc44cc0ec4e88a9ae16d1b30d04b9
|
7
|
-
data.tar.gz: 5682ca8fde01317c4480373c635c2c4414809f70d419e56ed11a93837567d91056d03bb5fbce2a2083eba434ccc891aec7074d86f38894be10c5182f120a92aa
|