trick_bag 0.31.0 → 0.32.0

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/RELEASE_NOTES.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## v0.32.0
2
+
3
+ * Added timestamp, replace_with_timestamp in Formatters.
4
+
5
+
1
6
  ## v0.31.0
2
7
 
3
8
  * Added EndlessLastEnumerable.
@@ -47,7 +47,6 @@ class CompoundEnumerable
47
47
  end
48
48
 
49
49
 
50
-
51
50
  def initialize(mode, keys, *enumerables)
52
51
 
53
52
  validate_inputs = ->do
@@ -1,3 +1,5 @@
1
+ require 'date'
2
+
1
3
  module TrickBag
2
4
  module Formatters
3
5
 
@@ -49,6 +51,18 @@ module Formatters
49
51
  needs_modifying = string && string.size > 0 && string[-1] != "\n"
50
52
  needs_modifying ? "#{string}\n" : string
51
53
  end
54
+
55
+
56
+ def timestamp(datetime = DateTime.now)
57
+ datetime.strftime('%Y-%m-%d_%H-%M-%S')
58
+ end
59
+
60
+
61
+ # Replaces all occurrences of marker with the current date/time in
62
+ # YYYYMMDD-HHMMSS format.
63
+ def replace_with_timestamp(string, marker = '*', datetime = DateTime.now)
64
+ string.gsub(marker, timestamp(datetime))
65
+ end
52
66
  end
53
67
  end
54
68
 
@@ -1,7 +1,7 @@
1
1
  module TrickBag
2
2
  module Numeric
3
3
 
4
- # Counts the results of any resolver comparisons made.
4
+ # Supports multiple counts, each identified by a key.
5
5
  # Like a hash, but does not allow []=; increment is the only way to modify a value.
6
6
  class MultiCounter
7
7
 
@@ -1,3 +1,3 @@
1
1
  module TrickBag
2
- VERSION = "0.31.0"
2
+ VERSION = "0.32.0"
3
3
  end
@@ -1,5 +1,6 @@
1
1
  require_relative '../../spec_helper'
2
2
 
3
+ require 'date'
3
4
  require 'trick_bag/formatters/formatters'
4
5
 
5
6
  module TrickBag
@@ -57,5 +58,21 @@ describe Formatters do
57
58
  expect(Formatters.end_with_nl(3)).to eq("3\n")
58
59
  end
59
60
  end
61
+
62
+
63
+ context ".replace_with_timestamp" do
64
+
65
+ let(:a_date) { DateTime.new(2000, 1, 2, 15, 44, 37) }
66
+
67
+ specify "returns the correct string" do
68
+ s = Formatters.replace_with_timestamp('*', '*', a_date)
69
+ expect(s).to eq('2000-01-02_15-44-37')
70
+ #regex = /^\d\d\d\d-\d\d-\d\d-\d\d-\d\d-\d\d$/
71
+ #puts s
72
+ #expect(regex === s).to be_true
73
+ #
74
+ #
75
+ end
76
+ end
60
77
  end
61
78
  end
@@ -6,7 +6,7 @@ module Meta
6
6
 
7
7
  describe Classes do
8
8
 
9
- after(:each) { Classes.undef_class('ClassPatchTestClass') }
9
+ after(:each) { Classes.undef_class('ClassPatchTestClass', TrickBag::Meta) }
10
10
 
11
11
 
12
12
  ####################################################### class?
@@ -17,7 +17,7 @@ context 'class?' do
17
17
  expect(Classes.class?('String')).to be_true
18
18
  end
19
19
 
20
- it 'should recognize that RUBY_PLATFORM is defined but is not a class' do
20
+ it 'should recognize that RUBY_PLATFORM is not a class even though it is a defined constant' do
21
21
  expect(Classes.class?('RUBY_PLATFORM')).to be_false
22
22
  end
23
23
 
@@ -46,30 +46,17 @@ end
46
46
 
47
47
  context 'private_attr_reader' do
48
48
 
49
- after(:each) { Classes.undef_class('ClassPatchTestClass') }
50
-
51
49
  fn_create_class = ->do
52
50
  class ClassPatchTestClass
53
-
54
51
  extend Classes
55
-
56
52
  private_attr_reader :foo
57
-
58
- def initialize
59
- @foo = 123
60
- puts "foo = #{self.foo}"
61
- end
62
53
  end
63
54
  end
64
55
 
65
56
 
66
- it "should be visible inside the class" do
67
- expect(fn_create_class).not_to raise_error
68
- end
69
-
70
- it "should be invisible outside the class" do
57
+ it "should be a private method" do
71
58
  fn_create_class.()
72
- expect(->{ ClassPatchTestClass.new.foo }).to raise_error
59
+ expect(ClassPatchTestClass.private_method_defined?(:foo)).to be_true
73
60
  end
74
61
  end
75
62
 
@@ -80,27 +67,15 @@ end
80
67
 
81
68
  fn_create_class = ->do
82
69
  class ClassPatchTestClass
83
-
84
70
  extend Classes
85
-
86
71
  private_attr_writer :foo
87
-
88
- def initialize
89
- self.foo = 123
90
- end
91
72
  end
92
73
  end
93
74
 
94
-
95
- it "should be visible inside the class" do
96
- expect(fn_create_class).not_to raise_error
97
- end
98
-
99
- it "should be invisible outside the class" do
75
+ it "should be a private method" do
100
76
  fn_create_class.()
