ntail 1.0.0 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 1.9.3-p374
data/Gemfile CHANGED
@@ -3,9 +3,9 @@ source "http://rubygems.org"
3
3
  # Add dependencies required to use your gem here.
4
4
  # Example:
5
5
  # gem "activesupport", ">= 2.3.5"
6
- gem "rainbow", ">= 0"
7
- gem "user-agent", ">= 0"
8
- gem "treetop", "~> 1.4.9"
6
+ gem "rainbow"
7
+ gem "user-agent"
8
+ gem "treetop"
9
9
  # gem 'sequel'
10
10
  # gem 'mongoid'
11
11
  # gem 'sqlite3-ruby', :require => 'sqlite3'
@@ -13,11 +13,14 @@ gem "treetop", "~> 1.4.9"
13
13
  # Add dependencies to develop your gem here.
14
14
  # Include everything needed to run rake, tests, features, etc.
15
15
  group :development do
16
- gem "rake", "~> 0.9.2.2"
17
- gem "shoulda", ">= 0"
18
- gem "bundler", "~> 1.0.0"
19
- gem "jeweler", "~> 1.5.1"
20
- gem "simplecov", ">= 0"
21
- gem "geoip", ">= 0"
22
- gem "rspec", ">= 2.5"
16
+ gem "rake"
17
+ gem "shoulda"
18
+ gem "bundler"
19
+ gem "jeweler"
20
+ gem "simplecov"
21
+ gem "geoip"
22
+ gem "rspec"
23
+ gem "guard"
24
+ gem "growl"
25
+ gem "guard-rspec"
23
26
  end
data/Gemfile.lock CHANGED
@@ -2,29 +2,45 @@ GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
4
  diff-lcs (1.1.3)
5
+ ffi (1.0.11)
5
6
  geoip (1.1.2)
6
7
  git (1.2.5)
7
- jeweler (1.5.2)
8
- bundler (~> 1.0.0)
8
+ growl (1.0.3)
9
+ guard (1.0.1)
10
+ ffi (>= 0.5.0)
11
+ thor (~> 0.14.6)
12
+ guard-rspec (0.7.0)
13
+ guard (>= 0.10.0)
14
+ jeweler (1.8.3)
15
+ bundler (~> 1.0)
9
16
  git (>= 1.2.5)
10
17
  rake
11
- multi_json (1.0.4)
18
+ rdoc
19
+ json (1.6.6)
20
+ multi_json (1.3.2)
12
21
  polyglot (0.3.3)
13
22
  rainbow (1.1.3)
14
23
  rake (0.9.2.2)
15
- rspec (2.8.0)
16
- rspec-core (~> 2.8.0)
17
- rspec-expectations (~> 2.8.0)
18
- rspec-mocks (~> 2.8.0)
19
- rspec-core (2.8.0)
20
- rspec-expectations (2.8.0)
21
- diff-lcs (~> 1.1.2)
22
- rspec-mocks (2.8.0)
23
- shoulda (2.11.3)
24
- simplecov (0.5.4)
25
- multi_json (~> 1.0.3)
24
+ rdoc (3.12)
25
+ json (~> 1.4)
26
+ rspec (2.9.0)
27
+ rspec-core (~> 2.9.0)
28
+ rspec-expectations (~> 2.9.0)
29
+ rspec-mocks (~> 2.9.0)
30
+ rspec-core (2.9.0)
31
+ rspec-expectations (2.9.1)
32
+ diff-lcs (~> 1.1.3)
33
+ rspec-mocks (2.9.0)
34
+ shoulda (3.0.1)
35
+ shoulda-context (~> 1.0.0)
36
+ shoulda-matchers (~> 1.0.0)
37
+ shoulda-context (1.0.0)
38
+ shoulda-matchers (1.0.0)
39
+ simplecov (0.6.2)
40
+ multi_json (~> 1.3)
26
41
  simplecov-html (~> 0.5.3)
27
42
  simplecov-html (0.5.3)
43
+ thor (0.14.6)
28
44
  treetop (1.4.10)
29
45
  polyglot
30
46
  polyglot (>= 0.3.1)
