logworm_amqp 0.8.9 → 0.9.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.
@@ -0,0 +1,105 @@
1
+ ###
2
+ # Extemds ActionController::Base and aliases the process method, to wrap it with the standard logworm request cycle
3
+ #
4
+ # By default it will automatically log web requests (in a short format) into web_log
5
+ # Can also log headers, if specified
6
+ ###
7
+ if defined?(ActionController)
8
+
9
+ require 'benchmark'
10
+
11
+ ActionController::Base.class_eval do
12
+ ## Basic settings: log requests, without headers. Use default db, and timeout after 1 second
13
+ @@log_requests = true
14
+ @@log_headers = false
15
+ @@dev_logging = false
16
+ @@timeout = 1
17
+ Logworm::Logger.use_default_db
18
+
19
+ ###
20
+ # Disable automatic logging of requests
21
+ # Use from ApplicationController
22
+ ###
23
+ def self.donot_log_requests
24
+ @@log_requests = false
25
+ end
26
+
27
+ ###
28
+ # Log headers with requests
29
+ # Use from ApplicationController
30
+ ###
31
+ def self.log_headers
32
+ @@log_headers = true
33
+ end
34
+
35
+ ###
36
+ # Turn on logging in development mode
37
+ ###
38
+ def self.log_in_development
39
+ @@dev_logging = true
40
+ end
41
+
42
+ ###
43
+ # Replaces (and embeds) the default Rails processing of a request.
44
+ # Call the original method, logs the request unless disabled, and flushes the logworm list
45
+ ###
46
+ def process_with_logworm_log(request, response, method = :perform_action, *arguments)
47
+ unless (RAILS_ENV == 'production' or (RAILS_ENV == 'development' and @@dev_logging))
48
+ return process_without_logworm_log(request, response, method, *arguments)
49
+ end
50
+
51
+ Logworm::Logger.start_cycle
52
+ begin
53
+ startTime = Time.now
54
+ response = process_without_logworm_log(request, response, method, *arguments)
55
+ appTime = (Time.now - startTime)
56
+ ensure
57
+ log_request(request, response, appTime)
58
+ return response
59
+ end
60
+ end
61
+ alias_method_chain :process, :logworm_log
62
+
63
+
64
+ private
65
+ def log_request(request, response, appTime)
66
+ method = request.env['REQUEST_METHOD']
67
+ path = request.env['REQUEST_PATH'].blank? ? "/" : request.env['REQUEST_PATH']
68
+ ip = request.env['REMOTE_ADDR']
69
+ http_headers = request.headers.reject {|k,v| !(k.to_s =~ /^HTTP/) }
70
+ status = response.status[0..2]
71
+ queue_size = request.env['HTTP_X_HEROKU_QUEUE_DEPTH'].blank? ? -1 : request.env['HTTP_X_HEROKU_QUEUE_DEPTH'].to_i
72
+
73
+ entry = { :summary => "#{method} #{path} - #{status} #{appTime}",
74
+ :request_method => method,
75
+ :request_path => path,
76
+ :request_ip => ip,
77
+ :input => cleaned_input(request),
78
+ :response_status => status,
79
+ :profiling => appTime,
80
+ :queue_size => queue_size}
81
+ entry[:request_headers] = http_headers if @@log_headers
82
+ entry[:response_headers] = response.headers if @@log_headers
83
+ Logworm::Logger.log(:web_log, entry) if @@log_requests
84
+
85
+ begin
86
+ Timeout::timeout(@@timeout) {
87
+ sent, elapsed = Logworm::Logger.flush
88
+ }
89
+ rescue Exception => e
90
+ # Ignore --nothing we can do. The list of logs may (and most likely will) be preserved for the next request
91
+ Rails.logger.error("logworm call failed: #{e}")
92
+ end
93
+ end
94
+
95
+ def cleaned_input(request)
96
+ pars = request.parameters.clone
97
+ pars.delete("controller")
98
+ pars.delete("action")
99
+ respond_to?(:filter_parameters) ? filter_parameters(pars) : pars
100
+ end
101
+
102
+ end
103
+
104
+ end
105
+
@@ -0,0 +1,66 @@
1
+ class LogwormCompute
2
+ def initialize(table, function, field, options)
3
+ @table = table
4
+ @function = function
5
+ @field = field
6
+ @options = options
7
+
8
+ @valuefield = @field ? "#{@function}(#{@field})" : @function
9
+
10
+ begin
11
+ @db = Logworm::DB.from_config_or_die(@options[:app])
12
+ spec = {:aggregate_function => @function, :aggregate_argument => @field}.merge(@options)
13
+ @query = Logworm::QueryBuilder.new(spec)
14
+ rescue Exception => e
15
+ $stderr.puts "There was an error: #{e}"
16
+ exit(-1)
17
+ end
18
+
19
+ end
20
+
21
+ def run
22
+ # Create a resource for the query
23
+ begin
24
+ query_data = @db.query(@table, @query.to_json)
25
+ url = query_data["results_uri"]
26
+ rows = @db.results(url + "?nocache=1")["results"]
27
+ rescue Logworm::DatabaseException, Logworm::ForbiddenAccessException => e
28
+ $stderr.puts "Error: #{e}"
29
+ exit(-1)
30
+ rescue Logworm::InvalidQueryException => e
31
+ $stderr.puts "#{e}, #{@query.to_json}"
32
+ exit(-1)
33
+ rescue Exception => e
34
+ $stderr.puts "Error: #{e}"
35
+ exit(-1)
36
+ end
37
+
38
+ if @options[:debug]
39
+ puts "logworm query: #{@query.to_json}"
40
+ puts "logworm query url: #{query_data["self_uri"]}"
41
+ puts "logworm results url: #{url}"
42
+ puts
43
+ end
44
+
45
+ if @query.groups.length > 0
46
+ results = {}
47
+ rows.each do |r|
48
+ grp = []
49
+ @query.groups.each do |g|
50
+ grp << "#{g}:#{r[g]}"
51
+ end
52
+ key = "[#{grp.join(', ')}]"
53
+ value = r[@function]
54
+ results[key] = {:value => value, :keys => r.dup}
55
+ results[key][:keys].delete(@function)
56
+ end
57
+ results.keys.sort.each do |k|
58
+ puts "#{k} \t ==> #{@valuefield} = #{results[k][:value]}"
59
+ end
60
+ else
61
+ puts "#{@valuefield} = #{rows.first[@function]}"
62
+ end
63
+
64
+ end
65
+
66
+ end
data/lib/cmd/tail.rb ADDED
@@ -0,0 +1,106 @@
1
+ class LogwormTail
2
+ def initialize(table, options)
3
+ @table = table
4
+ @options = options
5
+
6
+ begin
7
+ @db = Logworm::DB.from_config_or_die(@options[:app])
8
+ @query = Logworm::QueryBuilder.new(@options.merge(:force_ts => true))
9
+ rescue Exception => e
10
+ $stderr.puts "Error: #{e}"
11
+ exit(-1)
12
+ end
13
+ end
14
+
15
+ def self.list(options = {})
16
+ begin
17
+ @db = Logworm::DB.from_config_or_die(options[:app])
18
+ @tables = @db.tables
19
+ if @tables and @tables.size > 0
20
+ puts "The following are the tables that you've created thus far:"
21
+ @tables.sort {|x,y| x["tablename"] <=> y["tablename"]}.each do |t|
22
+ puts "\t - #{t["tablename"]}, #{t["rows"]} rows, last updated on #{date_time(t["last_write"])}"
23
+ end
24
+ else
25
+ puts "You haven't recorded any data yet."
26
+ end
27
+ rescue Exception => e
28
+ $stderr.puts "Error: #{e}"
29
+ exit(-1)
30
+ end
31
+ end
32
+
33
+ def run
34
+ # Create a resource for the query
35
+ begin
36
+ query_data = @db.query(@table, @query.to_json)
37
+ url = query_data["results_uri"]
38
+ rescue Logworm::DatabaseException, Logworm::ForbiddenAccessException => e
39
+ $stderr.puts "Error: #{e}"
40
+ exit(-1)
41
+ rescue Logworm::InvalidQueryException => e
42
+ $stderr.puts "#{e}"
43
+ exit(-1)
44
+ rescue Exception => e
45
+ $stderr.puts "Error: #{e}"
46
+ exit(-1)
47
+ end
48
+
49
+ if @options[:debug]
50
+ puts "logworm query: #{@query.to_json}"
51
+ puts "logworm query url: #{query_data["self_uri"]}"
52
+ puts "logworm results url: #{url}"
53
+ puts "refresh frequency: #{@options[:frequency]}" if @options[:loop]
54
+ puts
55
+ end
56
+
57
+ while true do
58
+ begin
59
+ last_printed = print_rows(@db.results(url + "?nocache=1")["results"], last_printed || nil)
60
+ rescue Logworm::DatabaseException, Logworm::ForbiddenAccessException => e
61
+ $stderr.puts "Error: #{e}"
62
+ exit(-1)
63
+ rescue Logworm::InvalidQueryException => e
64
+ $stderr.puts "#{e}"
65
+ exit(-1)
66
+ rescue Exception => e
67
+ $stderr.puts "Error: #{e}"
68
+ exit(-1)
69
+ end
70
+ exit(0) unless @options[:loop]
71
+ sleep @options[:frequency]
72
+ end
73
+ end
74
+
75
+ private
76
+
77
+ def self.date_time(val)
78
+ val.gsub(/T/, ' @ ').gsub(/Z/, ' GMT')
79
+ end
80
+
81
+ def print_rows(rows, last)
82
+ last = "" if last.nil?
83
+ rows.reverse.each do |r|
84
+ next unless r["_ts"]
85
+ if r["_ts"] > last
86
+ last = r["_ts"]
87
+ r.delete("_id") unless @options[:fields].include?("_id")
88
+ r.delete("_ts") unless @options[:fields].include?("_ts")
89
+ puts "#{LogwormTail.date_time(last)} ==> "
90
+ print_row(r)
91
+ end
92
+ end
93
+ last
94
+ end
95
+
96
+ def print_row(r)
97
+ if @options[:flat]
98
+ puts "\t" + r.keys.sort.map {|k| "#{k}: #{r[k].inspect}"}.join(', ')
99
+ else
100
+ r.keys.sort.each do |k|
101
+ puts "\t#{k}: #{r[k].inspect}"
102
+ end
103
+ puts
104
+ end
105
+ end
106
+ end
data/lib/logworm_amqp.rb CHANGED
@@ -1,3 +1,64 @@
1
1
  require File.dirname(__FILE__) + '/base/db'
