birling 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8a220611de2cd83e6b1a287c224613765b8ee134
4
- data.tar.gz: 276014a8f6f9ab3d286ec16184379c459fa42dc2
3
+ metadata.gz: 5cc4db8e400e00db03c995a74cd74c00fa417399
4
+ data.tar.gz: a5fbb6997f34142f5c8663b47732fde5ce5ca2fd
5
5
  SHA512:
6
- metadata.gz: 3be82ad9a9bbeacfbde7cd6ce127992cc2270894bd8e7567cf8ecc39c5f8a3d1d966b52c9b19b2d79d6f03022422faa0c54c6f0e091e8903805b1fed2e3cd93f
7
- data.tar.gz: 90ad6b767bccc672dd58365ef6c3592f725e737c6c0cbc0445b9968093fa16fba7f1ef8e3a8d8a0e1145a4e95760691571c213cdaffcd7c8403f59d6fe800839
6
+ metadata.gz: 644c8a35cd87f0d707a319430e8b1d5662366e5166ac38e0b6acc2ebda83a069926926002abf56aae8ea3d501ab1437475f25669564ccd66eafcedb169556858
7
+ data.tar.gz: 2d12cd6c9fd88753e4a219475cda6b772c2267a437b63769aabd578c8585cc8cf13fcd79305c1e054c8d804cc4c95bd0654d25276ef0aa87a6d12b82e5ef3435
data/.travis.yml ADDED
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.5
6
+ - 2.2.0
7
+ - 2.3.3
8
+ - 2.4.2
9
+ before_install:
10
+ - export TZ=EST5EDT
data/Gemfile CHANGED
@@ -1,6 +1,7 @@
1
- source "https://rubygems.org/"
1
+ source 'https://rubygems.org/'
2
2
 
3
3
  group :development do
4
- gem "bundler"
5
- gem "jeweler"
4
+ gem 'bundler'
5
+ gem 'test-unit'
6
+ gem 'jeweler'
6
7
  end
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2012 Scott Tadman, The Working Group.
1
+ Copyright (c) 2012-2017 Scott Tadman, PostageApp, The Working Group.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -34,8 +34,8 @@ of ten hourly logs:
34
34
  ```ruby
35
35
  logger = Birling.open(
36
36
  'test.log',
37
- :period => :hourly,
38
- :retain_count => 10
37
+ period: :hourly,
38
+ retain_count: 10
39
39
  )
40
40
  ```
41
41
 
@@ -46,8 +46,8 @@ that period will be removed:
46
46
  ```ruby
47
47
  logger = Birling.open(
48
48
  'test.log',
49
- :period => :hourly,
50
- :retain_period => 10 * 3600
49
+ period: :hourly,
50
+ retain_period: 10 * 3600
51
51
  )
52
52
  ```
53
53
 
@@ -60,7 +60,7 @@ Example:
60
60
  ```ruby
61
61
  logger = Birling.open(
62
62
  'test.log',
63
- :formatter => lambda { |severity, time, program, message| "#{time}> #{message}\n" }
63
+ formatter: -> (severity, time, program, message) { "#{time}> #{message}\n" }
64
64
  )
65
65
  ```
66
66
 
@@ -76,4 +76,4 @@ using `STDOUT` the logger will not rotate.
76
76
 
77
77
  ## Copyright
78
78
 
79
- Copyright (c) 2011-2012 Scott Tadman, The Working Group Inc.
79
+ Copyright (c) 2011-2017 Scott Tadman, PostageApp, The Working Group Inc.
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ require 'jeweler'
14
14
 
15
15
  Jeweler::Tasks.new do |gem|
16
16
  gem.name = "birling"
17
- gem.homepage = "http://github.com/twg/birling"
17
+ gem.homepage = "http://github.com/postageapp/birling"
18
18
  gem.license = "MIT"
19
19
  gem.summary = %Q{Logger with simple log rotation system}