101
- expect(->{ ClassPatchTestClass.new.foo = 456}).to raise_error
77
+ expect(ClassPatchTestClass.private_method_defined?(:foo=)).to be_true
102
78
  end
103
-
104
79
  end
105
80
 
106
81
  ####################################################### private_attr_accessor
@@ -122,16 +97,11 @@ end
122
97
  end
123
98
 
124
99
 
125
- it "should be visible inside the class" do
126
- expect(fn_create_class).not_to raise_error
127
- end
128
-
129
- it "should be invisible outside the class" do
100
+ it "should be private reader and writer" do
130
101
  fn_create_class.()
131
- expect(->{ ClassPatchTestClass.new.foo = 456}).to raise_error
132
- expect(->{ ClassPatchTestClass.new.foo }).to raise_error
102
+ expect(ClassPatchTestClass.private_method_defined?(:foo)).to be_true
103
+ expect(ClassPatchTestClass.private_method_defined?(:foo=)).to be_true
133
104
  end
134
-
135
105
  end
136
106
 
137
107
 
@@ -154,56 +124,37 @@ end
154
124
  end
155
125
 
156
126
 
157
- it "should be readable and writable inside the class" do
158
- expect(fn_create_class).not_to raise_error
159
- end
160
-
161
- it "should be readable outside the class" do
127
+ it "should be a public reader" do
162
128
  fn_create_class.()
163
- expect(->{ ClassPatchTestClass.new.foo }).not_to raise_error
129
+ expect(ClassPatchTestClass.public_method_defined?(:foo)).to be_true
164
130
  end
165
131
 
166
- it "should not be writable outside the class" do
132
+ it "should be a private writer" do
167
133
  fn_create_class.()
168
- expect(->{ ClassPatchTestClass.new.foo = 456}).to raise_error
134
+ expect(ClassPatchTestClass.private_method_defined?(:foo=)).to be_true
169
135
  end
170
136
  end
171
137
 
138
+
172
139
  context 'attr_access(:private, :none, :foo)' do
173
140
 
174
141
  fn_create_class = ->do
175
142
  class ClassPatchTestClass
176
-
177
143
  extend Classes
178
-
179
144
  attr_access :private, :none, :foo
180
-
181
- def initialize
182
- @foo = 1
183
- self.foo
184
- end
185
145
  end
186
146
  end
187
147
 
188
-
189
- it "should be readable inside the class" do
190
- expect(fn_create_class).not_to raise_error
191
- end
192
-
193
-
194
- it "should not be readable outside the class" do
195
- fn_create_class.()
196
- expect(->{ ClassPatchTestClass.new.foo }).to raise_error
197
- end
198
-
199
- it "should not be readable outside the class" do
148
+ it "should be a private reader" do
200
149
  fn_create_class.()
201
- expect(->{ ClassPatchTestClass.new.foo }).to raise_error
150
+ expect(ClassPatchTestClass.private_method_defined?(:foo)).to be_true
202
151
  end
203
152
 
204
- it "should not be writable outside the class" do
153
+ it 'should not contain a writer at all' do
205
154
  fn_create_class.()
206
- expect(->{ ClassPatchTestClass.new.foo = 456}).to raise_error
155
+ expect(ClassPatchTestClass.private_method_defined?(:foo=)).to be_false
156
+ expect(ClassPatchTestClass.protected_method_defined?(:foo=)).to be_false
157
+ expect(ClassPatchTestClass.public_method_defined?(:foo=)).to be_false
207
158
  end
208
159
  end
209
160
  end
@@ -14,20 +14,20 @@ module TrickBag
14
14
  expect(->{ Operators.multi_eq(1) }).to raise_error
15
15
  end
16
16
 
17
- test_for = ->(true_or_false, *values) do
17
+ test_return_value = ->(true_or_false, *values) do
18
18
  specify "that #{values.map(&:to_s).join(', ')} returns #{true_or_false}}" do
19
- expect(Operators.multi_eq(*values)).to eq(true_or_false)
19
+ expect(Operators.multi_eq(*values)).to eq(true_or_false)
20
20
  end
21
21
  end
22
22
 
23
- test_for.(true, 12, 12)
24
- test_for.(false, 0, 12)
25
- test_for.(true, :foo, :foo, :foo)
26
- test_for.(false, :bar, :foo, :foo)
27
- test_for.(false, :foo, :bar, :foo)
28
- test_for.(false, :foo, :foo, :bar)
29
- test_for.(true, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7)
30
- test_for.(false, 7, 7, 7, 7, 7, 9999, 7, 7, 7, 7, 7)
23
+ test_return_value.(true, 12, 12)
24
+ test_return_value.(false, 0, 12)
25
+ test_return_value.(true, :foo, :foo, :foo)
26
+ test_return_value.(false, :bar, :foo, :foo)
27
+ test_return_value.(false, :foo, :bar, :foo)
28
+ test_return_value.(false, :foo, :foo, :bar)
29
+ test_return_value.(true, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7)
30
+ test_return_value.(false, 7, 7, 7, 7, 7, 9999, 7, 7, 7, 7, 7)
31
31
  end
32
32
  end
33
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trick_bag
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.31.0
4
+ version: 0.32.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-03-05 00:00:00.000000000 Z
12
+ date: 2014-03-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: vrsn-ie-dnsruby