tagrity 0.2.6 → 0.2.11

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: 7abbd36d4074d7f610bbbed3e71d903568893a67164ed0e80ba3f08ec02dd421
4
- data.tar.gz: e353956fd28322c2683f56ce2fc7859e0e52ec2463e4c7e003d4798048fa8210
3
+ metadata.gz: f61241e904a145f2f947f2577961fb622fb82293f1382ab91f5f461452e92de2
4
+ data.tar.gz: f0fa1c4fdea48600c548bc9deb5606ca2af9b73f45aad8d3fe74d67502204fdb
5
5
  SHA512:
6
- metadata.gz: 42589ff58a766a2cf3704320dd28d3f22c18e63ef65f5790191165cd33f6aa1d39b0e39eccf6fd58a78b09ea3b30557a3a07a7e62c588a13115371d553a239cb
7
- data.tar.gz: f3842c9081dcf17c74f8651b504a1c4af4d416e54bdca36b2a466272dd0fcb3b5dee5db9a0e677c99f849a934942d7986247960cda2130a32a8c1364d7039c6b
6
+ metadata.gz: a9f47bbd86cf5daffbe74d3c5d1ba6ee0be97a6c73060de99d5f284a52b8f08e7ddacaf8158af97a7e365916777d94c117d50b1b6a77623edaeffd37ef3a2eb3
7
+ data.tar.gz: 6e7f2ce3a2249e1bb8c8b7535073617ac3ba4978e31aa4733cdbce61da7b828967eabf5c4442ef9e79ef746243c8f98a831aa125a278908a0041b72b3472bf35
data/.gitignore CHANGED
@@ -11,3 +11,4 @@
11
11
  .rspec_status
12
12
 
13
13
  /var/
14
+ lib/tagrity/var/
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tagrity (0.2.6)
4
+ tagrity (0.2.10)
5
5
  cli-ui (~> 1.3.0)
6
6
  listen (~> 3.0)
7
7
  pry (~> 0.9.9)
@@ -22,7 +22,7 @@ GEM
22
22
  coderay (~> 1.0)
23
23
  method_source (~> 0.8)
24
24
  slop (~> 3.4)
25
- rake (10.5.0)
25
+ rake (13.0.1)
26
26
  rb-fsevent (0.10.3)
27
27
  rb-inotify (0.10.1)
28
28
  ffi (~> 1.0)
@@ -48,7 +48,7 @@ PLATFORMS
48
48
 
49
49
  DEPENDENCIES
50
50
  bundler (~> 2.0)
51
- rake (~> 10.0)
51
+ rake (~> 13.0)
52
52
  ripper-tags (~> 0.8.0)
53
53
  rspec (~> 3.0)
54
54
  tagrity!
data/README.md CHANGED
@@ -16,7 +16,7 @@ $ gem install tagrity
16
16
  tagrity start
17
17
  ```
18
18
 
19
- That's it! It will monitor pwd and by default only index files tracked by git.
19
+ That's it! It will monitor pwd and index any files which change. Check out [Configuration](#configuration) to restrict which files get indexed.
20
20
 
21
21
  To stop watching pwd, use
22
22
 
@@ -78,11 +78,11 @@ extensions_blacklist: [erb, html, txt]
78
78
  # how to integrate with git
79
79
  # git_strategy: TRACKED | IGNORED | NA
80
80
  # TRACKED: only index files tracked by git
81
- # IGNORED: don't index files which are ignored by git
81
+ # IGNORED: only index files which are not ignored by git
82
82
  # NA: don't use git, index all files under pwd
83
83
  #
84
- # Default: TRACKED
85
- git_strategy: TRACKED
84
+ # Default: NA
85
+ git_strategy: IGNORED
86
86
 
87
87
  # which paths (relative to pwd) to ignore
88
88
  # It's usually better to avoid this since tagrity integrates with git by
@@ -141,8 +141,9 @@ Usage:
141
141
  tagrity logs
142
142
 
143
143
  Options:
144
- [-n=N] # the number of log lines to print
145
- # Default: 10
144
+ [-n=N] # the number of log lines to print
145
+ # Default: 10
146
+ [--debug], [--no-debug] # if debug logs be printed too
146
147
 
147
148
  Print the logs for pwd
148
149
  ```
