trace_files 0.0.2 → 1.0.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: 4f8261dc1a2e1efde4c3d72ef30d4de7b6288767
4
- data.tar.gz: b85de47e1e3e5921121c2d47103c72340821373e
3
+ metadata.gz: 6bd46ba58cfe8179e260232f2bf2757040291a71
4
+ data.tar.gz: 18d6dd89026d59ee4417c6c4525d25b6300b635d
5
5
  SHA512:
6
- metadata.gz: d622661b147b81160f7a1cbc67d5847be1da7c83c84ab9bdcc261d2b707cc932911c58be8fc76d28d0dcb0987211b89bdd3625236b0d8a17790f966d2d2ddc1b
7
- data.tar.gz: 90ea0d2e72adb88fde4ad2b2f89c0debffd4c9d2a67959359adadfa12915bbab09bfcd32398e2574b4b1bd51ccc96c19e129d87f3692e581ad5e08201f97bfb2
6
+ metadata.gz: 1a5a37c93af9ca8342903d67d6a40f2390c707fd2aff49d3f292eae24bb1ad2cb42446e427a07b92e25ed33efda548b601e82b4e2c50caf684ea8f234229d889
7
+ data.tar.gz: 08d8306d75a189780ab921c5f03ecacc8f933e4c6bda9dbb7424ad1462d9141489364cb66420af12b1d18a6358b9863f8462a5606a2e1a07c0d1aff7e9b24f09
data/.travis.yml ADDED
@@ -0,0 +1,13 @@
1
+ language: ruby
2
+ cache: bundler
3
+ rvm:
4
+ - 2.2.2
5
+ before_install: gem update --remote bundler
6
+ install:
7
+ - bundle install --retry=3
8
+ script:
9
+ - bundle exec thor spec
10
+ notifications:
11
+ email:
12
+ on_success: never
13
+ on_failure: never
data/README.md CHANGED
@@ -1,11 +1,21 @@
1
- # TraceFiles
1
+ # TraceFiles [![Gem Version](https://badge.fury.io/rb/trace_files.svg)](http://badge.fury.io/rb/trace_files) [![Dependency Status](https://gemnasium.com/bootstraponline/trace_files.svg)](https://gemnasium.com/bootstraponline/trace_files) [![Build Status](https://travis-ci.org/bootstraponline/trace_files.svg?branch=master)](https://travis-ci.org/bootstraponline/trace_files/builds)
2
2
 
3
- Gem for tracing ruby files.
3
+ Gem for tracing Ruby files.
4
4
 
5
- ## Contributing
5
+ ```ruby
6
+ require 'trace_files'
6
7
 
7
- 1. Fork it ( https://github.com/[my-github-username]/trace_files/fork )
8
- 2. Create your feature branch (`git checkout -b my-new-feature`)
9
- 3. Commit your changes (`git commit -am 'Add some feature'`)
10
- 4. Push to the branch (`git push origin my-new-feature`)
11
- 5. Create a new Pull Request
8
+ TraceFiles.set trace: [__FILE__]
9
+ ```
10
+
11
+ Glob example.
12
+
13
+ ```ruby
14
+ require 'trace_files'
15
+
16
+ targets = Dir.glob(File.join(__dir__, '../lib/**/*.rb'))
17
+ targets.map! { |t| File.expand_path t }
18
+ puts "Tracing: #{targets}"
19
+
20
+ TraceFiles.set trace: targets
21
+ ```
data/Thorfile CHANGED
@@ -4,3 +4,17 @@ Appium::Thor::Config.set do
4
4
  gem_name 'trace_files'
5
5
  github_owner 'bootstraponline'
6
6
  end
7
+
8
+
9
+ # Must use '::' otherwise Default will point to Thor::Sandbox::Default
10
+ # Debug by calling Thor::Base.subclass_files via Pry
11
+ #
12
+ # https://github.com/erikhuda/thor/issues/484
13
+ #
14
+ class ::Default < Thor
15
+ desc 'spec', 'Run RSpec tests'
16
+
17
+ def spec
18
+ exec 'rspec spec'
19
+ end
20
+ end
data/lib/trace_files.rb CHANGED
@@ -8,6 +8,7 @@ module TraceFiles
8
8
  #
9
9
  # @param :trace [Array<String>] the files to trace
10
10
  # @param :io [IO] io to print to
11
+ # @return [TracePoint] the trace point object
11
12
  def self.set spec_opts
12
13
  targets = []
13
14
  files = {}
@@ -26,23 +27,28 @@ module TraceFiles
26
27
  end
27
28
  return if targets.empty?
28
29
 
