gem-ripper-tags 1.0.3 → 1.0.4
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.
- data/README.markdown +20 -0
- data/gem-ripper-tags.gemspec +1 -1
- data/lib/rubygems/commands/ripper_tags_command.rb +35 -12
- data/release.sh +2 -1
- data/test.sh +1 -1
- metadata +3 -3
data/README.markdown
CHANGED
|
@@ -48,6 +48,26 @@ outdated (no Ruby 1.9+ support) or very slow. This project makes use of
|
|
|
48
48
|
[ripper-tags][] that leverages built-in Ruby parser API called Ripper. It is
|
|
49
49
|
fast and it works as expected.
|
|
50
50
|
|
|
51
|
+
Regeneration
|
|
52
|
+
------------
|
|
53
|
+
|
|
54
|
+
If you want to regenerate all tagfiles from scratch, use:
|
|
55
|
+
|
|
56
|
+
gem ripper_tags --reindex
|
|
57
|
+
|
|
58
|
+
Emacs support
|
|
59
|
+
-------------
|
|
60
|
+
|
|
61
|
+
To support Emacs, you need two steps. First, reindex everything with Emacs
|
|
62
|
+
enabled:
|
|
63
|
+
|
|
64
|
+
gem ripper_tags --reindex --emacs
|
|
65
|
+
|
|
66
|
+
And make sure this environment variable is set to all shells where you use
|
|
67
|
+
"gem install" command so new gems are generated with Emacs TAGS files.
|
|
68
|
+
|
|
69
|
+
RIPPER_TAGS_EMACS=1
|
|
70
|
+
|
|
51
71
|
Vim Tips
|
|
52
72
|
--------
|
|
53
73
|
|
data/gem-ripper-tags.gemspec
CHANGED
|
@@ -14,6 +14,6 @@ Gem::Specification.new do |s|
|
|
|
14
14
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
15
15
|
s.require_paths = ["lib"]
|
|
16
16
|
|
|
17
|
-
s.add_dependency 'ripper-tags'
|
|
17
|
+
s.add_dependency 'ripper-tags', '>= 0.1.2'
|
|
18
18
|
s.add_development_dependency 'rake'
|
|
19
19
|
end
|
|
@@ -4,6 +4,16 @@ require 'ripper-tags'
|
|
|
4
4
|
class Gem::Commands::RipperTagsCommand < Gem::Command
|
|
5
5
|
def initialize
|
|
6
6
|
super 'ripper_tags', 'Generate ctags for gems with Ruby/Ripper parser'
|
|
7
|
+
|
|
8
|
+
add_option("--emacs", "Generate Emacs TAGS instead Vim tags") do |value, options|
|
|
9
|
+
options[:emacs] = true
|
|
10
|
+
end
|
|
11
|
+
add_option("--reindex", "Reindex all tags again") do |value, options|
|
|
12
|
+
options[:reindex] = true
|
|
13
|
+
end
|
|
14
|
+
add_option("--debug", "Enable debugging output") do |value, options|
|
|
15
|
+
options[:debug] = true
|
|
16
|
+
end
|
|
7
17
|
end
|
|
8
18
|
|
|
9
19
|
def execute
|
|
@@ -12,27 +22,40 @@ class Gem::Commands::RipperTagsCommand < Gem::Command
|
|
|
12
22
|
else
|
|
13
23
|
Gem.source_index.gems.values
|
|
14
24
|
end.each do |spec|
|
|
15
|
-
self.class.index(spec
|
|
25
|
+
self.class.index(spec,
|
|
26
|
+
options[:reindex],
|
|
27
|
+
(options[:emacs] || ENV['RIPPER_TAGS_EMACS'])) do |message|
|
|
16
28
|
say message
|
|
17
29
|
end
|
|
18
30
|
end
|
|
31
|
+
rescue Exception => e
|
|
32
|
+
if options[:debug]
|
|
33
|
+
puts e.message
|
|
34
|
+
puts e.backtrace.join("\n")
|
|
35
|
+
end
|
|
36
|
+
raise e
|
|
19
37
|
end
|
|
20
38
|
|
|
21
|
-
def self.index(spec)
|
|
39
|
+
def self.index(spec, reindex, emacs)
|
|
22
40
|
return unless File.directory?(spec.full_gem_path)
|
|
23
41
|
|
|
24
|
-
|
|
42
|
+
if emacs
|
|
43
|
+
tag_filename = 'TAGS'
|
|
44
|
+
format = "emacs"
|
|
45
|
+
else
|
|
46
|
+
tag_filename = 'tags'
|
|
47
|
+
format = "vim"
|
|
48
|
+
end
|
|
25
49
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
#if !File.directory?('tags')
|
|
29
|
-
if !(File.file?('tags') && File.read('tags', 1) == '!') && !File.directory?('tags')
|
|
50
|
+
Dir.chdir(spec.full_gem_path) do
|
|
51
|
+
if (!File.directory?(tag_filename) && reindex) || (!File.file?(tag_filename) && !File.directory?(tag_filename))
|
|
30
52
|
yield "Ripper is generating ctags for #{spec.full_name}" if block_given?
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
53
|
+
riopt = RipperTags.default_options
|
|
54
|
+
riopt.tag_file_name = "./#{tag_filename}"
|
|
55
|
+
riopt.format = format
|
|
56
|
+
riopt.recursive = true
|
|
57
|
+
riopt.force = true
|
|
58
|
+
RipperTags.run riopt
|
|
36
59
|
end
|
|
37
60
|
|
|
38
61
|
target = 'lib/bundler/cli.rb'
|
data/release.sh
CHANGED
data/test.sh
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/bin/bash
|
|
2
|
-
rm gem-ripper-tags*.gem; gem build gem-ripper-tags.gemspec && gem
|
|
2
|
+
rm gem-ripper-tags*.gem; gem build gem-ripper-tags.gemspec && gem uninstall gem-ripper-tags && gem install gem-ripper-tags-*.gem && gem ripper
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: gem-ripper-tags
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.4
|
|
5
5
|
prerelease:
|
|
6
6
|
platform: ruby
|
|
7
7
|
authors:
|
|
@@ -19,7 +19,7 @@ dependencies:
|
|
|
19
19
|
requirements:
|
|
20
20
|
- - ! '>='
|
|
21
21
|
- !ruby/object:Gem::Version
|
|
22
|
-
version:
|
|
22
|
+
version: 0.1.2
|
|
23
23
|
type: :runtime
|
|
24
24
|
prerelease: false
|
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -27,7 +27,7 @@ dependencies:
|
|
|
27
27
|
requirements:
|
|
28
28
|
- - ! '>='
|
|
29
29
|
- !ruby/object:Gem::Version
|
|
30
|
-
version:
|
|
30
|
+
version: 0.1.2
|
|
31
31
|
- !ruby/object:Gem::Dependency
|
|
32
32
|
name: rake
|
|
33
33
|
requirement: !ruby/object:Gem::Requirement
|