crusade 0.0.1 → 0.7.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/.gitignore +2 -0
- data/.travis.yml +10 -0
- data/Gemfile.lock +24 -1
- data/Rakefile +7 -0
- data/crusade.gemspec +4 -0
- data/lib/crusade/logger.rb +67 -0
- data/lib/crusade/null_logger.rb +40 -0
- data/lib/crusade/version.rb +1 -1
- data/test/support/fake_logger.rb +20 -0
- data/test/test_helper.rb +13 -0
- data/test/unit/logger_test.rb +72 -0
- data/test/unit/null_logger_test.rb +79 -0
- metadata +97 -10
- checksums.yaml +0 -7
data/.gitignore
CHANGED
data/.travis.yml
ADDED
data/Gemfile.lock
CHANGED
@@ -1,17 +1,40 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
crusade (0.0
|
4
|
+
crusade (0.7.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
+
coveralls (0.7.0)
|
10
|
+
multi_json (~> 1.3)
|
11
|
+
rest-client
|
12
|
+
simplecov (>= 0.7)
|
13
|
+
term-ansicolor
|
14
|
+
thor
|
15
|
+
mime-types (1.25)
|
16
|
+
minitest (5.0.7)
|
17
|
+
minitest-great_expectations (0.0.5)
|
18
|
+
multi_json (1.8.0)
|
9
19
|
rake (10.1.0)
|
20
|
+
rest-client (1.6.7)
|
21
|
+
mime-types (>= 1.16)
|
22
|
+
simplecov (0.7.1)
|
23
|
+
multi_json (~> 1.0)
|
24
|
+
simplecov-html (~> 0.7.1)
|
25
|
+
simplecov-html (0.7.1)
|
26
|
+
term-ansicolor (1.2.2)
|
27
|
+
tins (~> 0.8)
|
28
|
+
thor (0.18.1)
|
29
|
+
tins (0.10.0)
|
10
30
|
|
11
31
|
PLATFORMS
|
12
32
|
ruby
|
13
33
|
|
14
34
|
DEPENDENCIES
|
15
35
|
bundler (~> 1.3)
|
36
|
+
coveralls
|
16
37
|
crusade!
|
38
|
+
minitest (~> 5.0.7)
|
39
|
+
minitest-great_expectations (~> 0.0.5)
|
17
40
|
rake
|
data/Rakefile
CHANGED
data/crusade.gemspec
CHANGED
@@ -20,4 +20,8 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_development_dependency "bundler", "~> 1.3"
|
22
22
|
spec.add_development_dependency "rake"
|
23
|
+
spec.add_development_dependency "minitest", "~> 5.0.7"
|
24
|
+
spec.add_development_dependency "minitest-great_expectations", "~> 0.0.5"
|
25
|
+
spec.add_development_dependency "rake"
|
26
|
+
spec.add_development_dependency "coveralls"
|
23
27
|
end
|
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'crusade/null_logger'
|
2
|
+
|
3
|
+
module Crusade
|
4
|
+
module Logger
|
5
|
+
module_function
|
6
|
+
|
7
|
+
def logger
|
8
|
+
log = Crusade::Logger.instance_variable_get "@logger"
|
9
|
+
unless log
|
10
|
+
log = Crusade::Logger.logger = Crusade::NullLogger.new
|
11
|
+
end
|
12
|
+
log
|
13
|
+
end
|
14
|
+
|
15
|
+
def logger= logger
|
16
|
+
Crusade::Logger.instance_variable_set "@logger", logger
|
17
|
+
end
|
18
|
+
|
19
|
+
def debug message
|
20
|
+
logger.debug caller.first do message end
|
21
|
+
end
|
22
|
+
|
23
|
+
def debug?
|
24
|
+
logger.debug?
|
25
|
+
end
|
26
|
+
|
27
|
+
def error message
|
28
|
+
logger.error caller.first do message end
|
29
|
+
end
|
30
|
+
|
31
|
+
def error?
|
32
|
+
logger.error?
|
33
|
+
end
|
34
|
+
|
35
|
+
def fatal message
|
36
|
+
logger.fatal caller.first do message end
|
37
|
+
end
|
38
|
+
|
39
|
+
def fatal?
|
40
|
+
logger.fatal?
|
41
|
+
end
|
42
|
+
|
43
|
+
def info message
|
44
|
+
logger.info caller.first do message end
|
45
|
+
end
|
46
|
+
|
47
|
+
def info?
|
48
|
+
logger.info?
|
49
|
+
end
|
50
|
+
|
51
|
+
def log message
|
52
|
+
logger.log caller.first do message end
|
53
|
+
end
|
54
|
+
|
55
|
+
def unknown message
|
56
|
+
logger.unknown caller.first do message end
|
57
|
+
end
|
58
|
+
|
59
|
+
def warn message
|
60
|
+
logger.warn caller.first do message end
|
61
|
+
end
|
62
|
+
|
63
|
+
def warn?
|
64
|
+
logger.warn?
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
|
2
|
+
module Crusade
|
3
|
+
class NullLogger
|
4
|
+
LEVELS = %w(debug info warn error fatal)
|
5
|
+
|
6
|
+
def initialize(*args)
|
7
|
+
end
|
8
|
+
|
9
|
+
def << message
|
10
|
+
end
|
11
|
+
|
12
|
+
LEVELS.each do |level|
|
13
|
+
define_method "#{level}?" do
|
14
|
+
false
|
15
|
+
end
|
16
|
+
|
17
|
+
define_method level do |*args|
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def log(*args)
|
22
|
+
end
|
23
|
+
|
24
|
+
def unknown(*args)
|
25
|
+
end
|
26
|
+
|
27
|
+
def datetime_format
|
28
|
+
''
|
29
|
+
end
|
30
|
+
|
31
|
+
def datetime_format= format
|
32
|
+
end
|
33
|
+
|
34
|
+
def add(*args)
|
35
|
+
end
|
36
|
+
|
37
|
+
def close(*args)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/crusade/version.rb
CHANGED
@@ -0,0 +1,20 @@
|
|
1
|
+
|
2
|
+
class FakeLogger
|
3
|
+
attr_reader :commands
|
4
|
+
|
5
|
+
def initialize
|
6
|
+
@commands = []
|
7
|
+
end
|
8
|
+
|
9
|
+
def method_missing(meth, *args, &block)
|
10
|
+
@commands << { command: meth, args: args, block: block }
|
11
|
+
end
|
12
|
+
|
13
|
+
def last_command
|
14
|
+
@commands.last
|
15
|
+
end
|
16
|
+
|
17
|
+
def clear
|
18
|
+
@commands = []
|
19
|
+
end
|
20
|
+
end
|
data/test/test_helper.rb
ADDED
@@ -0,0 +1,72 @@
|
|
1
|
+
require File.expand_path '../../test_helper.rb', __FILE__
|
2
|
+
|
3
|
+
require 'crusade/logger'
|
4
|
+
require 'fake_logger'
|
5
|
+
|
6
|
+
class ToTestLogger
|
7
|
+
include Crusade::Logger
|
8
|
+
end
|
9
|
+
|
10
|
+
describe Crusade::Logger do
|
11
|
+
let(:fake_logger) { FakeLogger.new }
|
12
|
+
|
13
|
+
describe 'instance methods' do
|
14
|
+
before { Crusade::Logger.logger = fake_logger }
|
15
|
+
|
16
|
+
subject { ToTestLogger.new }
|
17
|
+
let(:log_command) { fake_logger.last_command }
|
18
|
+
let(:to_log) { 'to log' }
|
19
|
+
|
20
|
+
it 'gets the logger' do
|
21
|
+
Crusade::Logger.logger.must_be_same_as fake_logger
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'sets a default logger' do
|
25
|
+
Crusade::Logger.logger = nil
|
26
|
+
|
27
|
+
|
28
|
+
Crusade::Logger.logger.is_a?(Crusade::NullLogger).must_be_true
|
29
|
+
end
|
30
|
+
|
31
|
+
%w(debug info warn error fatal unknown).each do |method|
|
32
|
+
it "delegate the #{method} call to the logger" do
|
33
|
+
subject.send(method, to_log)
|
34
|
+
|
35
|
+
log_command[:command].must_equal method.to_sym
|
36
|
+
end
|
37
|
+
|
38
|
+
it "adds the caller details to the #{method} call" do
|
39
|
+
subject.send(method, to_log)
|
40
|
+
|
41
|
+
match = log_command[:args].first =~ /logger_test.rb\:\d+/
|
42
|
+
|
43
|
+
match.wont_be_nil 'the logger did not receive the caller stack'
|
44
|
+
end
|
45
|
+
|
46
|
+
it "sends the message in a block for #{method}" do
|
47
|
+
subject.send(method, to_log)
|
48
|
+
|
49
|
+
result = log_command[:block].call
|
50
|
+
|
51
|
+
result.must_equal to_log
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
%w(debug info warn error fatal).each do |method|
|
56
|
+
it "delegates the #{method}? to the logger with no arg, no block" do
|
57
|
+
subject.send "#{method}?"
|
58
|
+
|
59
|
+
log_command.must_equal({ command: "#{method}?".to_sym, args: [], block: nil })
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
describe 'declare the same method on class level' do
|
65
|
+
%w(debug debug? error error? fatal fatal? info info? log unknown warn warn?).each do |method|
|
66
|
+
it "responds to #{method}" do
|
67
|
+
Crusade::Logger.respond_to?(method).must_be_true
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require File.expand_path '../../test_helper.rb', __FILE__
|
2
|
+
|
3
|
+
require 'crusade/null_logger'
|
4
|
+
|
5
|
+
describe Crusade::NullLogger do
|
6
|
+
|
7
|
+
describe '.new' do
|
8
|
+
it 'can build a logger with no parameters' do
|
9
|
+
Crusade::NullLogger.new.wont_be_nil
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'can build a logger with the full list of parameters' do
|
13
|
+
Crusade::NullLogger.new('name', 7, 1048576).wont_be_nil
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { Crusade::NullLogger.new }
|
18
|
+
let(:to_log) { 'will do nothing' }
|
19
|
+
|
20
|
+
describe 'logger methods' do
|
21
|
+
it { wont_log_anything { subject << to_log } }
|
22
|
+
|
23
|
+
it { subject.debug?.must_be_false }
|
24
|
+
it { subject.error?.must_be_false }
|
25
|
+
it { subject.fatal?.must_be_false }
|
26
|
+
it { subject.info?.must_be_false }
|
27
|
+
it { subject.warn?.must_be_false }
|
28
|
+
|
29
|
+
it { wont_log_anything { subject.add } }
|
30
|
+
it { wont_log_anything { subject.debug ''} }
|
31
|
+
it { wont_log_anything { subject.error ''} }
|
32
|
+
it { wont_log_anything { subject.fatal ''} }
|
33
|
+
it { wont_log_anything { subject.info ''} }
|
34
|
+
it { wont_log_anything { subject.log ''} }
|
35
|
+
it { wont_log_anything { subject.unknown ''} }
|
36
|
+
it { wont_log_anything { subject.warn ''} }
|
37
|
+
|
38
|
+
it { subject.datetime_format.must_equal '' }
|
39
|
+
it { subject.datetime_format='tt' ; subject.datetime_format.must_equal '' }
|
40
|
+
it { r = subject.close ; r.must_be_nil }
|
41
|
+
end
|
42
|
+
|
43
|
+
def wont_log_anything
|
44
|
+
begin
|
45
|
+
mock = MockStdOut.new
|
46
|
+
$stdout = mock
|
47
|
+
$stderr = mock
|
48
|
+
|
49
|
+
yield
|
50
|
+
|
51
|
+
mock.verify.must_equal true, 'something was written either on stdout or stderrr'
|
52
|
+
ensure
|
53
|
+
$stdout = STDOUT
|
54
|
+
$stderr = STDOUT
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
class MockStdOut
|
59
|
+
def initialize
|
60
|
+
@result = true
|
61
|
+
end
|
62
|
+
|
63
|
+
def write(*args)
|
64
|
+
@result = false
|
65
|
+
end
|
66
|
+
|
67
|
+
def puts(*args)
|
68
|
+
@result = false
|
69
|
+
end
|
70
|
+
|
71
|
+
def verify
|
72
|
+
@result
|
73
|
+
end
|
74
|
+
|
75
|
+
def flush
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
metadata
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crusade
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.7.0
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
7
|
authors:
|
7
8
|
- David Rouchy
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2013-09-
|
12
|
+
date: 2013-09-22 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,15 +30,81 @@ 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
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: minitest
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 5.0.7
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 5.0.7
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: minitest-great_expectations
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 0.0.5
|
70
|
+
type: :development
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 0.0.5
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: rake
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
86
|
+
type: :development
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: coveralls
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
type: :development
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
39
108
|
- !ruby/object:Gem::Version
|
40
109
|
version: '0'
|
41
110
|
description: push notification gem
|
@@ -46,6 +115,7 @@ extensions: []
|
|
46
115
|
extra_rdoc_files: []
|
47
116
|
files:
|
48
117
|
- .gitignore
|
118
|
+
- .travis.yml
|
49
119
|
- Gemfile
|
50
120
|
- Gemfile.lock
|
51
121
|
- LICENSE.txt
|
@@ -53,29 +123,46 @@ files:
|
|
53
123
|
- Rakefile
|
54
124
|
- crusade.gemspec
|
55
125
|
- lib/crusade.rb
|
126
|
+
- lib/crusade/logger.rb
|
127
|
+
- lib/crusade/null_logger.rb
|
56
128
|
- lib/crusade/version.rb
|
129
|
+
- test/support/fake_logger.rb
|
130
|
+
- test/test_helper.rb
|
131
|
+
- test/unit/logger_test.rb
|
132
|
+
- test/unit/null_logger_test.rb
|
57
133
|
homepage: ''
|
58
134
|
licenses:
|
59
135
|
- MIT
|
60
|
-
metadata: {}
|
61
136
|
post_install_message:
|
62
137
|
rdoc_options: []
|
63
138
|
require_paths:
|
64
139
|
- lib
|
65
140
|
required_ruby_version: !ruby/object:Gem::Requirement
|
141
|
+
none: false
|
66
142
|
requirements:
|
67
|
-
- - '>='
|
143
|
+
- - ! '>='
|
68
144
|
- !ruby/object:Gem::Version
|
69
145
|
version: '0'
|
146
|
+
segments:
|
147
|
+
- 0
|
148
|
+
hash: 1435457411433090274
|
70
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
150
|
+
none: false
|
71
151
|
requirements:
|
72
|
-
- - '>='
|
152
|
+
- - ! '>='
|
73
153
|
- !ruby/object:Gem::Version
|
74
154
|
version: '0'
|
155
|
+
segments:
|
156
|
+
- 0
|
157
|
+
hash: 1435457411433090274
|
75
158
|
requirements: []
|
76
159
|
rubyforge_project:
|
77
|
-
rubygems_version:
|
160
|
+
rubygems_version: 1.8.23
|
78
161
|
signing_key:
|
79
|
-
specification_version:
|
162
|
+
specification_version: 3
|
80
163
|
summary: push some notification through APNS
|
81
|
-
test_files:
|
164
|
+
test_files:
|
165
|
+
- test/support/fake_logger.rb
|
166
|
+
- test/test_helper.rb
|
167
|
+
- test/unit/logger_test.rb
|
168
|
+
- test/unit/null_logger_test.rb
|
checksums.yaml
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
---
|
2
|
-
SHA1:
|
3
|
-
metadata.gz: e0bf95cf32c447a81f33173ac9c30f0f7b8a425c
|
4
|
-
data.tar.gz: 0992ba2927a51aa98230a80bf3e6f41fb977eb04
|
5
|
-
SHA512:
|
6
|
-
metadata.gz: 990a1e4050b2b435cd1d18d90727b0a4650916ccf14e314ef19a230f07648fb64ac460745a1c130e67be2222f4395cfef8b8698506f2c64527cc15d3c0c81e12
|
7
|
-
data.tar.gz: 7c97c04f66a5ff463402ebe734b9f4f0a3dc3ee2b2110903e4ed4d9be8b0035f9f686b1ab5094c8f33208cdc12e2f0f98aa191350dfdef12930a3796f4dcc5c2
|