@@ -34,13 +50,16 @@ PLATFORMS
34
50
  ruby
35
51
 
36
52
  DEPENDENCIES
37
- bundler (~> 1.0.0)
53
+ bundler
38
54
  geoip
39
- jeweler (~> 1.5.1)
55
+ growl
56
+ guard
57
+ guard-rspec
58
+ jeweler
40
59
  rainbow
41
- rake (~> 0.9.2.2)
42
- rspec (>= 2.5)
60
+ rake
61
+ rspec
43
62
  shoulda
44
63
  simplecov
45
- treetop (~> 1.4.9)
64
+ treetop
46
65
  user-agent
data/Guardfile ADDED
@@ -0,0 +1,19 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'rspec', :cli => '--color', :version => 2 do
5
+ watch(%r{^spec/.+_spec\.rb$})
6
+ watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
7
+ watch('spec/spec_helper.rb') { "spec" }
8
+
9
+ # Rails example
10
+ watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
11
+ watch(%r{^app/(.*)(\.erb|\.haml)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
12
+ watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
13
+ watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
14
+ watch('config/routes.rb') { "spec/routing" }
15
+ watch('app/controllers/application_controller.rb') { "spec/controllers" }
16
+ # Capybara request specs
17
+ watch(%r{^app/views/(.+)/.*\.(erb|haml)$}) { |m| "spec/requests/#{m[1]}_spec.rb" }
18
+ end
19
+
data/Rakefile CHANGED
@@ -46,6 +46,7 @@ end
46
46
  require 'rspec/core/rake_task'
47
47
  RSpec::Core::RakeTask.new(:spec) do |test|
48
48
  test.verbose = true
49
+ test.rspec_opts = "--format d --color"
49
50
  end
50
51
 
51
52
  task :default => [:test, :spec]
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.0.2
@@ -27,17 +27,21 @@ class SearchBot < Agent
27
27
  # ia_archiver (+http://www.alexa.com/site/help/webmasters; crawler@alexa.com)
28
28
  # Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
29
29
  # Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)
30
+ # ClickTale bot
31
+ # "Mozilla/5.0 (compatible; MSIE 7.0; MSIE 6.0; ScanAlert; +http://www.scanalert.com/bot.jsp) Firefox/2.0.0.3"
30
32
  #
31
33
 
32
34
  KNOWN_SEARCH_BOTS = [
33
- GOOGLE_RSS = Regexp.compile('Feedfetcher-Google.*\/'),
34
- GOOGLE_BOT = Regexp.compile('Googlebot.*\/'),
35
- MSN_BOT = Regexp.compile('msnbot\/'),
36
- YAHOO_BOT = Regexp.compile('Yahoo! Slurp\/?'),
37
- PINGDOM_BOT = Regexp.compile('Pingdom.com_bot_version_'),
38
- ALEXA_BOT = Regexp.compile('ia_archiver'),
39
- YANDEX_BOT = Regexp.compile('YandexBot\/'),
40
- BING_BOT = Regexp.compile('bingbot\/'),
35
+ GOOGLE_RSS = Regexp.compile('Feedfetcher-Google.*\/'),
36
+ GOOGLE_BOT = Regexp.compile('Googlebot.*\/'),
37
+ MSN_BOT = Regexp.compile('msnbot\/'),
38
+ YAHOO_BOT = Regexp.compile('Yahoo! Slurp\/?'),
39
+ PINGDOM_BOT = Regexp.compile('Pingdom.com_bot_version_'),
40
+ ALEXA_BOT = Regexp.compile('ia_archiver'),
41
+ YANDEX_BOT = Regexp.compile('YandexBot\/'),
42
+ BING_BOT = Regexp.compile('bingbot\/'),
43
+ CLICKTALE_BOT = Regexp.compile('ClickTale bot'),
44
+ SCANALERT_BOT = Regexp.compile('ScanAlert; '),
41
45
  ]
42
46
 
43
47
  def self.search_bot?(http_user_agent)
@@ -55,26 +59,30 @@ class SearchBot < Agent
55
59
 
56
60
  def self.name_for_user_agent string
57
61
  case string
58
- when GOOGLE_BOT then :googlebot
59
- when MSN_BOT then :msnbot
60
- when YAHOO_BOT then :yahoo_slurp
61
- when ALEXA_BOT then :ia_archiver
62
- when PINGDOM_BOT then :pingdom_bot
63
- when YANDEX_BOT then :yandex_bot
64
- when BING_BOT then :bingbot
62
+ when GOOGLE_BOT then :googlebot
63
+ when MSN_BOT then :msnbot
64
+ when YAHOO_BOT then :yahoo_slurp
65
+ when ALEXA_BOT then :ia_archiver
66
+ when PINGDOM_BOT then :pingdom_bot
67
+ when YANDEX_BOT then :yandex_bot
68
+ when BING_BOT then :bingbot
69
+ when CLICKTALE_BOT then :clicktale_bot
70
+ when SCANALERT_BOT then :scanalert_bot
65
71
  else super(string)
66
72
  end
67
73
  end
68
74
 
69
75
  def self.os_for_user_agent string
70
76
  case string
71
- when GOOGLE_BOT then :"google.com"
72
- when MSN_BOT then :"msn.com"
73
- when YAHOO_BOT then :"yahoo.com"
74
- when ALEXA_BOT then :"alexa.com"
75
- when PINGDOM_BOT then :"pingdom.com"
76
- when YANDEX_BOT then :"yandex.com"
77
- when BING_BOT then :"bing.com"
77
+ when GOOGLE_BOT then :"google.com"
78
+ when MSN_BOT then :"msn.com"
79
+ when YAHOO_BOT then :"yahoo.com"
80
+ when ALEXA_BOT then :"alexa.com"
81
+ when PINGDOM_BOT then :"pingdom.com"
82
+ when YANDEX_BOT then :"yandex.com"
83
+ when BING_BOT then :"bing.com"
84
+ when CLICKTALE_BOT then :"clicktale.com"
85
+ when SCANALERT_BOT then :"mcafeesecure.com"
78
86
  else super(string)
79
87
  end
80
88
  end
@@ -25,6 +25,11 @@ module NginxTail
25
25
  :http_user_agent, # %U
26
26
  :proxy_addresses, # %p
27
27
 
28
+ # UPSTREAM = NGINX + ...
29
+
30
+ :upstream_response_time, # %?
31
+ :request_time, # %D
32
+
28
33
  # APACHE
29
34
 
30
35
  :server_name, # %V
@@ -75,6 +80,12 @@ module NginxTail
75
80
  # http://wiki.nginx.org/NginxHttpLogModule#log_format - we currently only support the default "combined" log format...
76
81
  #
77
82
 
83
+ UPSTREAM_LOG_PATTERN = Regexp.compile(/\A(\S+) - (\S+) \[([^\]]+)\] "([^"]+)" (\S+) (\S+) "([^"]*?)" "([^"]*?)"( "([^"]*?)")? - ([\d]+\.[\d]+) ([\d]+\.[\d]+)\Z/)
84
+
85
+ #
86
+ # http://wiki.nginx.org/NginxHttpLogModule#log_format - we currently only support the default "combined" log format...
87
+ #
88
+
78
89
  NGINX_LOG_PATTERN = Regexp.compile(/\A(\S+) - (\S+) \[([^\]]+)\] "([^"]+)" (\S+) (\S+) "([^"]*?)" "([^"]*?)"( "([^"]*?)")?\Z/)