@@ -25,8 +25,9 @@ module Tagrity
25
25
 
26
26
  desc "logs", "Print the logs for pwd"
27
27
  option :n, type: :numeric, default: 10, desc: "the number of log lines to print"
28
+ option :debug, type: :boolean, default: false, desc: "if debug logs be printed too"
28
29
  def logs
29
- Command::Logs::call(options['n'])
30
+ Command::Logs::call(options['n'], options['debug'])
30
31
  end
31
32
  end
32
33
  end
@@ -1,12 +1,13 @@
1
1
  require 'tagrity/tlogger'
2
+ require 'tagrity/provider'
2
3
 
3
4
  module Tagrity
4
5
  module Command
5
6
  class Logs
6
7
  class << self
7
- def call(n)
8
+ def call(n, debug)
8
9
  if File.readable?(logf)
9
- puts `cat #{logf} | tail -n #{Integer(n)}`.split("\n")
10
+ system("cat #{logf} | grep -F #{log_levels(debug).map { |lvl| " -e '#{lvl}' " }.join} | tail -n #{Integer(n)}")
10
11
  else
11
12
  puts "Error: There doesn't seem to be a log file for #{Dir.pwd}"
12
13
  end
@@ -14,8 +15,14 @@ module Tagrity
14
15
 
15
16
  private
16
17
 
18
+ def log_levels(debug)
19
+ levels = ['INFO', 'WARN', 'ERROR', 'FATAL', 'UNKNOWN']
20
+ levels << 'DEBUG' if debug
21
+ levels
22
+ end
23
+
17
24
  def logf
18
- Tlogger.instance.logf
25
+ Provider.provide(:tlogger).logf
19
26
  end
20
27
  end
21
28
  end
@@ -16,11 +16,11 @@ module Tagrity
16
16
  assert_not_running(dir)
17
17
 
18
18
  Process.daemon(nochdir: true) unless fg
19
+ logger.fg = fg
19
20
 
20
21
  tag_generator = Provider.provide(:tag_generator)
21
22
  PidFile.write(PidFile.new(dir, Process.pid))
22
23
 
23
- logger.fg = fg
24
24
  logger.info("Watching #{dir} with process pid #{Process.pid}")
25
25
 
26
26
  if fresh
@@ -66,7 +66,7 @@ module Tagrity
66
66
  end
67
67
 
68
68
  def logger
69
- @logger ||= Tlogger.instance
69
+ @logger ||= Provider.provide(:tlogger)
70
70
  end
71
71
  end
72
72
  end
@@ -1,5 +1,6 @@
1
1
  require 'cli/ui'
2
2
  require 'tagrity/tlogger'
3
+ require 'tagrity/provider'
3
4
 
4
5
  module Tagrity
5
6
  module Command
@@ -14,10 +15,14 @@ module Tagrity
14
15
  pid_files.each do |pid_file|
15
16
  pid_file.delete
16
17
  puts ::CLI::UI.fmt "{{green:#{"Successfully killed #{pid_file.pid}"}}}"
17
- Tlogger.instance.info("Successfully killed #{pid_file.pid}")
18
+ logger.info("Successfully killed #{pid_file.pid}")
18
19
  end
19
20
  end
20
21
  end
22
+
23
+ def logger
24
+ @logger ||= Provider.provide(:tlogger)
25
+ end
21
26
  end
22
27
  end
23
28
  end
@@ -1,6 +1,8 @@
1
1
  require 'yaml'
2
2
  require 'singleton'
3
3
  require 'tagrity/helper'
4
+ require 'tagrity/tlogger'
5
+ require 'tagrity/provider'
4
6
 