20
20
  gem.description = %Q{Mostly drop-in replacement for Logger with a more robust log rotation facility}
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.2.0
data/birling.gemspec CHANGED
@@ -2,24 +2,25 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: birling 0.1.3 ruby lib
5
+ # stub: birling 0.2.0 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
- s.name = "birling"
9
- s.version = "0.1.3"
8
+ s.name = "birling".freeze
9
+ s.version = "0.2.0"
10
10
 
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
- s.require_paths = ["lib"]
13
- s.authors = ["Scott Tadman"]
14
- s.date = "2015-01-31"
15
- s.description = "Mostly drop-in replacement for Logger with a more robust log rotation facility"
16
- s.email = "github@tadman.ca"
11
+ s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib".freeze]
13
+ s.authors = ["Scott Tadman".freeze]
14
+ s.date = "2017-12-13"
15
+ s.description = "Mostly drop-in replacement for Logger with a more robust log rotation facility".freeze
16
+ s.email = "github@tadman.ca".freeze
17
17
  s.extra_rdoc_files = [
18
18
  "LICENSE.txt",
19
19
  "README.md"
20
20
  ]
21
21
  s.files = [
22
22
  ".document",
23
+ ".travis.yml",
23
24
  "Gemfile",
24
25
  "LICENSE.txt",
25
26
  "README.md",
@@ -35,24 +36,27 @@ Gem::Specification.new do |s|
35
36
  "test/test_birling_logger.rb",
36
37
  "test/test_birling_support.rb"
37
38
  ]
38
- s.homepage = "http://github.com/twg/birling"
39
- s.licenses = ["MIT"]
40
- s.rubygems_version = "2.2.2"
41
- s.summary = "Logger with simple log rotation system"
39
+ s.homepage = "http://github.com/postageapp/birling".freeze
40
+ s.licenses = ["MIT".freeze]
41
+ s.rubygems_version = "2.6.13".freeze
42
+ s.summary = "Logger with simple log rotation system".freeze
42
43
 
43
44
  if s.respond_to? :specification_version then
44
45
  s.specification_version = 4
45
46
 
46
47
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
47
- s.add_development_dependency(%q<bundler>, [">= 0"])
48
- s.add_development_dependency(%q<jeweler>, [">= 0"])
48
+ s.add_development_dependency(%q<bundler>.freeze, [">= 0"])
49
+ s.add_development_dependency(%q<test-unit>.freeze, [">= 0"])
50
+ s.add_development_dependency(%q<jeweler>.freeze, [">= 0"])
49
51
  else
50
- s.add_dependency(%q<bundler>, [">= 0"])
51
- s.add_dependency(%q<jeweler>, [">= 0"])
52
+ s.add_dependency(%q<bundler>.freeze, [">= 0"])
53
+ s.add_dependency(%q<test-unit>.freeze, [">= 0"])
54
+ s.add_dependency(%q<jeweler>.freeze, [">= 0"])
52
55
  end
53
56
  else
54
- s.add_dependency(%q<bundler>, [">= 0"])
55
- s.add_dependency(%q<jeweler>, [">= 0"])
57
+ s.add_dependency(%q<bundler>.freeze, [">= 0"])
58
+ s.add_dependency(%q<test-unit>.freeze, [">= 0"])
59
+ s.add_dependency(%q<jeweler>.freeze, [">= 0"])
56
60
  end
57
61
  end
58
62
 
data/lib/birling.rb CHANGED
@@ -7,6 +7,15 @@ class Birling
7
7
 
8
8
  # == Module Methods =======================================================
9
9
 
10
+ # Opens a new log file at the given path with options:
11
+ # * encoding: The encoding of the file (default: 'UTF8')
12
+ # * period: The rotation period to use (optional)
13
+ # * retain_count: How many log files to retain when rotating (optional)
14
+ # * retain_period: How long rotated log files are retained for (optional)
15
+ # * formatter: Custom log formatter (optional)
16
+ # * program: Name of program being logged (optional)
17
+ # * time_source: Source of time to use (optional)
18
+ # * path_format: The strftime-compatible format for the path (optional)
10
19
  def self.open(path, options = nil)
11
20
  Birling::Logger.new(path, options)
12
21
  end
@@ -1,3 +1,5 @@
1
+ require 'time'
2
+
1
3
  module Birling::Formatter
