playback 1.0.0 → 1.1.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: bf2e91b3876efbd30efd8318e80d831d5fa14b9a
4
- data.tar.gz: c21c5b68e7ea37e1cc0d5145523dd3fa78bbc8a9
3
+ metadata.gz: 580e0a3e9b1cafc764fe1f62eb6b405078c360c0
4
+ data.tar.gz: 0420f4a3e89b6b7665b6a5337e332b38989258f6
5
5
  SHA512:
6
- metadata.gz: bce6c7845b5a9d7c8da1f72154aaad6cd24c134a34e5bf2e741f6cd7bc4cf42f684e12bd16027d1ef7b7f48c783d653335acb76dd0f0665b491db526390615e1
7
- data.tar.gz: bb7e8427bd00e2903c9c7992571013277a38854a9b98b50a0528973c4b8b76540fcf9955f0bdb9ba49b23488d2e9b4e330b2c97ce96f58ae6dcba82fb52775a4
6
+ metadata.gz: 12540808291a231bd988178f6bb463b3605056effd7a98ce896d2e90fb4437856e1f33a84bc32b9a9c108874c3ed9bbc7ccab1151445054ae1bdb099e02035a4
7
+ data.tar.gz: 84cb9e852812fa93dedf78bdfe039dfcb6b6f08d0d8e0dd3b3ae282aa5067db4c4621b2dd6721d23f477a04092db3683bd5ca8eb72c8d9a0196ccc4978a3fddc
data/README.md CHANGED
@@ -1,7 +1,6 @@
1
1
  # Playback
2
2
  [![Build Status](https://travis-ci.org/takady/playback.svg?branch=master)](https://travis-ci.org/takady/playback) [![Code Climate](https://codeclimate.com/github/takady/playback/badges/gpa.svg)](https://codeclimate.com/github/takady/playback)
3
- execute http request from access log
4
- supported log format: apache(common, combined and customized base on combined)
3
+ Execute http request from apache access log
5
4
 
6
5
  ## Installation
7
6
 
@@ -1,4 +1,4 @@
1
- require "playback/parser"
1
+ require 'apache_log/parser'
2
2
  require 'net/http'
3
3
  require 'json'
4
4
 
@@ -9,7 +9,8 @@ module Playback
9
9
 
10
10
  def initialize(base_uri)
11
11
  @base_uri = base_uri
12
- @parser = Playback::Parser
12
+ @common_parser = ApacheLog::Parser.new('common')
13
+ @combined_parser = ApacheLog::Parser.new('combined')
13
14
  end
14
15
 
15
16
  def run(line, return_type='')
@@ -27,7 +28,7 @@ module Playback
27
28
  path: path,
28
29
  status: res.code.to_i,
29
30
  }
30
- res = JSON.generate result
31
+ res = JSON.generate(result)
31
32
  end
32
33
 
33
34
  res
@@ -36,12 +37,14 @@ module Playback
36
37
  e.message
37
38
  end
38
39
 
40
+ private
41
+
39
42
  def parse(line)
40
43
  begin
41
- @parser.parse(line.chomp, 'combined')
44
+ @combined_parser.parse(line.chomp)
42
45
  rescue
43
46
  begin
44
- @parser.parse(line.chomp, 'common')
47
+ @common_parser.parse(line.chomp)
45
48
  rescue => e
46
49
  raise e
47
50
  end
@@ -76,7 +79,5 @@ module Playback
76
79
  raise "it is not supported http method: <#{method}>"
77
80
  end
78
81
  end
79
-
80
- private :parse, :request
81
82
  end
82
83
  end
@@ -1,3 +1,3 @@
1
1
  module Playback
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
data/playback.gemspec CHANGED
@@ -7,9 +7,9 @@ Gem::Specification.new do |spec|
7
7
  spec.name = "playback"
8
8
  spec.version = Playback::VERSION
9
9
  spec.authors = ["Yuichi Takada"]
10
- spec.email = ["takadyy@gmail.com"]
11
- spec.summary = "generate and execute http request from access log"
12
- spec.description = "generate and execute http request from access log"
10
+ spec.email = ["takadyuichi@gmail.com"]
11
+ spec.summary = "Execute http request from apache access log"
12
+ spec.description = spec.summary
13
13
  spec.homepage = "https://github.com/takady/playback"
14
14
  spec.license = "MIT"
15
15
 
@@ -21,4 +21,5 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency "bundler", "~> 1.6"
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
23
  spec.add_development_dependency "rspec"
24
+ spec.add_dependency "apache_log-parser", "3.1.0"
24
25
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: playback
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuichi Takada
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-08 00:00:00.000000000 Z
11
+ date: 2015-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,9 +52,23 @@ dependencies:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
- description: generate and execute http request from access log
55
+ - !ruby/object:Gem::Dependency
56
+ name: apache_log-parser
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 3.1.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 3.1.0
69
+ description: Execute http request from apache access log
56
70
  email:
57
- - takadyy@gmail.com
71
+ - takadyuichi@gmail.com
58
72
  executables:
59
73
  - playback
60
74
  extensions: []
@@ -69,7 +83,6 @@ files:
69
83
  - Rakefile
70
84
  - bin/playback
71
85
  - lib/playback.rb
72
- - lib/playback/parser.rb
73
86
  - lib/playback/request.rb
74
87
  - lib/playback/version.rb
75
88
  - playback.gemspec
@@ -98,7 +111,7 @@ rubyforge_project:
98
111
  rubygems_version: 2.2.2
99
112
  signing_key:
100
113
  specification_version: 4
101
- summary: generate and execute http request from access log
114
+ summary: Execute http request from apache access log
102
115
  test_files:
103
116
  - spec/playback/request_spec.rb
104
117
  - spec/spec_helper.rb
@@ -1,54 +0,0 @@
1
- module Playback
2
- module Parser
3
-
4
- def self.parse(line, format)
5
- common_fields = %w(request)
6
- combined_fields = common_fields + %w(referer user_agent)
7
-
8
- common_pattern = '\S+\s+\S+\s+\S+\s+\[.*\]\s+"(\S+\s\S+\s\S+)"\s+\S+\s+\S+'
9
- combined_pattern = common_pattern + '\s+"([^"]*)"\s+"([^"]*)".*'
10
-
11
- case format
12
- when 'common'
13
- fields = common_fields
14
- pattern = /^#{common_pattern}$/
15
- when 'combined'
16
- fields = combined_fields
17
- pattern = /^#{combined_pattern}$/
18
- else
19
- raise "no such format: <#{format}>"
20
- end
21
-
22
- matched = pattern.match(line)
23
- raise "parse error at line: <#{line}>" if matched.nil?
24
-
25
- generate_hash(fields, matched.to_a)
26
- end
27
-
28
- def self.generate_hash(keys, values)
29
- hash = {}
30
-
31
- keys.each.with_index do |key, idx|
32
- key = key.to_sym
33
- if (key == :request)
34
- hash[key] = parse_request(values[idx+1])
35
- else
36
- hash[key] = values[idx+1]
37
- end
38
- end
39
-
40
- hash
41
- end
42
-
43
- def self.parse_request(str)
44
- method, path, protocol = str.split
45
- {
46
- method: method,
47
- path: path,
48
- protocol: protocol,
49
- }
50
- end
51
-
52
- private_class_method :generate_hash, :parse_request
53
- end
54
- end