5
7
  module Tagrity
6
8
  class ConfigFile
@@ -18,6 +20,12 @@ module Tagrity
18
20
  read_config(fname: global_config_path)
19
21
  end
20
22
 
23
+ def initial_load
24
+ if @config.nil?
25
+ read_config
26
+ end
27
+ end
28
+
21
29
  def command_for_extension(extension)
22
30
  cmd = extension_commands[extension.to_s]
23
31
  if cmd.nil?
@@ -44,35 +52,35 @@ module Tagrity
44
52
  end
45
53
 
46
54
  def extension_commands
47
- config['extension_commands']
55
+ @config['extension_commands']
48
56
  end
49
57
 
50
58
  def default_command
51
- config['default_command']
59
+ @config['default_command']
52
60
  end
53
61
 
54
62
  def tagf
55
- config['tagf']
63
+ @config['tagf']
56
64
  end
57
65
 
58
66
  def extensions_whitelist
59
- config['extensions_whitelist']
67
+ @config['extensions_whitelist']
60
68
  end
61
69
 
62
70
  def extensions_blacklist
63
- config['extensions_blacklist']
71
+ @config['extensions_blacklist']
64
72
  end
65
73
 
66
74
  def git_strategy
67
- config['git_strategy']
75
+ @config['git_strategy']
68
76
  end
69
77
 
70
78
  def excluded_paths
71
- config['excluded_paths']
79
+ @config['excluded_paths']
72
80
  end
73
81
 
74
82
  def to_s
75
- config.to_s
83
+ @config.to_s
76
84
  end
77
85
 
78
86
  private
@@ -103,15 +111,15 @@ module Tagrity
103
111
  end
104
112
 
105
113
  def ensure_extensions_whitelist
106
- ensure_option('whitelist_extensions', [])
114
+ ensure_option('extensions_whitelist', [])
107
115
  end
108
116
 
109
117
  def ensure_extensions_blacklist
110
- ensure_option('blacklist_extensions', [])
118
+ ensure_option('extensions_blacklist', [])
111
119
  end
112
120
 
113
121
  def ensure_git_strategy
114
- ensure_option('git_strategy', 'TRACKED')
122
+ ensure_option('git_strategy', 'NA')
115
123
  end
116
124
 
117
125
  def ensure_excluded_paths
@@ -119,28 +127,27 @@ module Tagrity
119
127
  end
120
128
 
121
129
  def ensure_option(name, default)
122
- if config[name].nil? || !config[name].is_a?(default.class)
123
- config[name] = default
130
+ if @config[name].nil? || !@config[name].is_a?(default.class)
131
+ @config[name] = default
124
132
  end
125
133
  end
126
134
 
127
- def config
128
- @config ||= read_config
129
- end
130
-
131
135
  def read_config(fname: nil)
132
136
  @config = {}
137
+ config_fname = '{default configuration}'
133
138
  if fname.nil?
134
139
  if File.readable?(local_config_path)
135
- read_config(fname: local_config_path)
140
+ config_fname = local_config_path
141
+ @config = YAML.load_file(local_config_path)
136
142
  elsif File.readable?(global_config_path)
137
- read_config(fname: global_config_path)
143
+ config_fname = global_config_path
144
+ @config = YAML.load_file(global_config_path)
138
145
  end
139
146
  else
140
147
  @config = YAML.load_file(fname)
141
148
  end
142
149
  init
143
- @config
150
+ logger.debug("Loaded config from #{config_fname} with settings #{@config.to_s}")
144
151
  end
145
152
 
146
153
  def global_config_path
@@ -150,5 +157,9 @@ module Tagrity
150
157
  def local_config_path
151
158
  File.expand_path("./.#{CONFIG_FNAME}")
152
159
  end
160
+
161
+ def logger
162
+ @logger ||= Provider.provide(:tlogger)
163
+ end
153
164
  end
154
165
  end