29
- set_trace_func(lambda do |event, file, line, id, binding, classname|
30
- return unless targets.include?(file)
30
+ trace_point = TracePoint.new do |trace|
31
+ file_path = trace.path
32
+ if targets.include?(file_path)
33
+ line_number = trace.lineno
34
+ # never repeat a line
35
+ unless file_path == last_file && line_number == last_line
36
+ file_sym = file_path.intern
37
+ files[file_sym] = IO.readlines(file_path) if files[file_sym].nil?
38
+ lines = files[file_sym]
31
39
 
32
- # never repeat a line
33
- return if file == last_file && line == last_line
40
+ # arrays are 0 indexed and line numbers start at one.
41
+ io.print color if color # ANSI code
42
+ io.puts lines[line_number - 1]
43
+ io.print "\e[0m" if color # ANSI.clear
34
44
 
35
- file_sym = file.intern
36
- files[file_sym] = IO.readlines(file) if files[file_sym].nil?
37
- lines = files[file_sym]
38
-
39
- # arrays are 0 indexed and line numbers start at one.
40
- io.print color if color # ANSI code
41
- io.puts lines[line - 1]
42
- io.print "\e[0m" if color # ANSI.clear
45
+ last_file = file_path
46
+ last_line = line_number
47
+ end
48
+ end
49
+ end
43
50
 
44
- last_file = file
45
- last_line = line
46
- end)
51
+ trace_point.enable
52
+ trace_point
47
53
  end
48
54
  end
@@ -1,4 +1,4 @@
1
1
  module TraceFiles
2
- VERSION = '0.0.2' unless defined? ::TraceFiles::VERSION
3
- DATE = '2015-05-05' unless defined? ::TraceFiles::DATE
2
+ VERSION = '1.0.0' unless defined? ::TraceFiles::VERSION
3
+ DATE = '2015-06-18' unless defined? ::TraceFiles::DATE
4
4
  end
data/release_notes.md CHANGED
@@ -1,3 +1,12 @@
1
+ #### v1.0.0 2015-06-18
2
+
3
+ - [426c98d](https://github.com/bootstraponline/trace_files/commit/426c98d6dc536e0059821809dfb8da6d8727ef28) Release 1.0.0
4
+ - [59ec0bd](https://github.com/bootstraponline/trace_files/commit/59ec0bd803c98e1921acc9e3a3b9c5fffa62f8fc) Update version to 1.0.0
5
+ - [adf9b64](https://github.com/bootstraponline/trace_files/commit/adf9b64469d69903ae665ef791a222a55e8a2f3e) Use TracePoint instead of set_trace_func
6
+ - [5eedd90](https://github.com/bootstraponline/trace_files/commit/5eedd909ce103fd23ca077030df3e69bd52bd56f) Add specs and travis ci
7
+ - [8f94a15](https://github.com/bootstraponline/trace_files/commit/8f94a15789f8f93c3d6586399ffe5061e5d0834f) Add gem badge
8
+
9
+
1
10
  #### v0.0.2 2015-05-05
2
11
 
3
12
  - [28401d3](https://github.com/bootstraponline/trace_files/commit/28401d321064486971747a96726ac3136cddc915) Release 0.0.2
data/trace_files.gemspec CHANGED
@@ -2,6 +2,9 @@
2
2
  require File.join(__dir__, 'lib/trace_files/version')
3
3
 
4
4
  Gem::Specification.new do |spec|
5
+ # TracePoint is new in Ruby 2. Doesn't exist in 1.9
6
+ spec.required_ruby_version = '>= 2'
7
+
5
8
  spec.name = 'trace_files'
6
9
  spec.version = TraceFiles::VERSION
7
10
  spec.authors = ['bootstraponline']
@@ -19,4 +22,7 @@ Gem::Specification.new do |spec|
19
22
  spec.add_development_dependency 'bundler', '~> 1.9'
20
23
  spec.add_development_dependency 'rake', '~> 10.0'
21
24
  spec.add_development_dependency 'appium_thor', '~> 0.0', '>= 0.0.7'
25
+ spec.add_development_dependency 'rspec', '~> 3.3.0'
26
+ spec.add_development_dependency 'pry', '~> 0.10.1'
27
+ spec.add_development_dependency 'thor', '~> 0.19.1'
22
28
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: trace_files
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - bootstraponline
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-05 00:00:00.000000000 Z
11
+ date: 2015-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -58,6 +58,48 @@ dependencies:
58
58
  - - ">="
59
59
  - !ruby/object:Gem::Version
60
60
  version: 0.0.7
61
+ - !ruby/object:Gem::Dependency
62
+ name: rspec
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: 3.3.0
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: 3.3.0
75
+ - !ruby/object:Gem::Dependency
76
+ name: pry
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: 0.10.1
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: 0.10.1
89
+ - !ruby/object:Gem::Dependency
90
+ name: thor
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: 0.19.1
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: 0.19.1
61
103
  description: Trace Ruby files.
62
104
  email:
63
105
  - code@bootstraponline.com
@@ -66,6 +108,7 @@ extensions: []
66
108
  extra_rdoc_files: []
67
109
  files:
68
110
  - ".gitignore"
111
+ - ".travis.yml"
69
112
  - Gemfile
70
113
  - LICENSE
71
114
  - README.md
@@ -87,7 +130,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
87
130
  requirements:
88
131
  - - ">="
89
132
  - !ruby/object:Gem::Version
90
- version: '0'
133
+ version: '2'
91
134
  required_rubygems_version: !ruby/object:Gem::Requirement
92
135
  requirements:
93
136
  - - ">="