2
4
  # == Constants ============================================================
3
5
 
@@ -5,6 +7,12 @@ module Birling::Formatter
5
7
 
6
8
  # == Module Methods =======================================================
7
9
 
10
+ # Default time formatter method.
11
+ def self.time_format(time)
12
+ (time || Time.now).strftime(TIME_FORMAT_DEFAULT)
13
+ end
14
+
15
+ # Implementation for a plug-in Logger formatter.
8
16
  def self.call(severity, time, program, message)
9
17
  if (program)
10
18
  "[#{time.strftime(TIME_FORMAT_DEFAULT)}] <#{program}> #{message}\n"
@@ -3,15 +3,15 @@ class Birling::Logger
3
3
 
4
4
  # These level constants are the same as the syslog system utility
5
5
  SEVERITY = {
6
- :emergency => EMERGENCY = 0,
7
- :alert => ALERT = 1,
8
- :critical => CRITICAL = 2,
9
- :error => ERROR = 3,
10
- :warning => WARNING = 4,
11
- :notice => NOTICE = 5,
12
- :info => INFO = 6,
13
- :debug => DEBUG = 7,
14
- :unknown => UNKNOWN = 999
6
+ emergency: EMERGENCY = 0,
7
+ alert: ALERT = 1,
8
+ critical: CRITICAL = 2,
9
+ error: ERROR = 3,
10
+ warning: WARNING = 4,
11
+ notice: NOTICE = 5,
12
+ info: INFO = 6,
13
+ debug: DEBUG = 7,
14
+ unknown: UNKNOWN = 999
15
15
  }.freeze
16
16
 
17
17
  DEFAULT_SEVERITY = UNKNOWN
@@ -19,9 +19,9 @@ class Birling::Logger
19
19
  SEVERITY_LABEL = SEVERITY.invert.freeze
20
20
 
21
21
  PATH_TIME_DEFAULT = {
22
- :hourly => '%Y%m%d%H'.freeze,
23
- :daily => '%Y%m%d'.freeze,
24
- :default => '%s'.freeze
22
+ hourly: '%Y%m%d%H'.freeze,
23
+ daily: '%Y%m%d'.freeze,
24
+ default: '%s'.freeze
25
25
  }.freeze
26
26
 
27
27
  # == Properties ===========================================================
@@ -47,7 +47,7 @@ class Birling::Logger
47
47
  SEVERITY[value] or DEFAULT_SEVERITY
48
48
  when String
49
49
  SEVERITY[value.to_sym] or DEFAULT_SEVERITY
50
- when Fixnum
50
+ when Integer
51
51
  SEVERITY_LABEL[value] and value or DEFAULT_SEVERITY
52
52
  else
53
53
  DEFAULT_SEVERITY
@@ -56,6 +56,7 @@ class Birling::Logger
56
56
 
57
57
  # == Instance Methods =====================================================
58
58
 
59
+ # Use Birling.open(...) to create new instances.
59
60
  def initialize(log, options = nil)
60
61
  @encoding = (options and options[:encoding])
61
62
  @period = (options and options[:period])
@@ -69,6 +70,10 @@ class Birling::Logger
69
70
 
70
71
  @file_open_options = { }
71
72
 
73
+ @rotation_time = nil
74
+ @path = nil
75
+ @log = nil
76
+
72
77
  if (@encoding)
73
78
  @file_open_options[:encoding] = @encoding
74
79
  end
@@ -98,18 +103,21 @@ class Birling::Logger
98
103
  yield(self) if (block_given?)
99
104
  end
100
105
 
106
+ # Sets the severity filter for logging. Any messages with a lower severity
107
+ # will be ignored. Any invalid severity options will reset the severity
108
+ # filter to defaults.
101
109
  def severity=(value)
102
110
  @severity = self.class.severity(value)
103
111
  end
104
112
 
113
+ # Returns true if the log can be rotated, false otherwise.
105
114
  def can_rotate?
106
115
  !!@path
107
116
  end
108
117
 