@@ -8,13 +8,15 @@ module Tagrity
8
8
  def provide(want)
9
9
  case want
10
10
  when :tag_generator
11
- provide_tag_generator
11
+ TagGenerator.new(provide(:config_file), provide(:tlogger))
12
+ when :tlogger
13
+ Tlogger.instance
14
+ when :config_file
15
+ config = ConfigFile.instance
16
+ config.initial_load
17
+ config
12
18
  end
13
19
  end
14
-
15
- def provide_tag_generator
16
- TagGenerator.new(ConfigFile.instance, Tlogger.instance)
17
- end
18
20
  end
19
21
  end
20
22
  end
@@ -20,7 +20,7 @@ module Tagrity
20
20
  cmd = if check_git?
21
21
  'git ls-files 2> /dev/null'
22
22
  else
23
- 'find * 2> /dev/null'
23
+ 'find * -type f 2> /dev/null'
24
24
  end
25
25
  files = `#{cmd}`.split("\n")
26
26
  if $?.exitstatus == 0
@@ -33,12 +33,12 @@ module Tagrity
33
33
  def generate(files)
34
34
  return if files.empty?
35
35
  files
36
- .select { |file| generate_tags?(file) }
37
- .group_by { |file| @config.command_for_extension(file.partition('.').last) }
36
+ .select { |file| generate_tags?(file)}
37
+ .group_by { |file| @config.command_for_extension(file.split('.').last) }
38
38
  .each do |cmd, fnames|
39
39
  Tempfile.create do |tmpf|
40
40
  IO::write(tmpf.path, fnames.join("\n"))
41
- system(cmd, '-f', tagf, '--append', '-L', tmpf.path, out: File::NULL)
41
+ system(cmd, '-f', tagf, '--append', '-L', tmpf.path, out: File::NULL, err: File::NULL)
42
42
  if $?.exitstatus == 0
43
43
  @logger.info("{#{cmd}} generated tags for #{fnames} into #{tagf}")
44
44
  else
@@ -91,7 +91,7 @@ module Tagrity
91
91
  end
92
92
 
93
93
  def file_excluded?(fname)
94
- @config.ignore_extension?(fname.partition('.').last) || @config.path_ignored?(fname)
94
+ @config.ignore_extension?(fname.split('.').last) || @config.path_ignored?(fname)
95
95
  end
96
96
 
97
97
  def tagf
@@ -16,6 +16,10 @@ module Tagrity
16
16
  logger.error(msg)
17
17
  end
18
18
 
19
+ def debug(msg)
20
+ logger.debug(msg)
21
+ end
22
+
19
23
  def logf
20
24
  # TODO this can cause duplicates, unlikely tho
21
25
  "#{Helper.log_dir}/#{Dir.pwd.gsub(/\//, '--')}.log"
@@ -1,3 +1,3 @@
1
1
  module Tagrity
2
- VERSION = "0.2.6"
2
+ VERSION = "0.2.11"
3
3
  end
@@ -35,11 +35,11 @@ extensions_blacklist: [erb, html, txt]
35
35
  # how to integrate with git
36
36
  # git_strategy: TRACKED | IGNORED | NA
37
37
  # TRACKED: only index files tracked by git
38
- # IGNORED: don't index files which are ignored by git
38
+ # IGNORED: only index files which are not ignored by git
39
39
  # NA: don't use git, index all files under pwd
40
40
  #
41
- # Default: TRACKED
42
- git_strategy: TRACKED
41
+ # Default: NA
42
+ git_strategy: IGNORED
43
43
 
44
44
  # which paths (relative to pwd) to ignore
45
45
  # It's usually better to avoid this since tagrity integrates with git by
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency 'cli-ui', '~> 1.3.0'
32
32
 
33
33
  spec.add_development_dependency "bundler", "~> 2.0"
34
- spec.add_development_dependency "rake", "~> 10.0"
34
+ spec.add_development_dependency "rake", "~> 13.0"
35
35
  spec.add_development_dependency "rspec", "~> 3.0"
