tagrity 0.1.10 → 0.2.1

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: 1af5012e776513380e1f5bcf99907274a6b86c1a13806f9c23b5b55cc7d75510
4
- data.tar.gz: 78bfee3f2b5606b56e0627b5004bd1b71469f3168a6a0583087ff594140c7af5
3
+ metadata.gz: a857a7e4ba200bc8058e9e862098e3de1b7e1058b5098f2e745a076e4ad04f57
4
+ data.tar.gz: 153d10c351c435f5cc518b851376e5c0b4d4720e00aabc64cd30ad26ec4272b9
5
5
  SHA512:
6
- metadata.gz: aa94bd9097e1af8d01a2d8e778951dce06e9bc4618b2c2379c919272d0d225c0fb9555b0bd21464a343de3e559fef8de5c0e0fcb41ecc96b4f4bdc4ae0cf19a4
7
- data.tar.gz: a337c3c33f171d4b019bfb9d92c07b6ee75964860ecc58a9330a5b2280c6ef3057eb073476526501d76716d789f2d9b2e21283563f0d04125f0ca217b48df53d
6
+ metadata.gz: 0fb823c4f06d08641055876347f0d1f8c79ff825ecd91e2f885acecff79ee5e181faf57dfea5b3eab464fe4d0852353ae99271e485cea1a8e73a803a4307774c
7
+ data.tar.gz: ca2dae1f92bc9a6430435436574a1fb61b45ad4d881ca240fde79f77cf94867ad0488ff062b46d526d232c4f42f5f62581d88eaf1befb8dbd01178f9070a81d7
@@ -0,0 +1,38 @@
1
+ # which command to use to generate tags for a specific file extension
2
+ # overrides default_command
3
+ # DEFAULT: empty
4
+ extension_commands:
5
+ rb: ripper-tags
6
+ c: ctags
7
+
8
+ # default command to generate tags
9
+ # DEFAULT: ctags
10
+ default_command: ctags
11
+
12
+ # filename (relative to pwd) to generate tags into
13
+ # DEFAULT: tags
14
+ tagf: tags
15
+
16
+ # list of extensions to exclusively generate tags for
17
+ # this will take precendence over extensions_blacklist if it is non-empty
18
+ # DEFAULT: []
19
+ extensions_whitelist: [rb]
20
+
21
+ # list of extensions to not generate tags for
22
+ # this can will be ignored if extensions_whitelist is non-empty
23
+ # DEFAULT: []
24
+ # extensions_blacklist: [erb, html, txt]
25
+
26
+ # how to integrate with git
27
+ # git_strategy: TRACKED | IGNORED | NA
28
+ # TRACKED: only index files tracked by git
29
+ # IGNORED: don't index files which are ignored by git
30
+ # NA: don't use git, index all files under pwd
31
+ # DEFAULT: TRACKED
32
+ git_strategy: TRACKED
33
+
34
+ # which paths (relative to pwd) to ignore
35
+ # It's usually better to avoid this since tagrity integrates with git by
36
+ # default using the strategy specified by git_strategy
37
+ # DEFAULT: []
38
+ excluded_paths: [test_files]
@@ -4,4 +4,9 @@ language: ruby
4
4
  cache: bundler
5
5
  rvm:
6
6
  - 2.6.3
7
- before_install: gem install bundler -v 2.0.2
7
+ before_install:
8
+ - gem install bundler -v 2.0.2
9
+ - gem install ripper-tags -v 0.8.1
10
+ - brew unlink python@2
11
+ - brew install --HEAD universal-ctags/universal-ctags/universal-ctags
12
+ os: osx
@@ -1,7 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- tagrity (0.1.9)
4
+ tagrity (0.2.1)
5
+ cli-ui (~> 1.3.0)
5
6
  listen (~> 3.0)
6
7
  pry (~> 0.9.9)
7
8
  thor (~> 0.20)
@@ -9,6 +10,7 @@ PATH
9
10
  GEM