109
- def size
110
- @log and @log.respond_to
111
- end
112
-
118
+ # Sets the retention interval for log files. Value should respond to to_i
119
+ # and yield an integer value that's a positive number of seconds between
120
+ # rotation operations.
113
121
  def retain=(value)
114
122
  @retain = value ? value.to_i : nil
115
123
 
@@ -120,6 +128,24 @@ class Birling::Logger
120
128
  @retain_period
121
129
  end
122
130
 
131
+ # An IO compatible method for writing a message to the file. Only non-empty
132
+ # messages are actually logged.
133
+ def write(message)
134
+ return unless (message.match(/\S/))
135
+
136
+ self.log(:debug, message.chomp)
137
+ end
138
+
139
+ def sync=(sync)
140
+ # Auto-sync is always turned on, so this operation is ignored.
141
+ end
142
+
143
+ def flush
144
+ # Auto-sync is always turned on, so this operation is ignored.
145
+ end
146
+
147
+ # Log the message for the (optional) program at the given log level. No
148
+ # data will be written if the current log level is not sufficiently high.
123
149
  def log(level, message = nil, program = nil)
124
150
  return unless (@log)
125
151
 
@@ -132,6 +158,7 @@ class Birling::Logger
132
158
  end
133
159
  alias_method :add, :log
134
160
 
161
+ # Writes to the log file regardless of log level.
135
162
  def <<(message)
136
163
  return unless (@log)
137
164
 
@@ -140,6 +167,11 @@ class Birling::Logger
140
167
  @log.write(message)
141
168
  end
142
169
 
170
+ # Each of the severity levels has an associated method name. For example:
171
+ # * debug? - Returns true if the logging level is at least debug, false
172
+ # otherwise.
173
+ # * debug(message, program = nil) - Used to log a message with an optional
174
+ # program name.
143
175
  SEVERITY.each do |name, level|
144
176
  define_method(:"#{name}?") do
145
177
  @severity >= level
@@ -160,6 +192,7 @@ class Birling::Logger
160
192
  end
161
193
  end
162
194
 
195
+ # Closes the log.
163
196
  def close
164
197
  return unless (@log)
165
198
 
@@ -167,30 +200,35 @@ class Birling::Logger
167
200
  @log = nil
168
201
  end
169
202
 
203
+ # Returns true if the log is opened, false otherwise.
170
204
  def opened?
171
205
  !!@log
172
206
  end
173
207
 
208
+ # Returns true if the log is closed, false otherwise.
174
209
  def closed?
175
210
  !@log
176
211
  end
177
212
 
213
+ # Returns the creation time of the log if opened, nil otherwise.
178
214
  def create_time
179
215
  @log and @log.ctime
180
216
  end
181
217
 
218
+ # Returns size of the log if opened, nil otherwise.
182
219
  def size
183
220
  @log and @log.size
184
221
  end
185
222
 
223
+ # Returns the age of the log file in seconds if opened, nil otherwise.
186
224
  def age(relative_to = nil)
187
- (relative_to || @time_source.now) - @log.ctime
225
+ @log and (relative_to || @time_source.now) - @log.ctime
188
226
  end
189
227
 
190
228
  protected
191
229
  def next_rotation_time
192
230
  case (@period)
193
- when Fixnum, Float
231
+ when Integer, Float
194
232
  @time_source.now + @period
195
233
  when :daily
196
234
  Birling::Support.next_day(@time_source.now)
@@ -250,7 +288,7 @@ protected
250
288
  @log = File.open(@current_path, 'a', @file_open_options)
251
289
  @log.sync = true
252
290
 
253
- if (File.exist?(@path) and File.symlink?(@path))
291
+ if (File.symlink?(@path))
254
292
  File.unlink(@path)
255
293
  end
256
294
 
@@ -1,4 +1,7 @@
1
1
  module Birling::Support
2
+ # == Module + Mixin Methods ===============================================
3
+
4
+ # Computes the beginning of the next day.
2
5
  def next_day(time, time_source = nil)
3
6
  (time_source || Time).local(
4
7
  time.year,
@@ -10,6 +13,7 @@ module Birling::Support
10
13
  ) + 1
11
14
  end