2
2
  require File.dirname(__FILE__) + '/base/config'
3
3
  require File.dirname(__FILE__) + '/base/query_builder'
4
+
5
+ require File.dirname(__FILE__) + '/client/logger'
6
+ require File.dirname(__FILE__) + '/client/rack'
7
+ require File.dirname(__FILE__) + '/client/rails'
8
+
9
+ def lw_log (logname, values)
10
+ Logworm::Logger.log(logname, values)
11
+ end
12
+
13
+ ###
14
+ # Perform a query against the logworm server
15
+ #
16
+ # Requires a log table, and a query
17
+ # The query can be provided as a JSON string, following the syntax described in http://www.logworm.com/docs/query
18
+ # or as a Hash of options, with the following keys (all optional)
19
+ # :fields => String with a comma-separated list of fields (quoted or not), or Array of Strings
20
+ # :aggregate_function => String
21
+ # :aggregate_argument => String
22
+ # :aggregate_group => String with a comma-separated list of fields (quoted or not), or Array of Strings
23
+ # :conditions => String with comma-separated conditions (in MongoDB syntax), or Array of Strings
24
+ # :start => String or Integer (for year)
25
+ # :end => String or Integer (for year)
26
+ # :limit => String or Integer
27
+ #
28
+ # See Logworm::QueryBuilder
29
+ #
30
+ # Returns Hash with
31
+ # id ==> id of the query
32
+ # query_url ==> URL to GET information about the query
33
+ # results_url ==> URL to GET the results for the query
34
+ # created ==> First creation of the query
35
+ # updated ==> most recent update of the query and/or its results
36
+ # expires ==> until that datime, the query won't be rerun against the database
37
+ # execution_time ==> time in ms to run the query
38
+ # results ==> array of hashmaps. Each element corresponds to a log entry, with its fields
39
+ #
40
+ # raises Logworm::DatabaseException, Logworm::ForbiddenAccessException, Logworm::InvalidQueryException
41
+ # or just a regular Exception if it cannot find the URL to the logging database
42
+ ###
43
+ def lw_query(logname, query = {})
44
+ db = Logworm::DB.from_config_or_die # Establish connection to DB
45
+ query = Logworm::QueryBuilder.new(query).to_json if query.is_a? Hash # Turn query into proper JSON string
46
+ query_data = db.query(logname, query) # POST to create query
47
+ db.results(query_data["results_uri"]) # GET from query's results uri
48
+ end
49
+
50
+ ###
51
+ # Returns an array with information about the logging tables in the database
52
+ # Each element in the array has;
53
+ # :tablename => The name of the logging table
54
+ # :url => The URL for POSTing new log entries
55
+ # :last_write => Datetime of last entry
56
+ # :rows => Count of entries
57
+ #
58
+ # raises Logworm::DatabaseException, Logworm::ForbiddenAccessException, Logworm::InvalidQueryException
59
+ # or just a regular Exception if it cannot find the URL to the logging database
60
+ ###
61
+ def lw_list_logs
62
+ db = Logworm::DB.from_config_or_die # Establish connection to DB
63
+ db.tables # Call tables command
64
+ end
@@ -0,0 +1,4 @@
1
+ require 'logworm_amqp'
2
+
3
+ require File.dirname(__FILE__) + '/cmd/tail'
4
+ require File.dirname(__FILE__) + '/cmd/compute'
data/logworm_amqp.gemspec CHANGED
@@ -2,59 +2,63 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{logworm_amqp}
5
- s.version = "0.8.9"
5
+ s.version = "0.9.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Pomelo, LLC"]
9
- s.date = %q{2010-08-08}
10
- s.description = %q{logworm logging tool}
9
+ s.date = %q{2010-08-09}
10
+ s.description = %q{logworm - logging service}
11
11
  s.email = %q{schapira@pomelollc.com}
