ralf 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.rvmrc ADDED
@@ -0,0 +1 @@
1
+ rvm --create ruby-1.8.7-p249@ralf
data/README.rdoc CHANGED
@@ -123,4 +123,6 @@ install the ralf gem.
123
123
  = Authors
124
124
  Authors: {Leon Berenschot}[http://github.com/LeipeLeon] and {K.J. Wierenga}[http://github.com/kjwierenga]
125
125
 
126
+ Contributers: {Victor Castell}[http://github.com/victorcoder]
127
+
126
128
  This program is used for {kerkdienstgemist.nl}[http://kerkdienstgemist.nl] {Amazon S3}[http://aws.amazon.com/s3/] log file processing.
data/Rakefile CHANGED
@@ -15,11 +15,11 @@ begin
15
15
  gem.homepage = "http://github.com/kjwierenga/ralf"
16
16
  gem.authors = ["Klaas Jan Wierenga", "Leon Berenschot"]
17
17
 
18
- gem.add_development_dependency 'rspec', '>= 1.3.0'
19
- gem.add_development_dependency 'fakeweb', '>= 1.2.8'
18
+ gem.add_development_dependency 'rspec', '~> 1.3.0'
19
+ gem.add_development_dependency 'fakeweb', '~> 1.2.8'
20
20
 
21
- gem.add_dependency 'right_aws', '>= 1.10.0'
22
- gem.add_dependency 'logmerge', '>= 1.0.2'
21
+ gem.add_dependency 'right_aws', '~> 1.10.0'
22
+ gem.add_dependency 'logmerge', '~> 1.0.2'
23
23
  gem.add_dependency 'chronic', '>= 0.2.3'
24
24
 
25
25
  gem.rdoc_options << '--exclude' << '.'
@@ -27,24 +27,30 @@ begin
27
27
  end
28
28
  Jeweler::GemcutterTasks.new
29
29
  rescue LoadError
30
- puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
30
+ puts "Warning: Jeweler (or a dependency) not available."
31
+ puts " Check dependencies with `rake check_dependencies`."
31
32
  end
32
33
 
33
- require 'spec/rake/spectask'
34
- Spec::Rake::SpecTask.new(:spec) do |spec|
35
- spec.libs << 'lib' << 'spec'
36
- spec.spec_files = FileList['spec/**/*_spec.rb']
37
- end
34
+ begin
35
+ require 'spec/rake/spectask'
36
+ Spec::Rake::SpecTask.new(:spec) do |spec|
37
+ spec.libs << 'lib' << 'spec'
38
+ spec.spec_files = FileList['spec/**/*_spec.rb']
39
+ end
38
40
 
39
- Spec::Rake::SpecTask.new(:rcov) do |spec|
40
- spec.libs << 'lib' << 'spec'
41
- spec.pattern = 'spec/**/*_spec.rb'
42
- spec.rcov = true
43
- end
41
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
42
+ spec.libs << 'lib' << 'spec'
43
+ spec.pattern = 'spec/**/*_spec.rb'
44
+ spec.rcov = true
45
+ end
44
46
 
45
- task :spec => :check_dependencies
47
+ task :spec => :check_dependencies
46
48
 
47
- task :default => :spec
49
+ task :default => :spec
50
+ rescue LoadError
51
+ puts "Warning: Rspec not available."
52
+ puts " Check dependencies with `rake check_dependencies`."
53
+ end
48
54
 
49
55
  require 'rake/rdoctask'
50
56
  Rake::RDocTask.new do |rdoc|
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.1.0
data/lib/ralf.rb CHANGED
@@ -1,10 +1,12 @@
1
1
  require 'rubygems'
2
2
  require 'right_aws'
3
3
  require 'logmerge'
4
- require 'ftools'
4
+ require 'fileutils'
5
5
  require 'ralf/config'
6
6
  require 'ralf/bucket'
7
7
  require 'chronic'
8
+ require 'stringio'
9
+ require 'date'
8
10
 
9
11
  class Ralf
10
12
 
@@ -17,6 +19,7 @@ class Ralf
17
19
  USER_DEFAULT_CONFIG_FILE = '~/.ralf.conf'
18
20
 
19
21
  AMAZON_LOG_FORMAT = Regexp.new('([^ ]*) ([^ ]*) \[([^\]]*)\] ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) "([^"]*)" ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*) "([^"]*)" "([^"]*)"')
22
+ AMAZON_LOG_FORMAT_COPY = Regexp.new('([^ ]*) ([^ ]*) \[([^\]]*)\] ([^ ]*) ([^ ]*) ([^ ]*) (REST.COPY.OBJECT_GET) ([^ ]*) (-) ([^ ]*) (-) (-) ([^ ]*) (-) (-) (-) (-) (-)')
20
23
 
21
24
  # The current configuration.
22
25
  attr_reader :config
@@ -81,7 +84,7 @@ class Ralf
81
84
  merged_log = output_log + ".alf"
82
85
 
83
86
  # create directory for output file
84
- File.makedirs(File.dirname(merged_log))
87
+ FileUtils.mkdir_p(File.dirname(merged_log))
85
88
 
86
89
  # merge the log files
87
90
  Ralf.merge(merged_log, log_files)
@@ -109,7 +112,7 @@ class Ralf
109
112
 
110
113
  # Download log files for +bucket+ and +date+ to +dir+.
111
114
  def self.download_logs(bucket, date, dir)
112
- File.makedirs(dir)
115
+ FileUtils.mkdir_p(dir)
113
116
 
114
117
  # iterate over the available log files, saving them to disk and
115
118
  log_files = []
@@ -134,7 +137,9 @@ class Ralf
134
137
  out_file = File.open(output_log, 'w')
135
138
  File.open(input_log, 'r') do |in_file|
136
139
  while (line = in_file.gets)
137
- out_file.puts(translate_to_clf(line))
140
+ if clf = translate_to_clf(line)
141
+ out_file.puts(clf)
142
+ end
138
143
  end
139
144
  end
140
145
  out_file.close
@@ -142,10 +147,13 @@ class Ralf
142
147
 
143
148
  def self.translate_to_clf(line)
144
149
  if line =~ AMAZON_LOG_FORMAT
145
- # host, date, ip, acl, request, status, bytes, agent = $2, $3, $4, $5, $9, $10, $12, $17
146
- "%s - %s [%s] \"%s\" %d %s \"%s\" \"%s\"" % [$4, $5, $3, $9, $10, $12, $16, $17]
150
+ # host, date, ip, acl, request, status, bytes, agent, total_time_ms = $2, $3, $4, $5, $9, $10, $12, $17, $14
151
+ "%s - %s [%s] \"%s\" %s %s \"%s\" \"%s\" %d" % [$4, $5, $3, $9, $10, $12, $16, $17, ($14.to_i/1000.0).round]
152
+ elsif line =~ AMAZON_LOG_FORMAT_COPY
153
+ "%s - %s [%s] \"%s\" %s %s \"%s\" \"REST.COPY.OBJECT_GET\" %d" % [$4, $5, $3, "POST /#{$8} HTTP/1.1", $10, $12, $16, 0]
147
154
  else
148
155
  $stderr.puts "# ERROR: #{line}"
156
+ nil
149
157
  end
150
158
  end
151
159
 
data/lib/ralf/config.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'ralf/interpolation'
2
+ require 'yaml'
2
3
 
3
4
  class Ralf::Config
4
5
 
data/ralf.gemspec ADDED
@@ -0,0 +1,77 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{ralf}
8
+ s.version = "1.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Klaas Jan Wierenga", "Leon Berenschot"]
12
+ s.date = %q{2011-05-09}
13
+ s.default_executable = %q{ralf}
14
+ s.description = %q{ Download logfiles from Amazon S3 buckets to local disk and combine them in one Apache CLF per bucket
15
+ }
16
+ s.email = ["k.j.wierenga@gmail.com", "leonb@beriedata.nl"]
17
+ s.executables = ["ralf"]
18
+ s.extra_rdoc_files = [
19
+ "README.rdoc"
20
+ ]
21
+ s.files = [
22
+ ".rvmrc",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "bin/ralf",
27
+ "lib/ralf.rb",
28
+ "lib/ralf/bucket.rb",
29
+ "lib/ralf/config.rb",
30
+ "lib/ralf/interpolation.rb",
31
+ "lib/ralf/log.rb",
32
+ "lib/ralf/option_parser.rb",
33
+ "ralf.gemspec",
34
+ "spec/fixtures/apache.log",
35
+ "spec/fixtures/example_buckets.yaml",
36
+ "spec/ralf/bucket_spec.rb",
37
+ "spec/ralf/config_spec.rb",
38
+ "spec/ralf/interpolation_spec.rb",
39
+ "spec/ralf/log_spec.rb",
40
+ "spec/ralf/option_parser_spec.rb",
41
+ "spec/ralf_spec.rb",
42
+ "spec/spec.opts",
43
+ "spec/spec_helper.rb",
44
+ "spec/support/fakeweb.rb"
45
+ ]
46
+ s.homepage = %q{http://github.com/kjwierenga/ralf}
47
+ s.rdoc_options = ["--exclude", "."]
48
+ s.require_paths = ["lib"]
49
+ s.rubygems_version = %q{1.3.7}
50
+ s.summary = %q{Retrieve Amazon Log Files}
51
+
52
+ if s.respond_to? :specification_version then
53
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
54
+ s.specification_version = 3
55
+
56
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
57
+ s.add_development_dependency(%q<rspec>, ["~> 1.3.0"])
58
+ s.add_development_dependency(%q<fakeweb>, ["~> 1.2.8"])
59
+ s.add_runtime_dependency(%q<right_aws>, ["~> 1.10.0"])
60
+ s.add_runtime_dependency(%q<logmerge>, ["~> 1.0.2"])
61
+ s.add_runtime_dependency(%q<chronic>, [">= 0.2.3"])
62
+ else
63
+ s.add_dependency(%q<rspec>, ["~> 1.3.0"])
64
+ s.add_dependency(%q<fakeweb>, ["~> 1.2.8"])
65
+ s.add_dependency(%q<right_aws>, ["~> 1.10.0"])
66
+ s.add_dependency(%q<logmerge>, ["~> 1.0.2"])
67
+ s.add_dependency(%q<chronic>, [">= 0.2.3"])
68
+ end
69
+ else
70
+ s.add_dependency(%q<rspec>, ["~> 1.3.0"])
71
+ s.add_dependency(%q<fakeweb>, ["~> 1.2.8"])
72
+ s.add_dependency(%q<right_aws>, ["~> 1.10.0"])
73
+ s.add_dependency(%q<logmerge>, ["~> 1.0.2"])
74
+ s.add_dependency(%q<chronic>, [">= 0.2.3"])
75
+ end
76
+ end
77
+
data/spec/ralf_spec.rb CHANGED
@@ -255,7 +255,7 @@ describe Ralf do
255
255
  @example_buckets[name]
256
256
  end
257
257
 
258
- File.stub(:makedirs)
258
+ FileUtils.stub(:mkdir_p)
259
259
  ralf = Ralf.new(@valid_options.merge(:cache_dir => '/var/log/s3/cache/:bucket',
260
260
  :output_file => '/var/log/s3/:bucket.log',
261
261
  :buckets => 'test1',
@@ -313,22 +313,31 @@ describe Ralf do
313
313
 
314
314
  it "should convert output files to common_log_format" do
315
315
  input_log = StringIO.new
316
+
317
+ # last two lines are ignored because they don't match
316
318
  input_log.string = <<EOF_INPUT
317
319
  2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 assets.staging.kerkdienstgemist.nl [10/Feb/2010:07:17:01 +0000] 10.32.219.38 3272ee65a908a7677109fedda345db8d9554ba26398b2ca10581de88777e2b61 784FD457838EFF42 REST.GET.ACL - "GET /?acl HTTP/1.1" 200 - 1384 - 399 - "-" "Jakarta Commons-HttpClient/3.0" -
318
320
  2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 assets.staging.kerkdienstgemist.nl [10/Feb/2010:07:17:02 +0000] 10.32.219.38 3272ee65a908a7677109fedda345db8d9554ba26398b2ca10581de88777e2b61 6E239BC5A4AC757C SOAP.PUT.OBJECT logs/2010-02-10-07-17-02-F6EFD00DAB9A08B6 "POST /soap/ HTTP/1.1" 200 - 797 686 63 31 "-" "Axis/1.3" -
319
321
  2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 assets.staging.kerkdienstgemist.nl [10/Feb/2010:07:24:40 +0000] 10.217.37.15 - 0B76C90B3634290B REST.GET.ACL - "GET /?acl HTTP/1.1" 307 TemporaryRedirect 488 - 7 - "-" "Jakarta Commons-HttpClient/3.0" -
322
+ 2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 media.staging.kerkdienstgemist.nl [17/Sep/2010:13:38:36 +0000] 85.113.244.146 2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 71F7D2AAA93B0A05 REST.COPY.OBJECT_GET 10010150/2010-08-29-0930.mp3 - 200 - - 13538337 - - - - -
323
+ 2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 media.staging.kerkdienstgemist.nl [17/Sep/2010:13:38:37 +0000] 85.113.244.146 2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 7CC5E3D09AE78CAE REST.COPY.OBJECT_GET 10010150/2010-09-05-1000.mp3 - 200 - - 9860402 - - - - -
320
324
  EOF_INPUT
321
325
 
322
326
  clf_log =<<EOF_OUTPUT
323
- 10.32.219.38 - 3272ee65a908a7677109fedda345db8d9554ba26398b2ca10581de88777e2b61 [10/Feb/2010:07:17:01 +0000] "GET /?acl HTTP/1.1" 200 1384 "-" "Jakarta Commons-HttpClient/3.0"
324
- 10.32.219.38 - 3272ee65a908a7677109fedda345db8d9554ba26398b2ca10581de88777e2b61 [10/Feb/2010:07:17:02 +0000] "POST /soap/ HTTP/1.1" 200 797 "-" "Axis/1.3"
325
- 10.217.37.15 - - [10/Feb/2010:07:24:40 +0000] "GET /?acl HTTP/1.1" 307 488 "-" "Jakarta Commons-HttpClient/3.0"
327
+ 10.32.219.38 - 3272ee65a908a7677109fedda345db8d9554ba26398b2ca10581de88777e2b61 [10/Feb/2010:07:17:01 +0000] "GET /?acl HTTP/1.1" 200 1384 "-" "Jakarta Commons-HttpClient/3.0" 0
328
+ 10.32.219.38 - 3272ee65a908a7677109fedda345db8d9554ba26398b2ca10581de88777e2b61 [10/Feb/2010:07:17:02 +0000] "POST /soap/ HTTP/1.1" 200 797 "-" "Axis/1.3" 0
329
+ 10.217.37.15 - - [10/Feb/2010:07:24:40 +0000] "GET /?acl HTTP/1.1" 307 488 "-" "Jakarta Commons-HttpClient/3.0" 0
330
+ 85.113.244.146 - 2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 [17/Sep/2010:13:38:36 +0000] "POST /10010150/2010-08-29-0930.mp3 HTTP/1.1" 200 - "-" "REST.COPY.OBJECT_GET" 0
331
+ 85.113.244.146 - 2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 [17/Sep/2010:13:38:37 +0000] "POST /10010150/2010-09-05-1000.mp3 HTTP/1.1" 200 - "-" "REST.COPY.OBJECT_GET" 0
326
332
  EOF_OUTPUT
327
333
 
328
334
  output_log = StringIO.new
329
335
 
330
336
  File.should_receive(:open).with('input_file', 'r').and_yield(input_log)
331
337
  File.should_receive(:open).with('output_file', 'w').and_return(output_log)
338
+
339
+ # $stderr.should_receive(:puts).with("# ERROR: 2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 media.staging.kerkdienstgemist.nl [17/Sep/2010:13:38:36 +0000] 85.113.244.146 2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 71F7D2AAA93B0A05 REST.COPY.OBJECT_GET 10010150/2010-08-29-0930.mp3 - 200 - - 13538337 - - - - -\n")
340
+ # $stderr.should_receive(:puts).with("# ERROR: 2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 media.staging.kerkdienstgemist.nl [17/Sep/2010:13:38:37 +0000] 85.113.244.146 2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 7CC5E3D09AE78CAE REST.COPY.OBJECT_GET 10010150/2010-09-05-1000.mp3 - 200 - - 9860402 - - - - -\n")
332
341
 
333
342
  Ralf.convert_to_common_log_format('input_file', 'output_file')
334
343
  output_log.string.should eql(clf_log)
@@ -341,6 +350,13 @@ EOF_OUTPUT
341
350
  $stderr.string.should eql("# ERROR: #{invalid_line}\n")
342
351
  end
343
352
 
353
+ it "should add rounded total_time in seconds" do
354
+ $stderr = StringIO.new
355
+ input_line = '2010-10-02-19-15-45-6879098C3140BE9D:2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 media.kerkdienstgemist.nl [02/Oct/2010:18:29:16 +0000] 82.168.113.55 2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 4F911681022807C6 REST.GET.OBJECT 10028050/2010-09-26-1830.mp3 "GET /10028050/2010-09-26-1830.mp3?Signature=E3ehd6nkXjNg7vr%2F4b3LtxCWads%3D&Expires=1286051333&AWSAccessKeyId=AKIAI3XHXJPFSJW2UQAQ HTTP/1.1" 206 - 4194304 17537676 1600 12 "-" "VLC media player - version 1.0.5 Goldeneye - (c) 1996-2010 the VideoLAN team" -'
356
+ Ralf.translate_to_clf(input_line).should eql("82.168.113.55 - 2cf7e6b06335c0689c6d29163df5bb001c96870cd78609e3845f1ed76a632621 [02/Oct/2010:18:29:16 +0000] \"GET /10028050/2010-09-26-1830.mp3?Signature=E3ehd6nkXjNg7vr%2F4b3LtxCWads%3D&Expires=1286051333&AWSAccessKeyId=AKIAI3XHXJPFSJW2UQAQ HTTP/1.1\" 206 4194304 \"-\" \"VLC media player - version 1.0.5 Goldeneye - (c) 1996-2010 the VideoLAN team\" 2")
357
+ $stderr.string.should be_empty
358
+ end
359
+
344
360
  end
345
361
 
346
362
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ralf
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 19
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
8
+ - 1
7
9
  - 0
8
- - 0
9
- version: 1.0.0
10
+ version: 1.1.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Klaas Jan Wierenga
@@ -15,16 +16,18 @@ autorequire:
15
16
  bindir: bin
16
17
  cert_chain: []
17
18
 
18
- date: 2010-05-21 00:00:00 +02:00
19
+ date: 2011-05-09 00:00:00 +02:00
19
20
  default_executable: ralf
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
22
23
  name: rspec
23
24
  prerelease: false
24
25
  requirement: &id001 !ruby/object:Gem::Requirement
26
+ none: false
25
27
  requirements:
26
- - - ">="
28
+ - - ~>
27
29
  - !ruby/object:Gem::Version
30
+ hash: 27
28
31
  segments:
29
32
  - 1
30
33
  - 3
@@ -36,9 +39,11 @@ dependencies:
36
39
  name: fakeweb
37
40
  prerelease: false
38
41
  requirement: &id002 !ruby/object:Gem::Requirement
42
+ none: false
39
43
  requirements:
40
- - - ">="
44
+ - - ~>
41
45
  - !ruby/object:Gem::Version
46
+ hash: 15
42
47
  segments:
43
48
  - 1
44
49
  - 2
@@ -50,9 +55,11 @@ dependencies:
50
55
  name: right_aws
51
56
  prerelease: false
52
57
  requirement: &id003 !ruby/object:Gem::Requirement
58
+ none: false
53
59
  requirements:
54
- - - ">="
60
+ - - ~>
55
61
  - !ruby/object:Gem::Version
62
+ hash: 63
56
63
  segments:
57
64
  - 1
58
65
  - 10
@@ -64,9 +71,11 @@ dependencies:
64
71
  name: logmerge
65
72
  prerelease: false
66
73
  requirement: &id004 !ruby/object:Gem::Requirement
74
+ none: false
67
75
  requirements:
68
- - - ">="
76
+ - - ~>
69
77
  - !ruby/object:Gem::Version
78
+ hash: 19
70
79
  segments:
71
80
  - 1
72
81
  - 0
@@ -78,9 +87,11 @@ dependencies:
78
87
  name: chronic
79
88
  prerelease: false
80
89
  requirement: &id005 !ruby/object:Gem::Requirement
90
+ none: false
81
91
  requirements:
82
92
  - - ">="
83
93
  - !ruby/object:Gem::Version
94
+ hash: 17
84
95
  segments:
85
96
  - 0
86
97
  - 2
@@ -99,7 +110,7 @@ extensions: []
99
110
  extra_rdoc_files:
100
111
  - README.rdoc
101
112
  files:
102
- - .gitignore
113
+ - .rvmrc
103
114
  - README.rdoc
104
115
  - Rakefile
105
116
  - VERSION
@@ -110,6 +121,7 @@ files:
110
121
  - lib/ralf/interpolation.rb
111
122
  - lib/ralf/log.rb
112
123
  - lib/ralf/option_parser.rb
124
+ - ralf.gemspec
113
125
  - spec/fixtures/apache.log
114
126
  - spec/fixtures/example_buckets.yaml
115
127
  - spec/ralf/bucket_spec.rb
@@ -127,38 +139,34 @@ licenses: []
127
139
 
128
140
  post_install_message:
129
141
  rdoc_options:
130
- - --charset=UTF-8
131
142
  - --exclude
132
143
  - .
133
144
  require_paths:
134
145
  - lib
135
146
  required_ruby_version: !ruby/object:Gem::Requirement
147
+ none: false
136
148
  requirements:
137
149
  - - ">="
138
150
  - !ruby/object:Gem::Version
151
+ hash: 3
139
152
  segments:
140
153
  - 0
141
154
  version: "0"
142
155
  required_rubygems_version: !ruby/object:Gem::Requirement
156
+ none: false
143
157
  requirements:
144
158
  - - ">="
145
159
  - !ruby/object:Gem::Version
160
+ hash: 3
146
161
  segments:
147
162
  - 0
148
163
  version: "0"
149
164
  requirements: []
150
165
 
151
166
  rubyforge_project:
152
- rubygems_version: 1.3.6
167
+ rubygems_version: 1.3.7
153
168
  signing_key:
154
169
  specification_version: 3
155
170
  summary: Retrieve Amazon Log Files
156
- test_files:
157
- - spec/ralf/bucket_spec.rb
158
- - spec/ralf/config_spec.rb
159
- - spec/ralf/interpolation_spec.rb
160
- - spec/ralf/log_spec.rb
161
- - spec/ralf/option_parser_spec.rb
162
- - spec/ralf_spec.rb
163
- - spec/spec_helper.rb
164
- - spec/support/fakeweb.rb
171
+ test_files: []
172
+
data/.gitignore DELETED
@@ -1,4 +0,0 @@
1
- **.gem
2
- tmp/**
3
- ralf.gemspec
4
- rdoc