playback 1.0.0 → 1.1.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.
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