12
- s.extra_rdoc_files = ["CHANGELOG", "README.md", "lib/base/config.rb", "lib/base/db.rb", "lib/base/query_builder.rb", "lib/logworm_amqp.rb"]
13
- s.files = ["CHANGELOG", "Manifest", "README.md", "Rakefile", "lib/base/config.rb", "lib/base/db.rb", "lib/base/query_builder.rb", "lib/logworm_amqp.rb", "spec/base_spec.rb", "spec/builder_spec.rb", "spec/config_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "tests/builder_test.rb", "logworm_amqp.gemspec"]
12
+ s.executables = ["lw-compute", "lw-tail"]
13
+ s.extra_rdoc_files = ["CHANGELOG", "bin/lw-compute", "bin/lw-tail", "lib/base/config.rb", "lib/base/db.rb", "lib/base/query_builder.rb", "lib/client/logger.rb", "lib/client/rack.rb", "lib/client/rails.rb", "lib/cmd/compute.rb", "lib/cmd/tail.rb", "lib/logworm_amqp.rb", "lib/logworm_utils.rb"]
14
+ s.files = ["CHANGELOG", "Manifest", "Rakefile", "bin/lw-compute", "bin/lw-tail", "lib/base/config.rb", "lib/base/db.rb", "lib/base/query_builder.rb", "lib/client/logger.rb", "lib/client/rack.rb", "lib/client/rails.rb", "lib/cmd/compute.rb", "lib/cmd/tail.rb", "lib/logworm_amqp.rb", "lib/logworm_utils.rb", "logworm_amqp.gemspec"]
14
15
  s.homepage = %q{http://www.logworm.com}
15
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Logworm_amqp", "--main", "README.md"]
16
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Logworm_amqp"]
16
17
  s.require_paths = ["lib"]
17
18
  s.rubyforge_project = %q{logworm_amqp}
18
19
  s.rubygems_version = %q{1.3.7}
19
- s.summary = %q{logworm logging tool}
20
+ s.summary = %q{logworm - logging service}
20
21
 
21
22
  if s.respond_to? :specification_version then
22
23
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
23
24
  s.specification_version = 3
24
25
 
25
26
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
27
+ s.add_runtime_dependency(%q<json>, [">= 1.4.3"])
28
+ s.add_runtime_dependency(%q<ruby-hmac>, [">= 0"])
26
29
  s.add_runtime_dependency(%q<memcache-client>, [">= 0"])
27
30
  s.add_runtime_dependency(%q<hpricot>, [">= 0"])
28
31
  s.add_runtime_dependency(%q<oauth>, [">= 0"])
29
32
  s.add_runtime_dependency(%q<heroku>, [">= 0"])
30
- s.add_runtime_dependency(%q<minion>, [">= 0.1.15"])
31
- s.add_development_dependency(%q<memcache-client>, [">= 0"])
33
+ s.add_development_dependency(%q<json>, [">= 1.4.3"])
34
+ s.add_development_dependency(%q<ruby-hmac>, [">= 0"])
32
35
  s.add_development_dependency(%q<hpricot>, [">= 0"])
33
36
  s.add_development_dependency(%q<oauth>, [">= 0"])
34
37
  s.add_development_dependency(%q<heroku>, [">= 0"])
35
- s.add_development_dependency(%q<minion>, [">= 0.1.15"])
36
38
  else
39
+ s.add_dependency(%q<json>, [">= 1.4.3"])
40
+ s.add_dependency(%q<ruby-hmac>, [">= 0"])
37
41
  s.add_dependency(%q<memcache-client>, [">= 0"])
38
42
  s.add_dependency(%q<hpricot>, [">= 0"])
39
43
  s.add_dependency(%q<oauth>, [">= 0"])
40
44
  s.add_dependency(%q<heroku>, [">= 0"])
41
- s.add_dependency(%q<minion>, [">= 0.1.15"])
42
- s.add_dependency(%q<memcache-client>, [">= 0"])
45
+ s.add_dependency(%q<json>, [">= 1.4.3"])
46
+ s.add_dependency(%q<ruby-hmac>, [">= 0"])
43
47
  s.add_dependency(%q<hpricot>, [">= 0"])
44
48
  s.add_dependency(%q<oauth>, [">= 0"])
45
49
  s.add_dependency(%q<heroku>, [">= 0"])
46
- s.add_dependency(%q<minion>, [">= 0.1.15"])
47
50
  end
48
51
  else
52
+ s.add_dependency(%q<json>, [">= 1.4.3"])
53
+ s.add_dependency(%q<ruby-hmac>, [">= 0"])
49
54
  s.add_dependency(%q<memcache-client>, [">= 0"])
50
55
  s.add_dependency(%q<hpricot>, [">= 0"])
51
56
  s.add_dependency(%q<oauth>, [">= 0"])
52
57
  s.add_dependency(%q<heroku>, [">= 0"])
53
- s.add_dependency(%q<minion>, [">= 0.1.15"])
54
- s.add_dependency(%q<memcache-client>, [">= 0"])
58
+ s.add_dependency(%q<json>, [">= 1.4.3"])
59
+ s.add_dependency(%q<ruby-hmac>, [">= 0"])
55
60
  s.add_dependency(%q<hpricot>, [">= 0"])
56
61
  s.add_dependency(%q<oauth>, [">= 0"])
57
62
  s.add_dependency(%q<heroku>, [">= 0"])
58
- s.add_dependency(%q<minion>, [">= 0.1.15"])
59
63
  end
60
64
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logworm_amqp
3
3
  version: !ruby/object:Gem::Version
4
- hash: 45
4
+ hash: 59
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
- - 8
9
8
  - 9
10
- version: 0.8.9
9
+ - 0
10
+ version: 0.9.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Pomelo, LLC
@@ -15,25 +15,27 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-08 00:00:00 -04:00
18
+ date: 2010-08-09 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
- name: memcache-client
22
+ name: json
23
23
  prerelease: false
24
24
  requirement: &id001 !ruby/object:Gem::Requirement
25
25
  none: false
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- hash: 3
29
+ hash: 1
30
30
  segments:
31
- - 0
32
- version: "0"
31
+ - 1
32
+ - 4
33
+ - 3
34
+ version: 1.4.3
33
35
  type: :runtime
34
36
  version_requirements: *id001
35
37
  - !ruby/object:Gem::Dependency
36
- name: hpricot
38
+ name: ruby-hmac
37
39
  prerelease: false
38
40
  requirement: &id002 !ruby/object:Gem::Requirement
39
41
  none: false
@@ -47,7 +49,7 @@ dependencies:
47
49
  type: :runtime
48
50
  version_requirements: *id002
49
51
  - !ruby/object:Gem::Dependency
50
- name: oauth
52
+ name: memcache-client
51
53
  prerelease: false
52
54
  requirement: &id003 !ruby/object:Gem::Requirement
53
55
  none: false
@@ -61,7 +63,7 @@ dependencies:
61
63
  type: :runtime
62
64
  version_requirements: *id003
63
65
  - !ruby/object:Gem::Dependency
64
- name: heroku
66
+ name: hpricot
65
67
  prerelease: false
66
68
  requirement: &id004 !ruby/object:Gem::Requirement
67
69
  none: false
@@ -75,23 +77,21 @@ dependencies:
75
77
  type: :runtime
76
78
  version_requirements: *id004
77
79
  - !ruby/object:Gem::Dependency
78
- name: minion
80
+ name: oauth
79
81
  prerelease: false
80
82
  requirement: &id005 !ruby/object:Gem::Requirement
81
83
  none: false
82
84
  requirements:
83
85
  - - ">="
84
86
  - !ruby/object:Gem::Version
85
- hash: 5
87
+ hash: 3
86
88
  segments:
87
89
  - 0
88
- - 1
89
- - 15
90
- version: 0.1.15
90
+ version: "0"
91
91
  type: :runtime
92
92
  version_requirements: *id005
93
93
  - !ruby/object:Gem::Dependency
94
- name: memcache-client
94
+ name: heroku
95
95
  prerelease: false
96
96
  requirement: &id006 !ruby/object:Gem::Requirement
97
97
  none: false
@@ -102,24 +102,26 @@ dependencies:
102
102
  segments:
103
103
  - 0
104
104
  version: "0"
105
- type: :development
105
+ type: :runtime
106
106
  version_requirements: *id006
107
107
  - !ruby/object:Gem::Dependency
108
- name: hpricot
108
+ name: json
109
109
  prerelease: false
110
110
  requirement: &id007 !ruby/object:Gem::Requirement
111
111
  none: false
112
112
  requirements:
113
113
  - - ">="
114
114
  - !ruby/object:Gem::Version
115
- hash: 3
115
+ hash: 1
116
116
  segments:
117
- - 0
118
- version: "0"
117
+ - 1
118
+ - 4
119
+ - 3
120
+ version: 1.4.3
119
121
  type: :development
120
122
  version_requirements: *id007
121
123
  - !ruby/object:Gem::Dependency
122
- name: oauth
124
+ name: ruby-hmac
123
125
  prerelease: false
124
126
  requirement: &id008 !ruby/object:Gem::Requirement
125
127
  none: false
@@ -133,7 +135,7 @@ dependencies:
133
135
  type: :development
134
136
  version_requirements: *id008
135
137
  - !ruby/object:Gem::Dependency
136
- name: heroku
138
+ name: hpricot
137
139
  prerelease: false
138
140
  requirement: &id009 !ruby/object:Gem::Requirement
139
141
  none: false
@@ -147,49 +149,70 @@ dependencies:
147
149
  type: :development
148
150
  version_requirements: *id009
149
151
  - !ruby/object:Gem::Dependency
150
- name: minion
152
+ name: oauth
151
153
  prerelease: false
152
154
  requirement: &id010 !ruby/object:Gem::Requirement
153
155
  none: false
154
156
  requirements:
155
157
  - - ">="
156
158
  - !ruby/object:Gem::Version
157
- hash: 5
159
+ hash: 3
158
160
  segments:
159
161
  - 0
160
- - 1
161
- - 15
162
- version: 0.1.15
162
+ version: "0"
163
163
  type: :development
164
164
  version_requirements: *id010
165
- description: logworm logging tool
165
+ - !ruby/object:Gem::Dependency
166
+ name: heroku
167
+ prerelease: false
168
+ requirement: &id011 !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ hash: 3
174
+ segments:
175
+ - 0
176
+ version: "0"
177
+ type: :development
178
+ version_requirements: *id011
179
+ description: logworm - logging service
166
180
  email: schapira@pomelollc.com
167
- executables: []
168
-
181
+ executables:
182
+ - lw-compute
183
+ - lw-tail
169
184
  extensions: []
170
185
 
171
186
  extra_rdoc_files:
172
187
  - CHANGELOG
173
- - README.md
188
+ - bin/lw-compute
189
+ - bin/lw-tail
174
190
  - lib/base/config.rb
175
191
  - lib/base/db.rb
176
192
  - lib/base/query_builder.rb
193
+ - lib/client/logger.rb
194
+ - lib/client/rack.rb
195
+ - lib/client/rails.rb
196
+ - lib/cmd/compute.rb
197
+ - lib/cmd/tail.rb
177
198
  - lib/logworm_amqp.rb
199
+ - lib/logworm_utils.rb
178
200
  files:
179
201
  - CHANGELOG
180
202
  - Manifest
181
- - README.md
182
203
  - Rakefile
204
+ - bin/lw-compute
205
+ - bin/lw-tail
183
206
  - lib/base/config.rb
184
207
  - lib/base/db.rb
185
208
  - lib/base/query_builder.rb
209
+ - lib/client/logger.rb
210
+ - lib/client/rack.rb
211
+ - lib/client/rails.rb
212
+ - lib/cmd/compute.rb
213
+ - lib/cmd/tail.rb
186
214
  - lib/logworm_amqp.rb
187
- - spec/base_spec.rb
188
- - spec/builder_spec.rb
189
- - spec/config_spec.rb
190
- - spec/spec.opts
191
- - spec/spec_helper.rb
192
- - tests/builder_test.rb
215
+ - lib/logworm_utils.rb
193
216
  - logworm_amqp.gemspec
194
217
  has_rdoc: true
195
218
  homepage: http://www.logworm.com
@@ -201,8 +224,6 @@ rdoc_options:
201
224
  - --inline-source
202
225
  - --title
203
226
  - Logworm_amqp
204
- - --main
205
- - README.md
206
227
  require_paths:
207
228
  - lib
208
229
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -230,6 +251,6 @@ rubyforge_project: logworm_amqp
230
251
  rubygems_version: 1.3.7
231
252
  signing_key:
232
253
  specification_version: 3
233
- summary: logworm logging tool
254
+ summary: logworm - logging service
234
255
  test_files: []
235
256