79
90
 
80
91
  #
@@ -86,6 +97,7 @@ module NginxTail
86
97
  def self.set_pattern(pattern)
87
98
  @@log_pattern = case pattern
88
99
  when :nginx then NGINX_LOG_PATTERN
100
+ when :upstream then UPSTREAM_LOG_PATTERN
89
101
  when :apache then APACHE_LOG_PATTERN
90
102
  end
91
103
  end
@@ -98,6 +110,8 @@ module NginxTail
98
110
  @parsable = if @@log_pattern.match(@raw_line = line)
99
111
  if @@log_pattern == NGINX_LOG_PATTERN
100
112
  @remote_addr, @remote_user, @time_local, @request, @status, @body_bytes_sent, @http_referer, @http_user_agent, @proxy_addresses = $~.captures
113
+ elsif @@log_pattern == UPSTREAM_LOG_PATTERN
114
+ @remote_addr, @remote_user, @time_local, @request, @status, @body_bytes_sent, @http_referer, @http_user_agent, @proxy_addresses, _, @upstream_response_time, @request_time = $~.captures
101
115
  elsif @@log_pattern == APACHE_LOG_PATTERN
102
116
  @server_name, @remote_addr, @remote_log_name, @remote_user, @time_local, @request, @status, @body_bytes_sent, @http_referer, @http_user_agent, @http_cookie, @time_taken = $~.captures