12
15
 
16
+ # Computes the beginning of the next hour.
13
17
  def next_hour(time, time_source = nil)
14
18
  seconds_left = time.to_i % 3600
15
19
 
data/test/helper.rb CHANGED
@@ -54,9 +54,9 @@ class Test::Unit::TestCase
54
54
  name = "#{name}.log"
55
55
  end
56
56
 
57
- @temp_path ||= File.expand_path('../tmp', File.dirname(__FILE__))
57
+ temp_path ||= File.expand_path('../tmp', File.dirname(__FILE__))
58
58
 
59
- full_path = File.expand_path(name, @temp_path)
59
+ full_path = File.expand_path(name, temp_path)
60
60
 
61
61
  FileUtils::mkdir_p(File.dirname(full_path))
62
62
 
@@ -64,7 +64,7 @@ class Test::Unit::TestCase
64
64
  begin
65
65
  yield(full_path)
66
66
  ensure
67
- remove_spec = File.expand_path('*', @temp_path)
67
+ remove_spec = File.expand_path('*', temp_path)
68
68
 
69
69
  FileUtils.rm_f(Dir.glob(remove_spec))
70
70
  end
data/test/test_birling.rb CHANGED
@@ -35,17 +35,4 @@ class TestBirling < Test::Unit::TestCase
35
35
 
36
36
  assert !File.exist?(_path)
37
37
  end
38
-
39
- def test_time_warped
40
- _now = Time.now
41
-
42
- Time::Warped.now = _now
43
-
44
- assert_not_equal Time.now, Time.now
45
- assert_equal _now, Time::Warped.now
46
-
47
- Time::Warped.now = nil
48
-
49
- assert_not_equal _now, Time::Warped.now
50
- end
51
38
  end
@@ -27,6 +27,35 @@ class TestBirlingLogger < Test::Unit::TestCase
27
27
 
28
28
  assert_equal 0, log.size
29
29
  end
30
+
31
+ def test_io_compatible
32
+ stdout = $stdout
33
+
34
+ buffer = StringIO.new
35
+
36
+ log = Birling::Logger.new(buffer, time_source: Time::Warped)
37
+
38
+ assert log.opened?
39
+
40
+ assert_equal 0, log.size
41
+
42
+ $stdout = log
43
+
44
+ start = Time.parse('2017-10-10 12:00:00')
45
+
46
+ Time::Warped.now = start
47
+
48
+ puts "Test"
49
+
50
+ log.close
51
+
52
+ expected = "[2017-10-10 12:00:00] Test\n"
53
+
54
+ assert_equal expected, buffer.string.to_s
55
+
56
+ ensure
57
+ $stdout = stdout
58
+ end
30
59
 
31
60
  def test_formatter
32
61
  formatter_called = false
@@ -36,7 +65,7 @@ class TestBirlingLogger < Test::Unit::TestCase
36
65
  end
37
66
 
38
67
  output = StringIO.new
39
- log = Birling::Logger.new(output, :formatter => formatter)
68
+ log = Birling::Logger.new(output, formatter: formatter)
40
69
 
41
70
  log.debug("Test")
42
71
 
@@ -72,8 +101,7 @@ class TestBirlingLogger < Test::Unit::TestCase
72
101
 
73
102
  log << "TEST"
74
103
 
75
- output.rewind
76
- assert_equal "TEST", output.read
104
+ assert_equal "TEST", output.string
77
105
  end
78
106
 
79
107
  def test_level_filter
@@ -81,8 +109,8 @@ class TestBirlingLogger < Test::Unit::TestCase
81
109
 
82
110
  log = Birling::Logger.new(
83
111
  output,
84
- :formatter => lambda { |s, t, p, m| "#{m}\n" },
85
- :severity => :info
112
+ formatter: lambda { |s, t, p, m| "#{m}\n" },
113
+ severity: :info
86
114
  )
87
115
 
88
116
  log.debug("DEBUG")
@@ -120,7 +148,7 @@ class TestBirlingLogger < Test::Unit::TestCase
120
148
  frozen_time = Time.now
121
149
  Time::Warped.now = frozen_time