10
11
  remote: https://rubygems.org/
11
12
  specs:
13
+ cli-ui (1.3.0)
12
14
  coderay (1.1.2)
13
15
  diff-lcs (1.3)
14
16
  ffi (1.11.3)
@@ -22,7 +24,7 @@ GEM
22
24
  slop (~> 3.4)
23
25
  rake (10.5.0)
24
26
  rb-fsevent (0.10.3)
25
- rb-inotify (0.10.0)
27
+ rb-inotify (0.10.1)
26
28
  ffi (~> 1.0)
27
29
  ripper-tags (0.8.0)
28
30
  rspec (3.9.0)
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  # Tagrity
2
2
 
3
- Automatically regenerate tags on file changes.
3
+ [![Build Status](https://travis-ci.com/RRethy/tagrity.svg?branch=master)](https://travis-ci.com/RRethy/tagrity)
4
+
5
+ Automatically regenerate your tags on file changes.
4
6
 
5
7
  ## Installation
6
8
 
@@ -14,16 +16,89 @@ $ gem install tagrity
14
16
  tagrity start
15
17
  ```
16
18
 
17
- That's it! By default, tagrity will only index files tracked by git. You may wish to al
19
+ That's it! It will monitor pwd and by default only index files tracked by git.
20
+
21
+ To stop watching pwd, use
22
+
23
+ ```sh
24
+ tagrity stop
25
+ ```
26
+
27
+ To view directories being watched, use
28
+
29
+ ```sh
30
+ tagrity status
31
+ ```
32
+
33
+ ## Configuration
34
+
35
+ Configuration can be done through use of a `tagrity_config.yml` file that looks like the following:
36
+
37
+ **NOTE:** Tagrity will look for a global config file at `$XDG_CONFIG_HOME/tagrity/tagrity_config.yml` (usually this will be `~/.config/tagrity/tagrity_config.yml`). This can be overridden by a local config in the current directory under the name `.tagrity_config.yml`.
38
+
39
+ [`tagrity_config.yml`](https://github.com/RRethy/tagrity/blob/master/sample_config.yml)
40
+
41
+ ```yaml
42
+ # which command to use to generate tags for a specific file extension
43
+ # overrides default_command
44
+ # tag generation commands must support --append, -f, -L
45
+ # NOTE: Exuberant-ctags does NOT satisfy this, instead use Universal-ctags
46
+ #
47
+ # Default: empty
48
+ extension_commands:
49
+ rb: ripper-tags
50
+ c: ctags
51
+ go: gotags
52
+
53
+ # default command to generate tags
54
+ # command must support --append, -f, -L
55
+ #
56
+ # Default: ctags
57
+ default_command: ctags
58
+
59
+ # filename (relative to pwd) to generate tags into
60
+ #
61
+ # Default: tags
62
+ tagf: tags
63
+
64
+ # list of extensions to exclusively generate tags for
65
+ # this will take precendence over extensions_blacklist if it is non-empty
66
+ #
67
+ # Default: []
68
+ extensions_whitelist: [rb, c, h, js]
69
+
70
+ # list of extensions to not generate tags for
71
+ # this can will be ignored if extensions_whitelist is non-empty
72
+ #
73
+ # Default: []
74
+ extensions_blacklist: [erb, html, txt]
75
+
76
+ # how to integrate with git
77
+ # git_strategy: TRACKED | IGNORED | NA
78
+ # TRACKED: only index files tracked by git
79
+ # IGNORED: don't index files which are ignored by git
80
+ # NA: don't use git, index all files under pwd
81
+ #
82
+ # Default: TRACKED
83
+ git_strategy: TRACKED
84
+
85
+ # which paths (relative to pwd) to ignore
86
+ # It's usually better to avoid this since tagrity integrates with git by
87
+ # default using the strategy specified by git_strategy
88
+ #
89
+ # Default: []
90
+ excluded_paths: [vendor, node_modules]
91
+ ```
18
92
 
19
93
  ## Usage
20
94
 
21
95
  ```
22
96
  Commands:
23
97
  tagrity help [COMMAND] # Describe available commands or one specific command
24
- tagrity start # Start watching a directory (default to pwd)
98
+ tagrity logs # Print the logs for pwd
99
+ tagrity start # Start watching pwd
25
100
  tagrity status # List running tagrity processes and the directories being watched
26
- tagrity stop # Stop watching a directory (default to pwd)
101
+ tagrity stop # Stop watching pwd
27
102
  ```
28
103
 
29
104
  ### start
@@ -33,15 +108,10 @@ Usage:
33
108
  tagrity start
34
109
 
35
110
  Options:
36
- [--dir=DIR]
37
- [--fg], [--no-fg]
38
- [--configfile=CONFIGFILE]
39
- [--tagf=TAGF]
40
- [--default-cmd=DEFAULT_CMD]
41
- [--excluded-exts=one two three]
42
- [--excluded-paths=one two three]
43
-
44
- Start watching a directory (default to pwd)
111
+ [--fg], [--no-fg] # keep the tagrity process running in the foreground
112
+ [--fresh], [--no-fresh] # index the whole codebase before watching the file system. This will be slow if the codebase is large.
113
+
114
+ Start watching pwd
45
115
  ```
46
116
 
47
117
  ### stop
@@ -50,10 +120,7 @@ Start watching a directory (default to pwd)
50
120
  Usage:
51
121
  tagrity stop
52
122
 
53
- Options:
54
- [--dir=DIR]
55
-
56
- Stop watching a directory (default to pwd)
123
+ Stop watching pwd
57
124
  ```
58
125
 
59
126
  ### status
@@ -65,15 +132,22 @@ Usage:
65
132
  List running tagrity processes and the directories being watched
66
133
  ```
67
134
 
68
- ## Development
135
+ ### logs
69
136
 
70
- After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
137
+ ```
138
+ Usage:
139
+ tagrity logs
71
140
 
72
- To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
141
+ Options:
142
+ [-n=N] # the number of log lines to print
143
+ # Default: 10
144
+
145
+ Print the logs for pwd
146
+ ```
73
147
 
74
148
  ## Contributing
75
149
 
76
- Bug reports and pull requests are welcome on GitHub at https://github.com/[USERNAME]/tagrity. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
150
+ Bug reports and pull requests are welcome on GitHub at https://github.com/RRethy/tagrity. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
77
151
 
78
152
  ## License
79
153
 
@@ -81,13 +155,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
81
155
 
82
156
  ## Code of Conduct
83
157
 
84
- Everyone interacting in the Tagrity project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/[USERNAME]/tagrity/blob/master/CODE_OF_CONDUCT.md).
85
-
86
-
87
-
88
-
89
- tagrity config to use (default to ~/.config/tagrity/config.yml if available).
90
- A config file is a yaml file with the following possible values.
91
- Some of these can be overridden with options, however the configfile
92
- provided via --configfile will override the global config file in
93
- ~/.config/tagrity/config.yml
158
+ Everyone interacting in the Tagrity project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/RRethy/tagrity/blob/master/CODE_OF_CONDUCT.md).
@@ -1,4 +1,5 @@
1
1
  require 'listen'