36
36
  spec.add_development_dependency "ripper-tags", "~> 0.8.0"
37
37
  spec.add_dependency "pry", "~> 0.9.9"
@@ -0,0 +1,7 @@
1
+ int barbaz_one() {
2
+ return 0;
3
+ }
4
+
5
+ int barbaz_two() {
6
+ return 0;
7
+ }
@@ -1,6 +1,8 @@
1
1
  barbaz_fun_one foo/barbaz.rb /^def barbaz_fun_one$/;" f class:Object
2
2
  barbaz_fun_two foo/barbaz.rb /^def barbaz_fun_two$/;" f class:Object
3
+ barbaz_one barbaz.barbaz.c /^int barbaz_one() {$/;" f typeref:typename:int
3
4
  barbaz_one barbaz.c /^int barbaz_one() {$/;" f typeref:typename:int
5
+ barbaz_two barbaz.barbaz.c /^int barbaz_two() {$/;" f typeref:typename:int
4
6
  barbaz_two barbaz.c /^int barbaz_two() {$/;" f typeref:typename:int
5
7
  foobar_fun_one foo/foobar.rb /^def foobar_fun_one$/;" f class:Object
6
8
  foobar_fun_two foo/foobar.rb /^def foobar_fun_two$/;" f class:Object
@@ -1,6 +1,8 @@
1
1
  barbaz_fun_one foo/barbaz.rb /^def barbaz_fun_one$/;" f class:Object
2
2
  barbaz_fun_two foo/barbaz.rb /^def barbaz_fun_two$/;" f class:Object
3
+ barbaz_one barbaz.barbaz.c /^int barbaz_one() {$/;" f typeref:typename:int
3
4
  barbaz_one barbaz.c /^int barbaz_one() {$/;" f typeref:typename:int
4
5
  barbaz_one foo/foobar.c /^int barbaz_one() {$/;" f typeref:typename:int
6
+ barbaz_two barbaz.barbaz.c /^int barbaz_two() {$/;" f typeref:typename:int
5
7
  barbaz_two barbaz.c /^int barbaz_two() {$/;" f typeref:typename:int
6
8
  barbaz_two foo/foobar.c /^int barbaz_two() {$/;" f typeref:typename:int
@@ -1,7 +1,9 @@
1
1
  barbaz_fun_one foo/barbaz.rb /^def barbaz_fun_one$/;" f class:Object
2
2
  barbaz_fun_two foo/barbaz.rb /^def barbaz_fun_two$/;" f class:Object
3
+ barbaz_one barbaz.barbaz.c /^int barbaz_one() {$/;" f typeref:typename:int
3
4
  barbaz_one barbaz.c /^int barbaz_one() {$/;" f typeref:typename:int
4
5
  barbaz_one foo/foobar.c /^int barbaz_one() {$/;" f typeref:typename:int
6
+ barbaz_two barbaz.barbaz.c /^int barbaz_two() {$/;" f typeref:typename:int
5
7
  barbaz_two barbaz.c /^int barbaz_two() {$/;" f typeref:typename:int
6
8
  barbaz_two foo/foobar.c /^int barbaz_two() {$/;" f typeref:typename:int
7
9
  foobar_fun_one foo/foobar.rb /^def foobar_fun_one$/;" f class:Object
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tagrity
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.6
4
+ version: 0.2.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam P. Regasz-Rethy
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-08 00:00:00.000000000 Z
11
+ date: 2020-02-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '10.0'
75
+ version: '13.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '10.0'
82
+ version: '13.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rspec
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -161,6 +161,7 @@ files:
161
161
  - tagrity.gemspec
162
162
  - test_files/.gitignore
163
163
  - test_files/.tagrity_config.yml
164
+ - test_files/barbaz.barbaz.c
164
165
  - test_files/barbaz.c
165
166
  - test_files/expected_after_delete
166
167
  - test_files/expected_genall_git_tags