trace_location 0.3.0 → 0.4.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
  SHA256:
3
- metadata.gz: 66f68e663932cd87db5098e011861e12856fb7124528263a122cba192d288678
4
- data.tar.gz: c44473b3cb3d3e26f4418b8c70e18c265810b2f39dcb33d284f8f94eac0d5c37
3
+ metadata.gz: ac60bad7314ff13ccd86da5e6b88bff9dd50afedb445a3afabee76495aee49fb
4
+ data.tar.gz: 911bbeafa5bdb0d29d47e99fdb1cee89b55abc8b9d44f4157c5b9833e5dc093c
5
5
  SHA512:
6
- metadata.gz: dcb6a6c3e342f64f75be1df7dffa93d86b9373d0d48f8091417c9264420c9e40598746b04a321a3d11237afeefd62e82a35f5b496b857003d25648be26af2d88
7
- data.tar.gz: c1b02a872caabb568fa751ce0452b5771692591623be2ef86b87a334320ce9aff0eb2dbbf2d62124633916ebf515f4e721d264ab8cd26260e97294c4b128229d
6
+ metadata.gz: 211e0891220cb42c8def533b18ca2baeb55fd91c88c847d861482e5a80cae0feba5d5c292ec4b537fcf6173525c49f337bd46ce93f12922a9b6772a92a73227a
7
+ data.tar.gz: 7fa374686f1131f66e1046469fae708f643a0a6be6040f9773da60c2777e0a8a03c51e8962300d4ffe83d1fe1afd5dd4879fd2e4490db4b134e25185e65770d6
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- trace_location (0.3.0)
4
+ trace_location (0.4.0)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
@@ -3,6 +3,7 @@
3
3
  module TraceLocation
4
4
  module Generator # :nodoc:
5
5
  require_relative 'generator/base'
6
+ require_relative 'generator/csv'
6
7
  require_relative 'generator/log'
7
8
  end
8
9
  end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'csv'
4
+
5
+ module TraceLocation
6
+ module Generator
7
+ class Csv < Base # :nodoc:
8
+ def initialize(events, return_value, options)
9
+ @events = events
10
+ @return_value = return_value
11
+ @dest_dir = options.fetch(:dest_dir) { ::TraceLocation.config.dest_dir }
12
+ @file_path = File.join(@dest_dir, "trace_location-#{Time.now.strftime('%Y%m%d%H%m%s')}.csv")
13
+ end
14
+
15
+ def generate
16
+ setup_dir
17
+ create_file
18
+ $stdout.puts "Created at #{file_path}"
19
+ end
20
+
21
+ private
22
+
23
+ attr_reader :events, :return_value, :dest_dir, :file_path
24
+
25
+ def setup_dir
26
+ FileUtils.mkdir_p(dest_dir)
27
+ end
28
+
29
+ def create_file
30
+ CSV.open(file_path, 'wb+') do |csv|
31
+ csv << %w[event method path lineno]
32
+ events.each do |e|
33
+ csv << [e.event, e.method_str, e.path, e.lineno]
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -7,6 +7,7 @@ module TraceLocation
7
7
  class InvalidFormatError < ArgumentError; end
8
8
 
9
9
  GENERATORS = {
10
+ csv: ::TraceLocation::Generator::Csv,
10
11
  log: ::TraceLocation::Generator::Log
11
12
  }.freeze
12
13
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module TraceLocation
4
- VERSION = '0.3.0'
4
+ VERSION = '0.4.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trace_location
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoshiyuki Hirano
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-06 00:00:00.000000000 Z
11
+ date: 2019-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -78,6 +78,7 @@ files:
78
78
  - lib/trace_location/event.rb
79
79
  - lib/trace_location/generator.rb
80
80
  - lib/trace_location/generator/base.rb
81
+ - lib/trace_location/generator/csv.rb
81
82
  - lib/trace_location/generator/log.rb
82
83
  - lib/trace_location/railtie.rb
83
84
  - lib/trace_location/report.rb