2
+ require 'cli/ui'
2
3
  require 'tagrity/pid_file'
3
4
  require 'tagrity/helper'
4
5
  require 'tagrity/provider'
@@ -47,7 +48,7 @@ module Tagrity
47
48
  listener.start
48
49
  sleep
49
50
  rescue ErrorProcessAlreadyRunning => e
50
- puts e.message
51
+ puts ::CLI::UI.fmt "{{red:#{e.message}}}"
51
52
  logger.error(e.message)
52
53
  rescue Interrupt => e
53
54
  logger.info("Process interrupted. Killing #{Process.pid}")
@@ -1,10 +1,12 @@
1
+ require 'cli/ui'
2
+
1
3
  module Tagrity
2
4
  module Command
3
5
  class Status
4
6
  class << self
5
7
  def call
6
8
  PidFile.alive_pid_files.each do |pid_file|
7
- puts "#{pid_file.pid} #{pid_file.dir}"
9
+ puts ::CLI::UI.fmt "{{cyan:#{pid_file.pid}}} {{green:#{pid_file.dir}}}"
8
10
  end
9
11
  end
10
12
  end
@@ -1,3 +1,4 @@
1
+ require 'cli/ui'
1
2
  require 'tagrity/tlogger'
2
3
 
3
4
  module Tagrity
