crusade 0.0.1 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|