103
117
  @proxy_addresses = nil
data/lib/ntail/options.rb CHANGED
@@ -43,6 +43,10 @@ module NginxTail
43
43
  options.output = :html
44
44
  end
45
45
 
46
+ opts.on '--upstream', "Try to match lines using the extended nginx 'upstream' log format" do |value|
47
+ options.pattern = :upstream
48
+ end
49
+
46
50
  opts.on '--apache', "Try to match lines using the Apache log format instead of nginx (the default)" do |value|
47
51
  options.pattern = :apache
48
52
  end
@@ -83,4 +87,4 @@ module NginxTail
83
87
  end
84
88
 
85
89
  end # module Options
86
- end # module NginxTail
90
+ end # module NginxTail
data/ntail.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "ntail"
8
- s.version = "1.0.0"
8
+ s.version = "1.0.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Peter Vandenberk"]
12
- s.date = "2012-02-12"
12
+ s.date = "2013-12-20"
13
13
  s.description = "A tail(1)-like utility for nginx log files. It supports parsing, filtering and formatting individual log lines."
14
14
  s.email = "pvandenberk@mac.com"
15
15
  s.executables = ["ntail"]
@@ -19,9 +19,10 @@ Gem::Specification.new do |s|
19
19
  ]
20
20
  s.files = [
21
21
  ".document",
22
- ".rvmrc",
22
+ ".ruby-version",
23
23
  "Gemfile",
24
24
  "Gemfile.lock",
25
+ "Guardfile",
25
26
  "LICENSE.txt",
26
27
  "README.md",
27
28
  "Rakefile",
@@ -71,28 +72,8 @@ Gem::Specification.new do |s|
71
72
  s.homepage = "http://github.com/pvdb/ntail"
72
73
  s.licenses = ["MIT"]
73
74
  s.require_paths = ["lib"]
74
- s.rubygems_version = "1.8.11"
75
+ s.rubygems_version = "1.8.23"
75
76
  s.summary = "A tail(1)-like utility for nginx log files"
76
- s.test_files = [
77
- "spec/application_spec.rb",
78
- "spec/spec_helper.rb",
79
- "test/helper.rb",
80
- "test/ntail/test_formatting.rb",
81
- "test/ntail/test_http_method.rb",
82
- "test/ntail/test_http_referer.rb",
83
- "test/ntail/test_http_user_agent.rb",
84
- "test/ntail/test_http_version.rb",
85
- "test/ntail/test_known_ip_addresses.rb",
86
- "test/ntail/test_local_ip_addresses.rb",
87
- "test/ntail/test_log_line.rb",
88
- "test/ntail/test_remote_addr.rb",
89
- "test/ntail/test_remote_user.rb",
90
- "test/ntail/test_request.rb",
91
- "test/ntail/test_status.rb",
92
- "test/ntail/test_time_local.rb",
93
- "test/ntail/test_uri.rb",
94
- "test/test_ntail.rb"
95
- ]
96
77
 
97
78
  if s.respond_to? :specification_version then
98
79
  s.specification_version = 3
@@ -100,37 +81,46 @@ Gem::Specification.new do |s|
100
81
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
101
82
  s.add_runtime_dependency(%q<rainbow>, [">= 0"])
102
83
  s.add_runtime_dependency(%q<user-agent>, [">= 0"])
103
- s.add_runtime_dependency(%q<treetop>, ["~> 1.4.9"])
104
- s.add_development_dependency(%q<rake>, ["~> 0.9.2.2"])
84
+ s.add_runtime_dependency(%q<treetop>, [">= 0"])
85
+ s.add_development_dependency(%q<rake>, [">= 0"])
105
86
  s.add_development_dependency(%q<shoulda>, [">= 0"])
106
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
107
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
87
+ s.add_development_dependency(%q<bundler>, [">= 0"])
88
+ s.add_development_dependency(%q<jeweler>, [">= 0"])
108
89
  s.add_development_dependency(%q<simplecov>, [">= 0"])
109
90
  s.add_development_dependency(%q<geoip>, [">= 0"])
110
- s.add_development_dependency(%q<rspec>, [">= 2.5"])
91
+ s.add_development_dependency(%q<rspec>, [">= 0"])
92
+ s.add_development_dependency(%q<guard>, [">= 0"])
93
+ s.add_development_dependency(%q<growl>, [">= 0"])
94
+ s.add_development_dependency(%q<guard-rspec>, [">= 0"])
111
95
  else
112
96
  s.add_dependency(%q<rainbow>, [">= 0"])
113
97
  s.add_dependency(%q<user-agent>, [">= 0"])
114
- s.add_dependency(%q<treetop>, ["~> 1.4.9"])
115
- s.add_dependency(%q<rake>, ["~> 0.9.2.2"])
98
+ s.add_dependency(%q<treetop>, [">= 0"])
99
+ s.add_dependency(%q<rake>, [">= 0"])
116
100
  s.add_dependency(%q<shoulda>, [">= 0"])
117
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
118
- s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
101
+ s.add_dependency(%q<bundler>, [">= 0"])
102
+ s.add_dependency(%q<jeweler>, [">= 0"])
119
103
  s.add_dependency(%q<simplecov>, [">= 0"])
120
104
  s.add_dependency(%q<geoip>, [">= 0"])
121
- s.add_dependency(%q<rspec>, [">= 2.5"])
105
+ s.add_dependency(%q<rspec>, [">= 0"])
106
+ s.add_dependency(%q<guard>, [">= 0"])
107
+ s.add_dependency(%q<growl>, [">= 0"])
108
+ s.add_dependency(%q<guard-rspec>, [">= 0"])
122
109
  end
123
110
  else
124
111
  s.add_dependency(%q<rainbow>, [">= 0"])
125
112
  s.add_dependency(%q<user-agent>, [">= 0"])
126
- s.add_dependency(%q<treetop>, ["~> 1.4.9"])
127
- s.add_dependency(%q<rake>, ["~> 0.9.2.2"])
113
+ s.add_dependency(%q<treetop>, [">= 0"])
114
+ s.add_dependency(%q<rake>, [">= 0"])
128
115
  s.add_dependency(%q<shoulda>, [">= 0"])
129
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
130
- s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
116
+ s.add_dependency(%q<bundler>, [">= 0"])
117
+ s.add_dependency(%q<jeweler>, [">= 0"])
131
118
  s.add_dependency(%q<simplecov>, [">= 0"])
132
119
  s.add_dependency(%q<geoip>, [">= 0"])
133
- s.add_dependency(%q<rspec>, [">= 2.5"])
120
+ s.add_dependency(%q<rspec>, [">= 0"])
121
+ s.add_dependency(%q<guard>, [">= 0"])
122
+ s.add_dependency(%q<growl>, [">= 0"])
123
+ s.add_dependency(%q<guard-rspec>, [">= 0"])
134
124
  end
135
125
  end
136
126
 
@@ -8,6 +8,8 @@ describe NginxTail::Application do
8
8
  end
9
9
  end
10
10
 
11
+ # specs governing processing behaviour
12
+
11
13
  it "has a default 'exit' value of 0" do
12
14
  NginxTail::Application.new.exit.should eq(0)
13
15
  end
@@ -19,5 +21,23 @@ describe NginxTail::Application do
19
21
  it "has a default 'interrupted' value of false" do
20
22
  NginxTail::Application.new.interrupted.should eq(false)
21
23
  end
24
+
25
+ # specs governing the help function
26
+
27
+ it "doesn't run when printing help" do
28
+ stfu do
29
+ NginxTail::Application.new(['--help']).running.should eq(false)
30
+ end
31
+ end
32
+
33
+ # specs governing pattern matching behaviour
34
+
35
+ it "has a default 'pattern' value for nginx" do
36
+ NginxTail::Application.new.pattern.should eq(:nginx)
37
+ end
38
+
39
+ it "has a 'pattern' that can be set via options" do
40
+ NginxTail::Application.new(['--apache']).pattern.should eq(:apache)
41
+ end
22
42
 
23
43
  end
data/spec/spec_helper.rb CHANGED
@@ -7,3 +7,21 @@ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
7
7
  $LOAD_PATH.unshift(File.dirname(__FILE__))
8
8
 
9
9
  require 'ntail'
10
+
11
+ def stfu # "shut the f*ck up", in case you're wondering :-)
12
+ begin
13
+ orig_stderr = $stderr.clone
14
+ orig_stdout = $stdout.clone
15
+ $stderr.reopen File.new('/dev/null', 'w')
16
+ $stdout.reopen File.new('/dev/null', 'w')
17
+ return_value = yield
18
+ rescue
19
+ $stdout.reopen orig_stdout
20
+ $stderr.reopen orig_stderr
21
+ raise $!
22
+ ensure
23
+ $stdout.reopen orig_stdout
24
+ $stderr.reopen orig_stderr
25
+ end
26
+ return_value
27
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ntail
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-12 00:00:00.000000000 Z
12
+ date: 2013-12-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rainbow
16
- requirement: &2156818340 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2156818340
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: user-agent
27
- requirement: &2156817660 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,32 +37,47 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *2156817660
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: treetop
38
- requirement: &2156817000 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
- - - ~>
51
+ - - ! '>='
42
52
  - !ruby/object:Gem::Version
43
- version: 1.4.9
53
+ version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *2156817000
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: rake
49
- requirement: &2156816400 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
- - - ~>
67
+ - - ! '>='
53
68
  - !ruby/object:Gem::Version
54
- version: 0.9.2.2
69
+ version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *2156816400
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: shoulda
60
- requirement: &2156815820 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,32 +85,47 @@ dependencies:
65
85
  version: '0'
66
86
  type: :development
67
87
  prerelease: false
68
- version_requirements: *2156815820
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: bundler
71
- requirement: &2156815260 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
- - - ~>
99
+ - - ! '>='
75
100
  - !ruby/object:Gem::Version
76
- version: 1.0.0
101
+ version: '0'
77
102
  type: :development
78
103
  prerelease: false
79
- version_requirements: *2156815260
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: jeweler
82
- requirement: &2156814660 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
- - - ~>
115
+ - - ! '>='
86
116
  - !ruby/object:Gem::Version
87
- version: 1.5.1
117
+ version: '0'
88
118
  type: :development
89
119
  prerelease: false
90
- version_requirements: *2156814660
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: simplecov
93
- requirement: &2156814020 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ! '>='
@@ -98,10 +133,15 @@ dependencies:
98
133
  version: '0'
99
134
  type: :development
100
135
  prerelease: false
101
- version_requirements: *2156814020
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
102
142
  - !ruby/object:Gem::Dependency
103
143
  name: geoip
104
- requirement: &2156813380 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
105
145
  none: false
106
146
  requirements:
107
147
  - - ! '>='
@@ -109,18 +149,76 @@ dependencies:
109
149
  version: '0'
110
150
  type: :development
111
151
  prerelease: false
112
- version_requirements: *2156813380
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
113
158
  - !ruby/object:Gem::Dependency
114
159
  name: rspec
115
- requirement: &2156812800 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ! '>='
164
+ - !ruby/object:Gem::Version
165
+ version: '0'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ - !ruby/object:Gem::Dependency
175
+ name: guard
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
190
+ - !ruby/object:Gem::Dependency
191
+ name: growl
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ! '>='
196
+ - !ruby/object:Gem::Version
197
+ version: '0'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ - !ruby/object:Gem::Dependency
207
+ name: guard-rspec
208
+ requirement: !ruby/object:Gem::Requirement
116
209
  none: false
117
210
  requirements:
118
211
  - - ! '>='
119
212
  - !ruby/object:Gem::Version
120
- version: '2.5'
213
+ version: '0'
121
214
  type: :development
122
215
  prerelease: false
123
- version_requirements: *2156812800
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
124
222
  description: A tail(1)-like utility for nginx log files. It supports parsing, filtering
125
223
  and formatting individual log lines.
126
224
  email: pvandenberk@mac.com
@@ -132,9 +230,10 @@ extra_rdoc_files:
132
230
  - README.md
133
231
  files:
134
232
  - .document
135
- - .rvmrc
233
+ - .ruby-version
136
234
  - Gemfile
137
235
  - Gemfile.lock
236
+ - Guardfile
138
237
  - LICENSE.txt
139
238
  - README.md
140
239
  - Rakefile
@@ -195,7 +294,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
195
294
  version: '0'
196
295
  segments:
197
296
  - 0
198
- hash: -4300582333920035908
297
+ hash: 696242616465862469
199
298
  required_rubygems_version: !ruby/object:Gem::Requirement
200
299
  none: false
201
300
  requirements:
@@ -204,26 +303,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
204
303
  version: '0'
205
304
  requirements: []
206
305
  rubyforge_project:
207
- rubygems_version: 1.8.11
306
+ rubygems_version: 1.8.23
208
307
  signing_key:
209
308
  specification_version: 3
210
309
  summary: A tail(1)-like utility for nginx log files
211
- test_files:
212
- - spec/application_spec.rb
213
- - spec/spec_helper.rb
214
- - test/helper.rb
215
- - test/ntail/test_formatting.rb
216
- - test/ntail/test_http_method.rb
217
- - test/ntail/test_http_referer.rb
218
- - test/ntail/test_http_user_agent.rb
219
- - test/ntail/test_http_version.rb
220
- - test/ntail/test_known_ip_addresses.rb
221
- - test/ntail/test_local_ip_addresses.rb
222
- - test/ntail/test_log_line.rb
223
- - test/ntail/test_remote_addr.rb
224
- - test/ntail/test_remote_user.rb
225
- - test/ntail/test_request.rb
226
- - test/ntail/test_status.rb
227
- - test/ntail/test_time_local.rb
228
- - test/ntail/test_uri.rb
229
- - test/test_ntail.rb
310
+ test_files: []
data/.rvmrc DELETED
@@ -1,55 +0,0 @@
1
- #!/usr/bin/env bash
2
-
3
- # This is an RVM Project .rvmrc file, used to automatically load the ruby
4
- # development environment upon cd'ing into the directory
5
-
6
- # First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
7
- environment_id="ruby-1.9.3-p0@ntail"
8
-
9
- #
10
- # Uncomment following line if you want options to be set only for given project.
11
- #
12
- # PROJECT_JRUBY_OPTS=( --1.9 )
13
-
14
- #
15
- # First we attempt to load the desired environment directly from the environment
16
- # file. This is very fast and efficient compared to running through the entire
17
- # CLI and selector. If you want feedback on which environment was used then
18
- # insert the word 'use' after --create as this triggers verbose mode.
19
- #
20
- if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
21
- && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
22
- then
23
- \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
24
-
25
- if [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]]
26
- then
27
- . "${rvm_path:-$HOME/.rvm}/hooks/after_use"
28
- fi
29
- else
30
- # If the environment file has not yet been created, use the RVM CLI to select.
31
- if ! rvm --create "$environment_id"
32
- then
33
- echo "Failed to create RVM environment '${environment_id}'."
34
- return 1
35
- fi
36
- fi
37
-
38
- #
39
- # If you use an RVM gemset file to install a list of gems (*.gems), you can have
40
- # it be automatically loaded. Uncomment the following and adjust the filename if
41
- # necessary.
42
- #
43
- # filename=".gems"
44
- # if [[ -s "$filename" ]]
45
- # then
46
- # rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
47
- # fi
48
-
49
- # If you use bundler, this might be useful to you:
50
- # if command -v bundle && [[ -s Gemfile ]]
51
- # then
52
- # bundle install
53
- # fi
54
-
55
-