@@ -8,11 +9,11 @@ module Tagrity
8
9
  dir = Dir.pwd
9
10
  pid_files = PidFile.alive_pid_files(dir: dir)
10
11
  if pid_files.empty?
11
- puts "😕 tagrity doesn't seem to be watching #{dir}"
12
+ puts ::CLI::UI.fmt "{{red:#{"😕 tagrity doesn't seem to be watching #{dir}"}}}"
12
13
  else
13
14
  pid_files.each do |pid_file|
14
15
  pid_file.delete
15
- puts "Successfully killed #{pid_file.pid}"
16
+ puts ::CLI::UI.fmt "{{green:#{"Successfully killed #{pid_file.pid}"}}}"
16
17
  Tlogger.instance.info("Successfully killed #{pid_file.pid}")
17
18
  end
18
19
  end
@@ -9,21 +9,17 @@ module Tagrity
9
9
  class ErrorTagFileNotWritable < StandardError; end
10
10
 
11
11
  CONFIG_FNAME = 'tagrity_config.yml'
12
- LOCAL_CONFIG_PATH = File.expand_path("./.#{CONFIG_FNAME}")
13
- GLOBAL_CONFIG_PATH = File.expand_path("#{ENV['XDG_CONFIG_HOME'] || "#{ENV['HOME']}/.config"}/tagrity/#{CONFIG_FNAME}")
14
12
 
15
- def init
16
- ensure_extension_commands
17
- ensure_default_command
18
- ensure_tagf
19
- ensure_extensions_whitelist
20
- ensure_extensions_blacklist
21
- ensure_git_strategy
22
- ensure_excluded_paths
13
+ def reload_local
14
+ read_config(fname: local_config_path)
15
+ end
16
+
17
+ def reload_global
18
+ read_config(fname: global_config_path)
23
19
  end
24
20
 
25
21
  def command_for_extension(extension)
26
- cmd = extension_commands[extension]
22
+ cmd = extension_commands[extension.to_s]
27
23
  if cmd.nil?
28
24
  default_command
29
25
  else
@@ -33,14 +29,14 @@ module Tagrity
33
29
 
34
30
  def ignore_extension?(extension)
35
31
  unless extensions_whitelist.empty?
36
- return !extensions_whitelist.include?(extension)
32
+ return !extensions_whitelist.include?(extension.to_s)
37
33
  end
38
34
 
39
- extensions_blacklist.include?(extension)
35
+ extensions_blacklist.include?(extension.to_s)
40
36
  end
41
37
 
42
38
  def path_ignored?(path)
43
- excluded_paths.any? { |pat| /#{pat}/ =~ path }
39
+ excluded_paths.any? { |pat| !(/^#{pat}/ =~ path.to_s).nil? }
44
40
  end
45
41
 
46
42
  def respect_git?
@@ -81,6 +77,16 @@ module Tagrity
81
77
 
82
78
  private
83
79
 
80
+ def init
81
+ ensure_extension_commands
82
+ ensure_default_command
83
+ ensure_tagf
84
+ ensure_extensions_whitelist
85
+ ensure_extensions_blacklist
86
+ ensure_git_strategy
87
+ ensure_excluded_paths
88
+ end
89
+
84
90
  def ensure_extension_commands
85
91
  ensure_option('extension_commands', {})
86
92
  end
@@ -109,7 +115,7 @@ module Tagrity
109
115
  end
110
116
 
111
117
  def ensure_excluded_paths
112
- ensure_option('extension_commands', [])
118
+ ensure_option('excluded_paths', [])
113
119
  end
114
120
 
115
121
  def ensure_option(name, default)
@@ -122,14 +128,27 @@ module Tagrity
122
128
  @config ||= read_config
123
129
  end
124
130
 
125
- def read_config
126
- if File.readable?(LOCAL_CONFIG_PATH)
127
- @config = YAML.load_file(LOCAL_CONFIG_PATH)
128
- elsif File.readable?(GLOBAL_CONFIG_PATH)
129
- @config = YAML.load_file(GLOBAL_CONFIG_PATH)
131
+ def read_config(fname: nil)
132
+ @config = {}
133
+ if fname.nil?
134
+ if File.readable?(local_config_path)
135
+ read_config(fname: local_config_path)
136
+ elsif File.readable?(global_config_path)
137
+ read_config(fname: global_config_path)
138
+ end
130
139
  else
131
- @config = {}
140
+ @config = YAML.load_file(fname)
132
141
  end
142
+ init
143
+ @config
144
+ end
145
+
146
+ def global_config_path
147
+ File.expand_path("#{ENV['XDG_CONFIG_HOME'] || "#{ENV['HOME']}/.config"}/tagrity/#{CONFIG_FNAME}")
148
+ end
149
+
150
+ def local_config_path
151
+ File.expand_path("./.#{CONFIG_FNAME}")
133
152
  end
134
153
  end
135
154
  end
@@ -15,7 +15,7 @@ module Tagrity
15
15
  LOG_DIR
16
16
  end
17
17
 
18
- def is_executable?(cmd)
18
+ def executable?(cmd)
19
19
  !%x{command -v #{cmd}}.empty?
20
20
  end
21
21
 
@@ -32,7 +32,7 @@ module Tagrity
32
32
  true
33
33
  end
34
34
 
35
- def is_git_dir?
35
+ def git_dir?
36
36
  `git rev-parse --git-dir &> /dev/null`
37
37
  $?.exitstatus == 0
38
38
  end
@@ -24,7 +24,7 @@ module Tagrity
24
24
  pid = pid_from_path(path)
25
25
  pid_file_dir = File.read(path)
26
26
 
27
- if dir.nil? || is_same_dirs(pid_file_dir, dir)
27
+ if dir.nil? || same_dirs?(pid_file_dir, dir)
28
28
  if Helper.alive?(pid)
29
29
  pid_files << PidFile.new(pid_file_dir, pid)
30
30
  else
@@ -38,7 +38,7 @@ module Tagrity
38
38
 
39
39
  private
40
40
 
41
- def is_same_dirs(dir1, dir2)
41
+ def same_dirs?(dir1, dir2)
42
42
  File.realdirpath(dir1) == File.realdirpath(dir2)
43
43
  end
44
44
 
@@ -1,5 +1,6 @@
1
1
  require 'tagrity/config_file'
2
2
  require 'tagrity/tag_generator'
3
+ require 'tagrity/tlogger'
3
4
 
4
5
  module Tagrity
5
6
  class Provider
@@ -12,7 +13,7 @@ module Tagrity
12
13
  end
13
14
 
14
15
  def provide_tag_generator
15
- TagGenerator.new
16
+ TagGenerator.new(ConfigFile.instance, Tlogger.instance)
16
17
  end
17
18
  end
18
19
  end
@@ -2,15 +2,15 @@ require 'tmpdir'
2
2
  require 'tempfile'
3
3
  require 'fileutils'
4
4
  require 'tagrity/helper'
5
- require 'tagrity/tlogger'
5
+ require 'pry'
6
6
 
7
7
  module Tagrity
8
8
  class TagGenerator
9
9
  class ExecutableNonExist < StandardError; end
10
10
 
11
- def initialize
12
- assert_executables
13
- @config = ConfigFile.instance
11
+ def initialize(config, logger)
12
+ @config = config
13
+ @logger = logger
14
14
  end
15
15
 
16
16
  def generate_all
@@ -26,7 +26,7 @@ module Tagrity
26
26
  if $?.exitstatus == 0
27
27
  generate(files)
28
28
  else
29
- logger.error("Failed to get a listing of all files under pwd for use with --fresh. Used #{cmd}.")
29
+ @logger.error("Failed to get a listing of all files under pwd for use with --fresh. Used #{cmd}.")
30
30
  end
31
31
  end
32
32
 
@@ -40,9 +40,9 @@ module Tagrity
40
40
  IO::write(tmpf.path, fnames.join("\n"))
41
41
  system(cmd, '-f', tagf, '--append', '-L', tmpf.path, out: File::NULL)
42
42
  if $?.exitstatus == 0
43
- logger.info("{#{cmd}} generated tags for #{fnames} into #{tagf}")
43
+ @logger.info("{#{cmd}} generated tags for #{fnames} into #{tagf}")
44
44
  else
45
- logger.info("{#{cmd}} failed to generate tags for #{fnames} into #{tagf}")
45
+ @logger.info("{#{cmd}} failed to generate tags for #{fnames} into #{tagf}")
46
46
  end
47
47
  end
48
48
  end
@@ -60,7 +60,7 @@ module Tagrity
60
60
  end
61
61
  tmpf.rewind
62
62
  FileUtils.mv(tmpf.path, tagf, force: true)
63
- logger.info("Deleted tags for #{files} from #{tagf}")
63
+ @logger.info("Deleted tags for #{files} from #{tagf}")
64
64
  end
65
65
  end
66
66
 
@@ -71,7 +71,7 @@ module Tagrity
71
71
  end
72
72
 
73
73
  def indexable?(file)
74
- file != tagf && !is_file_excluded(file) && File.readable?(file)
74
+ file != tagf && !file_excluded?(file) && File.readable?(file)
75
75
  end
76
76
 
77
77
  def copacetic_with_git?(file)
@@ -87,27 +87,15 @@ module Tagrity
87
87
  end
88
88
 
89
89
  def check_git?
90
- @config.respect_git? && Helper.is_git_dir?
90
+ @check_git ||= @config.respect_git? && Helper.git_dir?
91
91
  end
92
92
 
93
- def is_file_excluded(fname)
93
+ def file_excluded?(fname)
94
94
  @config.ignore_extension?(fname.partition('.').last) || @config.path_ignored?(fname)
95
95
  end
96
96
 
97
- def assert_executables
98
- %w(cat grep mv).each do |exe|
99
- if !Helper.is_executable?(exe)
100
- raise ExecutableNonExist, "tagrity depends on the executable #{exe}"
101
- end
102
- end
103
- end
104
-
105
97
  def tagf
106
98
  @config.tagf
107
99
  end
108
-
109
- def logger
110
- Tlogger.instance
111
- end
112
100
  end
113
101
  end
@@ -1,3 +1,3 @@
1
1
  module Tagrity
2
- VERSION = "0.1.10"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -1,7 +1,9 @@
1
1
  # which command to use to generate tags for a specific file extension
2
2
  # overrides default_command
3
- # commands must support --append, -f, -L
4
- # DEFAULT: empty
3
+ # tag generation commands must support --append, -f, -L
4
+ # NOTE: Exuberant-ctags does NOT satisfy this, instead use Universal-ctags
5
+ #
6
+ # Default: empty
5
7
  extension_commands:
6
8
  rb: ripper-tags
7
9
  c: ctags
@@ -9,21 +11,25 @@ extension_commands:
9
11
 
10
12
  # default command to generate tags
11
13
  # command must support --append, -f, -L
12
- # DEFAULT: ctags
14
+ #
15
+ # Default: ctags
13
16
  default_command: ctags
14
17
 
15
18
  # filename (relative to pwd) to generate tags into
16
- # DEFAULT: tags
19
+ #
20
+ # Default: tags
17
21
  tagf: tags
18
22
 
19
23
  # list of extensions to exclusively generate tags for
20
24
  # this will take precendence over extensions_blacklist if it is non-empty
21
- # DEFAULT: []
25
+ #
26
+ # Default: []
22
27
  extensions_whitelist: [rb, c, h, js]
23
28
 
24
29
  # list of extensions to not generate tags for
25
30
  # this can will be ignored if extensions_whitelist is non-empty
26
- # DEFAULT: []
31
+ #
32
+ # Default: []
27
33
  extensions_blacklist: [erb, html, txt]
28
34
 
29
35
  # how to integrate with git
@@ -31,11 +37,13 @@ extensions_blacklist: [erb, html, txt]
31
37
  # TRACKED: only index files tracked by git
32
38
  # IGNORED: don't index files which are ignored by git
33
39
  # NA: don't use git, index all files under pwd
34
- # DEFAULT: TRACKED
40
+ #
41
+ # Default: TRACKED
35
42
  git_strategy: TRACKED
36
43
 
37
44
  # which paths (relative to pwd) to ignore
38
45
  # It's usually better to avoid this since tagrity integrates with git by
39
46
  # default using the strategy specified by git_strategy
40
- # DEFAULT: []
47
+ #
48
+ # Default: []
41
49
  excluded_paths: [vendor, node_modules]
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
28
28
 
29
29
  spec.add_dependency 'thor', '~> 0.20'
30
30
  spec.add_dependency 'listen', '~> 3.0'
31
+ spec.add_dependency 'cli-ui', '~> 1.3.0'
31
32
 
32
33
  spec.add_development_dependency "bundler", "~> 2.0"
33
34
  spec.add_development_dependency "rake", "~> 10.0"
@@ -0,0 +1 @@
1
+ foobar.rb
@@ -0,0 +1,37 @@
1
+ # which command to use to generate tags for a specific file extension
2
+ # overrides default_command
3
+ # DEFAULT: empty
4
+ extension_commands:
5
+ rb: ripper-tags
6
+
7
+ # default command to generate tags
8
+ # DEFAULT: ctags
9
+ default_command: ctags
10
+
11
+ # filename (relative to pwd) to generate tags into
12
+ # DEFAULT: tags
13
+ tagf: tags
14
+
15
+ # list of extensions to exclusively generate tags for
16
+ # this will take precendence over extensions_blacklist if it is non-empty
17
+ # DEFAULT: []
18
+ extensions_whitelist: [rb, c, vim]
19
+
20
+ # list of extensions to not generate tags for
21
+ # this can will be ignored if extensions_whitelist is non-empty
22
+ # DEFAULT: []
23
+ # extensions_blacklist: [erb, html, txt]
24
+
25
+ # how to integrate with git
26
+ # git_strategy: TRACKED | IGNORED | NA
27
+ # TRACKED: only index files tracked by git
28
+ # IGNORED: don't index files which are ignored by git
29
+ # NA: don't use git, index all files under pwd
30
+ # DEFAULT: TRACKED
31
+ git_strategy: IGNORED
32
+
33
+ # which paths (relative to pwd) to ignore
34
+ # It's usually better to avoid this since tagrity integrates with git by
35
+ # default using the strategy specified by git_strategy
36
+ # DEFAULT: []
37
+ excluded_paths: [vendor, node_modules]
@@ -0,0 +1,7 @@
1
+ int barbaz_one() {
2
+ return 0;
3
+ }
4
+
5
+ int barbaz_two() {
6
+ return 0;
7
+ }
@@ -0,0 +1,6 @@
1
+ barbaz_fun_one foo/barbaz.rb /^def barbaz_fun_one$/;" f class:Object
2
+ barbaz_fun_two foo/barbaz.rb /^def barbaz_fun_two$/;" f class:Object
3
+ barbaz_one barbaz.c /^int barbaz_one() {$/;" f typeref:typename:int
4
+ barbaz_two barbaz.c /^int barbaz_two() {$/;" f typeref:typename:int
5
+ foobar_fun_one foo/foobar.rb /^def foobar_fun_one$/;" f class:Object
6
+ foobar_fun_two foo/foobar.rb /^def foobar_fun_two$/;" f class:Object
@@ -0,0 +1,6 @@
1
+ barbaz_fun_one foo/barbaz.rb /^def barbaz_fun_one$/;" f class:Object
2
+ barbaz_fun_two foo/barbaz.rb /^def barbaz_fun_two$/;" f class:Object
3
+ barbaz_one barbaz.c /^int barbaz_one() {$/;" f typeref:typename:int
4
+ barbaz_one foo/foobar.c /^int barbaz_one() {$/;" f typeref:typename:int
5
+ barbaz_two barbaz.c /^int barbaz_two() {$/;" f typeref:typename:int
6
+ barbaz_two foo/foobar.c /^int barbaz_two() {$/;" f typeref:typename:int
@@ -0,0 +1,10 @@
1
+ barbaz_fun_one foo/barbaz.rb /^def barbaz_fun_one$/;" f class:Object
2
+ barbaz_fun_two foo/barbaz.rb /^def barbaz_fun_two$/;" f class:Object
3
+ barbaz_one barbaz.c /^int barbaz_one() {$/;" f typeref:typename:int
4
+ barbaz_one foo/foobar.c /^int barbaz_one() {$/;" f typeref:typename:int
5
+ barbaz_two barbaz.c /^int barbaz_two() {$/;" f typeref:typename:int
6
+ barbaz_two foo/foobar.c /^int barbaz_two() {$/;" f typeref:typename:int
7
+ foobar_fun_one foo/foobar.rb /^def foobar_fun_one$/;" f class:Object
8
+ foobar_fun_one foobar.rb /^def foobar_fun_one$/;" f class:Object
9
+ foobar_fun_two foo/foobar.rb /^def foobar_fun_two$/;" f class:Object
10
+ foobar_fun_two foobar.rb /^def foobar_fun_two$/;" f class:Object
@@ -0,0 +1,5 @@
1
+ def barbaz_fun_one
2
+ end
3
+
4
+ def barbaz_fun_two
5
+ end
@@ -0,0 +1,7 @@
1
+ int barbaz_one() {
2
+ return 0;
3
+ }
4
+
5
+ int barbaz_two() {
6
+ return 0;
7
+ }
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.1.10
4
+ version: 0.2.1
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: 2019-12-25 00:00:00.000000000 Z
11
+ date: 2020-01-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: cli-ui
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 1.3.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 1.3.0
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: bundler
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -118,6 +132,7 @@ extra_rdoc_files: []
118
132
  files:
119
133
  - ".gitignore"
120
134
  - ".rspec"
135
+ - ".tagrity_config.yml"
121
136
  - ".travis.yml"
122
137
  - CODE_OF_CONDUCT.md
123
138
  - Gemfile
@@ -143,6 +158,16 @@ files:
143
158
  - lib/tagrity/version.rb
144
159
  - sample_config.yml
145
160
  - tagrity.gemspec
161
+ - test_files/.gitignore
162
+ - test_files/.tagrity_config.yml
163
+ - test_files/barbaz.c
164
+ - test_files/expected_after_delete
165
+ - test_files/expected_genall_git_tags
166
+ - test_files/expected_genall_nongit_tags
167
+ - test_files/foo/barbaz.rb
168
+ - test_files/foo/foobar.c
169
+ - test_files/foo/foobar.rb
170
+ - test_files/foobar.rb
146
171
  homepage: https://github.com/RRethy/tagrity
147
172
  licenses:
148
173
  - MIT