mercadopago-custom-checkout 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gs/bin/rake +12 -8
- data/.gs/specifications/rake-10.5.0.gemspec +24 -28
- data/.tool-versions +1 -0
- data/lib/mercadopago/custom_checkout/version.rb +1 -1
- data/mercadopago-custom-checkout.gemspec +3 -3
- metadata +14 -125
- data/.gs/cache/faraday-0.9.2.gem +0 -0
- data/.gs/cache/minitest-5.9.0.gem +0 -0
- data/.gs/cache/multi_json-1.12.1.gem +0 -0
- data/.gs/cache/multipart-post-2.0.0.gem +0 -0
- data/.gs/gems/faraday-0.9.2/LICENSE.md +0 -20
- data/.gs/gems/faraday-0.9.2/README.md +0 -245
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/em_http.rb +0 -237
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/em_http_ssl_patch.rb +0 -56
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/em_synchrony/parallel_manager.rb +0 -66
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/em_synchrony.rb +0 -100
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/excon.rb +0 -81
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/httpclient.rb +0 -117
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/net_http.rb +0 -130
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/net_http_persistent.rb +0 -49
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/patron.rb +0 -78
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/rack.rb +0 -58
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/test.rb +0 -162
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter/typhoeus.rb +0 -123
- data/.gs/gems/faraday-0.9.2/lib/faraday/adapter.rb +0 -46
- data/.gs/gems/faraday-0.9.2/lib/faraday/autoload.rb +0 -84
- data/.gs/gems/faraday-0.9.2/lib/faraday/connection.rb +0 -437
- data/.gs/gems/faraday-0.9.2/lib/faraday/error.rb +0 -53
- data/.gs/gems/faraday-0.9.2/lib/faraday/middleware.rb +0 -37
- data/.gs/gems/faraday-0.9.2/lib/faraday/options.rb +0 -359
- data/.gs/gems/faraday-0.9.2/lib/faraday/parameters.rb +0 -197
- data/.gs/gems/faraday-0.9.2/lib/faraday/rack_builder.rb +0 -213
- data/.gs/gems/faraday-0.9.2/lib/faraday/request/authorization.rb +0 -42
- data/.gs/gems/faraday-0.9.2/lib/faraday/request/basic_authentication.rb +0 -13
- data/.gs/gems/faraday-0.9.2/lib/faraday/request/instrumentation.rb +0 -36
- data/.gs/gems/faraday-0.9.2/lib/faraday/request/multipart.rb +0 -63
- data/.gs/gems/faraday-0.9.2/lib/faraday/request/retry.rb +0 -154
- data/.gs/gems/faraday-0.9.2/lib/faraday/request/token_authentication.rb +0 -15
- data/.gs/gems/faraday-0.9.2/lib/faraday/request/url_encoded.rb +0 -36
- data/.gs/gems/faraday-0.9.2/lib/faraday/request.rb +0 -92
- data/.gs/gems/faraday-0.9.2/lib/faraday/response/logger.rb +0 -59
- data/.gs/gems/faraday-0.9.2/lib/faraday/response/raise_error.rb +0 -21
- data/.gs/gems/faraday-0.9.2/lib/faraday/response.rb +0 -93
- data/.gs/gems/faraday-0.9.2/lib/faraday/upload_io.rb +0 -67
- data/.gs/gems/faraday-0.9.2/lib/faraday/utils.rb +0 -309
- data/.gs/gems/faraday-0.9.2/lib/faraday.rb +0 -268
- data/.gs/gems/minitest-5.9.0/.autotest +0 -34
- data/.gs/gems/minitest-5.9.0/History.rdoc +0 -1176
- data/.gs/gems/minitest-5.9.0/Manifest.txt +0 -26
- data/.gs/gems/minitest-5.9.0/README.rdoc +0 -656
- data/.gs/gems/minitest-5.9.0/Rakefile +0 -72
- data/.gs/gems/minitest-5.9.0/design_rationale.rb +0 -52
- data/.gs/gems/minitest-5.9.0/lib/hoe/minitest.rb +0 -26
- data/.gs/gems/minitest-5.9.0/lib/minitest/assertions.rb +0 -674
- data/.gs/gems/minitest-5.9.0/lib/minitest/autorun.rb +0 -13
- data/.gs/gems/minitest-5.9.0/lib/minitest/benchmark.rb +0 -424
- data/.gs/gems/minitest-5.9.0/lib/minitest/expectations.rb +0 -284
- data/.gs/gems/minitest-5.9.0/lib/minitest/hell.rb +0 -17
- data/.gs/gems/minitest-5.9.0/lib/minitest/mock.rb +0 -232
- data/.gs/gems/minitest-5.9.0/lib/minitest/parallel.rb +0 -69
- data/.gs/gems/minitest-5.9.0/lib/minitest/pride.rb +0 -4
- data/.gs/gems/minitest-5.9.0/lib/minitest/pride_plugin.rb +0 -142
- data/.gs/gems/minitest-5.9.0/lib/minitest/spec.rb +0 -331
- data/.gs/gems/minitest-5.9.0/lib/minitest/test.rb +0 -284
- data/.gs/gems/minitest-5.9.0/lib/minitest/unit.rb +0 -45
- data/.gs/gems/minitest-5.9.0/lib/minitest.rb +0 -815
- data/.gs/gems/minitest-5.9.0/test/minitest/metametameta.rb +0 -90
- data/.gs/gems/minitest-5.9.0/test/minitest/test_minitest_benchmark.rb +0 -137
- data/.gs/gems/minitest-5.9.0/test/minitest/test_minitest_mock.rb +0 -512
- data/.gs/gems/minitest-5.9.0/test/minitest/test_minitest_reporter.rb +0 -281
- data/.gs/gems/minitest-5.9.0/test/minitest/test_minitest_spec.rb +0 -967
- data/.gs/gems/minitest-5.9.0/test/minitest/test_minitest_test.rb +0 -1983
- data/.gs/gems/multi_json-1.12.1/CHANGELOG.md +0 -245
- data/.gs/gems/multi_json-1.12.1/CONTRIBUTING.md +0 -46
- data/.gs/gems/multi_json-1.12.1/LICENSE.md +0 -20
- data/.gs/gems/multi_json-1.12.1/README.md +0 -121
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapter.rb +0 -49
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapter_error.rb +0 -15
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/gson.rb +0 -20
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/jr_jackson.rb +0 -25
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/json_common.rb +0 -23
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/json_gem.rb +0 -11
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/json_pure.rb +0 -11
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/nsjsonserialization.rb +0 -32
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/oj.rb +0 -25
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/ok_json.rb +0 -23
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/adapters/yajl.rb +0 -19
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/convertible_hash_keys.rb +0 -43
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/options.rb +0 -39
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/options_cache.rb +0 -29
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/parse_error.rb +0 -17
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/vendor/okjson.rb +0 -606
- data/.gs/gems/multi_json-1.12.1/lib/multi_json/version.rb +0 -17
- data/.gs/gems/multi_json-1.12.1/lib/multi_json.rb +0 -161
- data/.gs/gems/multi_json-1.12.1/multi_json.gemspec +0 -20
- data/.gs/gems/multipart-post-2.0.0/.gitignore +0 -6
- data/.gs/gems/multipart-post-2.0.0/.travis.yml +0 -7
- data/.gs/gems/multipart-post-2.0.0/Gemfile +0 -14
- data/.gs/gems/multipart-post-2.0.0/History.txt +0 -60
- data/.gs/gems/multipart-post-2.0.0/Manifest.txt +0 -9
- data/.gs/gems/multipart-post-2.0.0/README.md +0 -77
- data/.gs/gems/multipart-post-2.0.0/Rakefile +0 -9
- data/.gs/gems/multipart-post-2.0.0/lib/composite_io.rb +0 -108
- data/.gs/gems/multipart-post-2.0.0/lib/multipart_post.rb +0 -9
- data/.gs/gems/multipart-post-2.0.0/lib/multipartable.rb +0 -29
- data/.gs/gems/multipart-post-2.0.0/lib/net/http/post/multipart.rb +0 -27
- data/.gs/gems/multipart-post-2.0.0/lib/parts.rb +0 -96
- data/.gs/gems/multipart-post-2.0.0/multipart-post.gemspec +0 -22
- data/.gs/gems/multipart-post-2.0.0/test/multibyte.txt +0 -1
- data/.gs/gems/multipart-post-2.0.0/test/net/http/post/test_multipart.rb +0 -110
- data/.gs/gems/multipart-post-2.0.0/test/test_composite_io.rb +0 -115
- data/.gs/gems/multipart-post-2.0.0/test/test_parts.rb +0 -86
- data/.gs/specifications/faraday-0.9.2.gemspec +0 -31
- data/.gs/specifications/minitest-5.9.0.gemspec +0 -39
- data/.gs/specifications/multi_json-1.12.1.gemspec +0 -33
- data/.gs/specifications/multipart-post-2.0.0.gemspec +0 -22
- data/.ruby-version +0 -1
@@ -1,232 +0,0 @@
|
|
1
|
-
class MockExpectationError < StandardError; end # :nodoc:
|
2
|
-
|
3
|
-
module Minitest # :nodoc:
|
4
|
-
|
5
|
-
##
|
6
|
-
# A simple and clean mock object framework.
|
7
|
-
#
|
8
|
-
# All mock objects are an instance of Mock
|
9
|
-
|
10
|
-
class Mock
|
11
|
-
alias :__respond_to? :respond_to?
|
12
|
-
|
13
|
-
overridden_methods = %w[
|
14
|
-
===
|
15
|
-
class
|
16
|
-
inspect
|
17
|
-
instance_eval
|
18
|
-
instance_variables
|
19
|
-
object_id
|
20
|
-
public_send
|
21
|
-
respond_to_missing?
|
22
|
-
send
|
23
|
-
to_s
|
24
|
-
]
|
25
|
-
|
26
|
-
instance_methods.each do |m|
|
27
|
-
undef_method m unless overridden_methods.include?(m.to_s) || m =~ /^__/
|
28
|
-
end
|
29
|
-
|
30
|
-
overridden_methods.map(&:to_sym).each do |method_id|
|
31
|
-
define_method method_id do |*args, &b|
|
32
|
-
if @expected_calls.key? method_id then
|
33
|
-
method_missing(method_id, *args, &b)
|
34
|
-
else
|
35
|
-
super(*args, &b)
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def initialize(delegator = nil) # :nodoc:
|
41
|
-
@delegator = delegator
|
42
|
-
@expected_calls = Hash.new { |calls, name| calls[name] = [] }
|
43
|
-
@actual_calls = Hash.new { |calls, name| calls[name] = [] }
|
44
|
-
end
|
45
|
-
|
46
|
-
##
|
47
|
-
# Expect that method +name+ is called, optionally with +args+ or a
|
48
|
-
# +blk+, and returns +retval+.
|
49
|
-
#
|
50
|
-
# @mock.expect(:meaning_of_life, 42)
|
51
|
-
# @mock.meaning_of_life # => 42
|
52
|
-
#
|
53
|
-
# @mock.expect(:do_something_with, true, [some_obj, true])
|
54
|
-
# @mock.do_something_with(some_obj, true) # => true
|
55
|
-
#
|
56
|
-
# @mock.expect(:do_something_else, true) do |a1, a2|
|
57
|
-
# a1 == "buggs" && a2 == :bunny
|
58
|
-
# end
|
59
|
-
#
|
60
|
-
# +args+ is compared to the expected args using case equality (ie, the
|
61
|
-
# '===' operator), allowing for less specific expectations.
|
62
|
-
#
|
63
|
-
# @mock.expect(:uses_any_string, true, [String])
|
64
|
-
# @mock.uses_any_string("foo") # => true
|
65
|
-
# @mock.verify # => true
|
66
|
-
#
|
67
|
-
# @mock.expect(:uses_one_string, true, ["foo"])
|
68
|
-
# @mock.uses_one_string("bar") # => raises MockExpectationError
|
69
|
-
|
70
|
-
def expect(name, retval, args = [], &blk)
|
71
|
-
name = name.to_sym
|
72
|
-
|
73
|
-
if block_given?
|
74
|
-
raise ArgumentError, "args ignored when block given" unless args.empty?
|
75
|
-
@expected_calls[name] << { :retval => retval, :block => blk }
|
76
|
-
else
|
77
|
-
raise ArgumentError, "args must be an array" unless Array === args
|
78
|
-
@expected_calls[name] << { :retval => retval, :args => args }
|
79
|
-
end
|
80
|
-
self
|
81
|
-
end
|
82
|
-
|
83
|
-
def __call name, data # :nodoc:
|
84
|
-
case data
|
85
|
-
when Hash then
|
86
|
-
"#{name}(#{data[:args].inspect[1..-2]}) => #{data[:retval].inspect}"
|
87
|
-
else
|
88
|
-
data.map { |d| __call name, d }.join ", "
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
##
|
93
|
-
# Verify that all methods were called as expected. Raises
|
94
|
-
# +MockExpectationError+ if the mock object was not called as
|
95
|
-
# expected.
|
96
|
-
|
97
|
-
def verify
|
98
|
-
@expected_calls.each do |name, expected|
|
99
|
-
actual = @actual_calls.fetch(name, nil)
|
100
|
-
raise MockExpectationError, "expected #{__call name, expected[0]}" unless actual
|
101
|
-
raise MockExpectationError, "expected #{__call name, expected[actual.size]}, got [#{__call name, actual}]" if
|
102
|
-
actual.size < expected.size
|
103
|
-
end
|
104
|
-
true
|
105
|
-
end
|
106
|
-
|
107
|
-
def method_missing(sym, *args, &block) # :nodoc:
|
108
|
-
unless @expected_calls.key?(sym) then
|
109
|
-
if @delegator && @delegator.respond_to?(sym)
|
110
|
-
return @delegator.public_send(sym, *args, &block)
|
111
|
-
else
|
112
|
-
raise NoMethodError, "unmocked method %p, expected one of %p" %
|
113
|
-
[sym, @expected_calls.keys.sort_by(&:to_s)]
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
index = @actual_calls[sym].length
|
118
|
-
expected_call = @expected_calls[sym][index]
|
119
|
-
|
120
|
-
unless expected_call then
|
121
|
-
raise MockExpectationError, "No more expects available for %p: %p" %
|
122
|
-
[sym, args]
|
123
|
-
end
|
124
|
-
|
125
|
-
expected_args, retval, val_block =
|
126
|
-
expected_call.values_at(:args, :retval, :block)
|
127
|
-
|
128
|
-
if val_block then
|
129
|
-
# keep "verify" happy
|
130
|
-
@actual_calls[sym] << expected_call
|
131
|
-
|
132
|
-
raise MockExpectationError, "mocked method %p failed block w/ %p" %
|
133
|
-
[sym, args] unless val_block.call(*args, &block)
|
134
|
-
|
135
|
-
return retval
|
136
|
-
end
|
137
|
-
|
138
|
-
if expected_args.size != args.size then
|
139
|
-
raise ArgumentError, "mocked method %p expects %d arguments, got %d" %
|
140
|
-
[sym, expected_args.size, args.size]
|
141
|
-
end
|
142
|
-
|
143
|
-
zipped_args = expected_args.zip(args)
|
144
|
-
fully_matched = zipped_args.all? { |mod, a|
|
145
|
-
mod === a or mod == a
|
146
|
-
}
|
147
|
-
|
148
|
-
unless fully_matched then
|
149
|
-
raise MockExpectationError, "mocked method %p called with unexpected arguments %p" %
|
150
|
-
[sym, args]
|
151
|
-
end
|
152
|
-
|
153
|
-
@actual_calls[sym] << {
|
154
|
-
:retval => retval,
|
155
|
-
:args => zipped_args.map! { |mod, a| mod === a ? mod : a },
|
156
|
-
}
|
157
|
-
|
158
|
-
retval
|
159
|
-
end
|
160
|
-
|
161
|
-
def respond_to?(sym, include_private = false) # :nodoc:
|
162
|
-
return true if @expected_calls.key? sym.to_sym
|
163
|
-
return true if @delegator && @delegator.respond_to?(sym, include_private)
|
164
|
-
__respond_to?(sym, include_private)
|
165
|
-
end
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
module Minitest::Assertions
|
170
|
-
##
|
171
|
-
# Assert that the mock verifies correctly.
|
172
|
-
|
173
|
-
def assert_mock mock
|
174
|
-
assert mock.verify
|
175
|
-
end
|
176
|
-
end
|
177
|
-
|
178
|
-
##
|
179
|
-
# Object extensions for Minitest::Mock.
|
180
|
-
|
181
|
-
class Object
|
182
|
-
|
183
|
-
##
|
184
|
-
# Add a temporary stubbed method replacing +name+ for the duration
|
185
|
-
# of the +block+. If +val_or_callable+ responds to #call, then it
|
186
|
-
# returns the result of calling it, otherwise returns the value
|
187
|
-
# as-is. If stubbed method yields a block, +block_args+ will be
|
188
|
-
# passed along. Cleans up the stub at the end of the +block+. The
|
189
|
-
# method +name+ must exist before stubbing.
|
190
|
-
#
|
191
|
-
# def test_stale_eh
|
192
|
-
# obj_under_test = Something.new
|
193
|
-
# refute obj_under_test.stale?
|
194
|
-
#
|
195
|
-
# Time.stub :now, Time.at(0) do
|
196
|
-
# assert obj_under_test.stale?
|
197
|
-
# end
|
198
|
-
# end
|
199
|
-
#
|
200
|
-
|
201
|
-
def stub name, val_or_callable, *block_args
|
202
|
-
new_name = "__minitest_stub__#{name}"
|
203
|
-
|
204
|
-
metaclass = class << self; self; end
|
205
|
-
|
206
|
-
if respond_to? name and not methods.map(&:to_s).include? name.to_s then
|
207
|
-
metaclass.send :define_method, name do |*args|
|
208
|
-
super(*args)
|
209
|
-
end
|
210
|
-
end
|
211
|
-
|
212
|
-
metaclass.send :alias_method, new_name, name
|
213
|
-
|
214
|
-
metaclass.send :define_method, name do |*args, &blk|
|
215
|
-
ret = if val_or_callable.respond_to? :call then
|
216
|
-
val_or_callable.call(*args)
|
217
|
-
else
|
218
|
-
val_or_callable
|
219
|
-
end
|
220
|
-
|
221
|
-
blk.call(*block_args) if blk
|
222
|
-
|
223
|
-
ret
|
224
|
-
end
|
225
|
-
|
226
|
-
yield self
|
227
|
-
ensure
|
228
|
-
metaclass.send :undef_method, name
|
229
|
-
metaclass.send :alias_method, name, new_name
|
230
|
-
metaclass.send :undef_method, new_name
|
231
|
-
end
|
232
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
module Minitest
|
2
|
-
module Parallel
|
3
|
-
|
4
|
-
##
|
5
|
-
# The engine used to run multiple tests in parallel.
|
6
|
-
|
7
|
-
class Executor
|
8
|
-
|
9
|
-
##
|
10
|
-
# The size of the pool of workers.
|
11
|
-
|
12
|
-
attr_reader :size
|
13
|
-
|
14
|
-
##
|
15
|
-
# Create a parallel test executor of with +size+ workers.
|
16
|
-
|
17
|
-
def initialize size
|
18
|
-
@size = size
|
19
|
-
@queue = Queue.new
|
20
|
-
@pool = nil
|
21
|
-
end
|
22
|
-
|
23
|
-
##
|
24
|
-
# Start the executor
|
25
|
-
|
26
|
-
def start
|
27
|
-
@pool = size.times.map {
|
28
|
-
Thread.new(@queue) do |queue|
|
29
|
-
Thread.current.abort_on_exception = true
|
30
|
-
while (job = queue.pop)
|
31
|
-
klass, method, reporter = job
|
32
|
-
result = Minitest.run_one_method klass, method
|
33
|
-
reporter.synchronize { reporter.record result }
|
34
|
-
end
|
35
|
-
end
|
36
|
-
}
|
37
|
-
end
|
38
|
-
|
39
|
-
##
|
40
|
-
# Add a job to the queue
|
41
|
-
|
42
|
-
def << work; @queue << work; end
|
43
|
-
|
44
|
-
##
|
45
|
-
# Shuts down the pool of workers by signalling them to quit and
|
46
|
-
# waiting for them all to finish what they're currently working
|
47
|
-
# on.
|
48
|
-
|
49
|
-
def shutdown
|
50
|
-
size.times { @queue << nil }
|
51
|
-
@pool.each(&:join)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
module Test
|
56
|
-
def _synchronize; Minitest::Test.io_lock.synchronize { yield }; end # :nodoc:
|
57
|
-
|
58
|
-
module ClassMethods # :nodoc:
|
59
|
-
def run_one_method klass, method_name, reporter
|
60
|
-
Minitest.parallel_executor << [klass, method_name, reporter]
|
61
|
-
end
|
62
|
-
|
63
|
-
def test_order
|
64
|
-
:parallel
|
65
|
-
end
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
@@ -1,142 +0,0 @@
|
|
1
|
-
require "minitest"
|
2
|
-
|
3
|
-
module Minitest
|
4
|
-
def self.plugin_pride_options opts, _options # :nodoc:
|
5
|
-
opts.on "-p", "--pride", "Pride. Show your testing pride!" do
|
6
|
-
PrideIO.pride!
|
7
|
-
end
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.plugin_pride_init options # :nodoc:
|
11
|
-
if PrideIO.pride? then
|
12
|
-
klass = ENV["TERM"] =~ /^xterm|-256color$/ ? PrideLOL : PrideIO
|
13
|
-
io = klass.new options[:io]
|
14
|
-
|
15
|
-
self.reporter.reporters.grep(Minitest::Reporter).each do |rep|
|
16
|
-
rep.io = io if rep.io.tty?
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
##
|
22
|
-
# Show your testing pride!
|
23
|
-
|
24
|
-
class PrideIO
|
25
|
-
##
|
26
|
-
# Activate the pride plugin. Called from both -p option and minitest/pride
|
27
|
-
|
28
|
-
def self.pride!
|
29
|
-
@pride = true
|
30
|
-
end
|
31
|
-
|
32
|
-
##
|
33
|
-
# Are we showing our testing pride?
|
34
|
-
|
35
|
-
def self.pride?
|
36
|
-
@pride ||= false
|
37
|
-
end
|
38
|
-
|
39
|
-
# Start an escape sequence
|
40
|
-
ESC = "\e["
|
41
|
-
|
42
|
-
# End the escape sequence
|
43
|
-
NND = "#{ESC}0m"
|
44
|
-
|
45
|
-
# The IO we're going to pipe through.
|
46
|
-
attr_reader :io
|
47
|
-
|
48
|
-
def initialize io # :nodoc:
|
49
|
-
@io = io
|
50
|
-
# stolen from /System/Library/Perl/5.10.0/Term/ANSIColor.pm
|
51
|
-
# also reference http://en.wikipedia.org/wiki/ANSI_escape_code
|
52
|
-
@colors ||= (31..36).to_a
|
53
|
-
@size = @colors.size
|
54
|
-
@index = 0
|
55
|
-
end
|
56
|
-
|
57
|
-
##
|
58
|
-
# Wrap print to colorize the output.
|
59
|
-
|
60
|
-
def print o
|
61
|
-
case o
|
62
|
-
when "." then
|
63
|
-
io.print pride o
|
64
|
-
when "E", "F" then
|
65
|
-
io.print "#{ESC}41m#{ESC}37m#{o}#{NND}"
|
66
|
-
when "S" then
|
67
|
-
io.print pride o
|
68
|
-
else
|
69
|
-
io.print o
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
def puts(*o) # :nodoc:
|
74
|
-
o.map! { |s|
|
75
|
-
s.to_s.sub(/Finished/) {
|
76
|
-
@index = 0
|
77
|
-
"Fabulous run".split(//).map { |c|
|
78
|
-
pride(c)
|
79
|
-
}.join
|
80
|
-
}
|
81
|
-
}
|
82
|
-
|
83
|
-
io.puts(*o)
|
84
|
-
end
|
85
|
-
|
86
|
-
##
|
87
|
-
# Color a string.
|
88
|
-
|
89
|
-
def pride string
|
90
|
-
string = "*" if string == "."
|
91
|
-
c = @colors[@index % @size]
|
92
|
-
@index += 1
|
93
|
-
"#{ESC}#{c}m#{string}#{NND}"
|
94
|
-
end
|
95
|
-
|
96
|
-
def method_missing msg, *args # :nodoc:
|
97
|
-
io.send(msg, *args)
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
##
|
102
|
-
# If you thought the PrideIO was colorful...
|
103
|
-
#
|
104
|
-
# (Inspired by lolcat, but with clean math)
|
105
|
-
|
106
|
-
class PrideLOL < PrideIO
|
107
|
-
PI_3 = Math::PI / 3 # :nodoc:
|
108
|
-
|
109
|
-
def initialize io # :nodoc:
|
110
|
-
# walk red, green, and blue around a circle separated by equal thirds.
|
111
|
-
#
|
112
|
-
# To visualize, type this into wolfram-alpha:
|
113
|
-
#
|
114
|
-
# plot (3*sin(x)+3), (3*sin(x+2*pi/3)+3), (3*sin(x+4*pi/3)+3)
|
115
|
-
|
116
|
-
# 6 has wide pretty gradients. 3 == lolcat, about half the width
|
117
|
-
@colors = (0...(6 * 7)).map { |n|
|
118
|
-
n *= 1.0 / 6
|
119
|
-
r = (3 * Math.sin(n ) + 3).to_i
|
120
|
-
g = (3 * Math.sin(n + 2 * PI_3) + 3).to_i
|
121
|
-
b = (3 * Math.sin(n + 4 * PI_3) + 3).to_i
|
122
|
-
|
123
|
-
# Then we take rgb and encode them in a single number using base 6.
|
124
|
-
# For some mysterious reason, we add 16... to clear the bottom 4 bits?
|
125
|
-
# Yes... they're ugly.
|
126
|
-
|
127
|
-
36 * r + 6 * g + b + 16
|
128
|
-
}
|
129
|
-
|
130
|
-
super
|
131
|
-
end
|
132
|
-
|
133
|
-
##
|
134
|
-
# Make the string even more colorful. Damnit.
|
135
|
-
|
136
|
-
def pride string
|
137
|
-
c = @colors[@index % @size]
|
138
|
-
@index += 1
|
139
|
-
"#{ESC}38;5;#{c}m#{string}#{NND}"
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|