122
150
 
123
- logger = Birling::Logger.new(path, :time_source => Time::Warped)
151
+ logger = Birling::Logger.new(path, time_source: Time::Warped)
124
152
 
125
153
  assert_equal frozen_time, logger.time_source.now
126
154
  end
@@ -130,7 +158,7 @@ class TestBirlingLogger < Test::Unit::TestCase
130
158
  temp_path(:cycle) do |path|
131
159
  start = Time.now
132
160
  Time::Warped.now = start
133
- logger = Birling::Logger.new(path, :period => 1, :time_source => Time::Warped)
161
+ logger = Birling::Logger.new(path, period: 1, time_source: Time::Warped)
134
162
 
135
163
  assert_equal 1, logger.period
136
164
 
@@ -164,14 +192,16 @@ class TestBirlingLogger < Test::Unit::TestCase
164
192
 
165
193
  logger = Birling::Logger.new(
166
194
  path,
167
- :period => 1,
168
- :time_source => Time::Warped,
169
- :retain_count => retain_count
195
+ period: 1,
196
+ time_source: Time::Warped,
197
+ retain_count: retain_count
170
198
  )
171
199
 
172
200
  (retain_count + 5).times do |n|
173
201
  logger.debug("Test")
202
+
174
203
  Time::Warped.now += 1
204
+
175
205
  logger.debug("Test")
176
206
  end
177
207
 
@@ -201,8 +231,8 @@ class TestBirlingLogger < Test::Unit::TestCase
201
231
 
202
232
  logger = Birling::Logger.new(
203
233
  path,
204
- :period => 1,
205
- :retain_period => retain_period
234
+ period: 1,
235
+ retain_period: retain_period
206
236
  )
207
237
 
208
238
  assert_equal true, File.exist?(path)
@@ -4,6 +4,8 @@ class TestBirlingSupport < Test::Unit::TestCase
4
4
  def test_next_day_on_dst_flip
5
5
  in_time_zone('EST5EDT') do
6
6
  time = Time.new(2012, 11, 4)
7
+
8
+ assert_equal 'EDT', time.zone
7
9
 
8
10
  assert_equal time.day, (time + 86400).day
9
11
 
@@ -21,6 +23,8 @@ class TestBirlingSupport < Test::Unit::TestCase
21
23
  def test_hour_day_on_dst_flip
22
24
  in_time_zone('EST5EDT') do
23
25
  time = Time.new(2012, 11, 4, 0, 59, 59) + 1
26
+
27
+ assert_equal 'EDT', time.zone
24
28
 
25
29
  assert_equal time.hour, (time + 3600).hour
26
30
 
@@ -40,6 +44,8 @@ class TestBirlingSupport < Test::Unit::TestCase
40
44
  def test_next_day_at_year_end
41
45
  in_time_zone('EST5EDT') do
42
46
  time = Time.new(2012, 12, 31)
47
+
48
+ assert_equal 'EST', time.zone
43
49
 
44
50
  next_day = Birling::Support.next_day(time)
45
51
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: birling
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott Tadman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-31 00:00:00.000000000 Z
11
+ date: 2017-12-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: test-unit
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: jeweler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -48,6 +62,7 @@ extra_rdoc_files:
48
62
  - README.md
49
63
  files:
50
64
  - ".document"
65
+ - ".travis.yml"
51
66
  - Gemfile
52
67
  - LICENSE.txt
53
68
  - README.md
@@ -62,7 +77,7 @@ files:
62
77
  - test/test_birling.rb
63
78
  - test/test_birling_logger.rb
64
79
  - test/test_birling_support.rb
65
- homepage: http://github.com/twg/birling
80
+ homepage: http://github.com/postageapp/birling
66
81
  licenses:
67
82
  - MIT
68
83
  metadata: {}
@@ -82,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
97
  version: '0'
83
98
  requirements: []
84
99
  rubyforge_project:
85
- rubygems_version: 2.2.2
100
+ rubygems_version: 2.6.13
86
101
  signing_key:
87
102
  specification_version: 4
88
103
  summary: Logger with simple log rotation system