mactag 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.markdown +64 -50
- data/bin/mactag +95 -0
- data/lib/mactag.rb +26 -4
- data/lib/mactag/builder.rb +1 -1
- data/lib/mactag/bundler.rb +9 -1
- data/lib/mactag/config.rb +51 -39
- data/lib/mactag/ctags.rb +1 -1
- data/lib/mactag/dsl.rb +62 -14
- data/lib/mactag/indexer.rb +1 -0
- data/lib/mactag/indexer/lib.rb +22 -0
- data/lib/mactag/indexer/rails.rb +7 -6
- data/spec/mactag/config_spec.rb +57 -10
- data/spec/mactag/ctags_spec.rb +2 -1
- data/spec/mactag/dsl_spec.rb +50 -0
- data/spec/mactag/indexer/lib_spec.rb +20 -0
- data/spec/mactag/indexer/rails_spec.rb +6 -6
- data/spec/mactag_spec.rb +15 -0
- data/spec/matcher.rb +8 -0
- data/spec/matcher/app.rb +32 -0
- data/spec/matcher/gem.rb +39 -0
- data/spec/matcher/lib.rb +31 -0
- data/spec/matcher/plugin.rb +32 -0
- data/spec/matcher/rails.rb +49 -0
- data/spec/spec_helper.rb +0 -2
- metadata +38 -27
- data/lib/generators/mactag/mactag_generator.rb +0 -11
- data/lib/generators/mactag/templates/mactag.rb +0 -39
- data/lib/tasks/mactag.rake +0 -8
data/README.markdown
CHANGED
@@ -1,90 +1,104 @@
|
|
1
1
|
# Mactag
|
2
2
|
|
3
|
-
Mactag is a
|
3
|
+
Mactag is a Ruby gem for Ruby developers that do their development in
|
4
4
|
an editor that supports Ctags (Emacs, Vim, TextMate, ...). With Ctags
|
5
5
|
you can follow tags (of functions, variables, macros, whatever) to
|
6
6
|
their definitions.
|
7
7
|
|
8
|
+
Mactag works with both Ruby projects and Rails applications.
|
8
9
|
|
9
|
-
# Exuberant Ctags
|
10
10
|
|
11
|
-
|
12
|
-
Some systems comes with a `ctags` binary already. If you have the
|
13
|
-
ctags executable, but have problems creating the tags file. Then make
|
14
|
-
sure that you are using **Exuberant Ctags** and not some other version.
|
11
|
+
# Exuberant Ctags
|
15
12
|
|
13
|
+
Mactag requires a tool called
|
14
|
+
[Exuberant Ctags](http://ctags.sourceforge.net/), which is used to
|
15
|
+
create the tags file. Install it if you don't have it already. Some
|
16
|
+
systems includes a `ctags` exectuable. If you use that and you have
|
17
|
+
trouble creating the tags file, then install it from your package
|
18
|
+
manager instead. The package is called `ctags` in Homebrew and
|
19
|
+
`exuberant-ctags` in Ubuntu.
|
16
20
|
|
17
21
|
# Installation
|
18
22
|
|
19
23
|
Install the gem:
|
20
24
|
|
21
25
|
$ gem install mactag
|
22
|
-
|
26
|
+
|
23
27
|
Add `mactag` to the `Gemfile`:
|
24
28
|
|
25
|
-
|
26
|
-
|
27
|
-
|
29
|
+
gem 'mactag'
|
30
|
+
|
31
|
+
Then run `bundle install`.
|
28
32
|
|
29
33
|
|
30
34
|
# Configuration
|
31
35
|
|
32
|
-
|
33
|
-
`mactag`
|
34
|
-
|
36
|
+
You specify what you want to index in the configuration file (default
|
37
|
+
is `config/mactag.rb`). To generate such as file with a basic setup,
|
38
|
+
run the command:
|
35
39
|
|
36
|
-
|
40
|
+
$ mactag new
|
37
41
|
|
38
|
-
|
42
|
+
Or if you want the config file someplace else:
|
43
|
+
|
44
|
+
$ mactag new conf/mactag.rb
|
45
|
+
|
46
|
+
That will generate a configuration file looking something like this:
|
39
47
|
|
40
48
|
Mactag.configure do |config|
|
41
|
-
#
|
42
|
-
config.rvm = false
|
43
|
-
|
44
|
-
|
45
|
-
#
|
46
|
-
|
47
|
-
|
48
|
-
#
|
49
|
-
|
49
|
+
# Use RVM to locate project gems.
|
50
|
+
# config.rvm = false
|
51
|
+
|
52
|
+
# Path to gems. No need to set this when RVM is used!
|
53
|
+
# config.gem_home = '/Library/Ruby/Gems/1.8/gems'
|
54
|
+
|
55
|
+
# Name of tags file to create.
|
56
|
+
# config.tags_file = '.tags'
|
57
|
+
|
58
|
+
# Command used to create the tags table. {INPUT} and {OUTPUT} are required!
|
59
|
+
# config.binary = '/usr/local/Cellar/ctags/5.8/bin/ctags -e -o {OUTPUT} {INPUT}'
|
50
60
|
end
|
51
61
|
|
52
62
|
Mactag do
|
53
|
-
|
54
|
-
|
55
|
-
index 'carrerwave', 'simple_form'
|
56
|
-
index 'redcarpet', :version => '1.17.2'
|
63
|
+
# Index current project.
|
64
|
+
# index :lib
|
57
65
|
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
66
|
+
# Index current Rails project.
|
67
|
+
# index :app
|
68
|
+
|
69
|
+
# Index all models and helpers.
|
70
|
+
# index 'app/models/*.rb', 'app/helpers/*.rb'
|
71
|
+
|
72
|
+
# Index the gems carrierwave and redcarpet.
|
73
|
+
# index 'carrierwave', 'redcarpet'
|
74
|
+
|
75
|
+
# Index the gem simple_form version 1.5.2.
|
76
|
+
# index 'simple_form', :version => '1.5.2'
|
63
77
|
|
64
|
-
|
65
|
-
|
66
|
-
Defaults to: `true`
|
78
|
+
# Index rails.
|
79
|
+
# index :rails
|
67
80
|
|
68
|
-
|
69
|
-
|
70
|
-
Defaults to: `/Library/Ruby/Gems/1.8/gems`
|
71
|
-
|
72
|
-
### binary
|
73
|
-
The command to run when creating the TAGS-file. `{OUTPUT}` will be
|
74
|
-
replaced with the value of `tags_file` configuration option. `{INPUT}`
|
75
|
-
will be replaced with all files to index.
|
76
|
-
Defaults to: `ctags -o {OUTPUT} -e {INPUT}`
|
81
|
+
# Index rails except action mailer.
|
82
|
+
# index :rails, :except => :actionmailer
|
77
83
|
|
78
|
-
|
79
|
-
|
80
|
-
|
84
|
+
# Index only rails packages activerecord and activesupport.
|
85
|
+
# index :rails, :only => %w(activerecord activesupport)
|
86
|
+
|
87
|
+
# Index rails, version 3.1.3.
|
88
|
+
# index :rails, :version => '3.1.3'
|
89
|
+
end
|
81
90
|
|
82
91
|
|
83
92
|
# Usage
|
84
|
-
To create the TAGS file, simply run:
|
85
93
|
|
86
|
-
|
94
|
+
When you are done configuring, create the tags file with the command:
|
87
95
|
|
96
|
+
$ mactag
|
97
|
+
|
98
|
+
Or if the config file is someplace else than `config/mactag.rb`.
|
99
|
+
|
100
|
+
$ mactag conf/mactag.rb
|
88
101
|
|
89
102
|
# License
|
103
|
+
|
90
104
|
Copyright (c) 2010-2012 Johan Andersson, released under the MIT license
|
data/bin/mactag
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
if ARGV.include?('-h') || ARGV.include?('--help') || ARGV.include?('help')
|
6
|
+
$stderr.puts 'Usage: mactag [new] [configuration_file]'
|
7
|
+
else
|
8
|
+
default_config_file = File.join('config', 'mactag.rb')
|
9
|
+
|
10
|
+
if ARGV.first == 'new'
|
11
|
+
config_file = ARGV[1] || default_config_file
|
12
|
+
|
13
|
+
config_dir = File.dirname(config_file)
|
14
|
+
if File.exists?(config_dir)
|
15
|
+
if File.exists?(config_file)
|
16
|
+
$stderr.puts "[skip] file `#{config_file}' already exists"
|
17
|
+
else
|
18
|
+
content = <<-CONFIG
|
19
|
+
Mactag.configure do |config|
|
20
|
+
# Use RVM to locate project gems.
|
21
|
+
# config.rvm = false
|
22
|
+
|
23
|
+
# Path to gems. No need to set this when RVM is used!
|
24
|
+
# config.gem_home = '/Library/Ruby/Gems/1.8/gems'
|
25
|
+
|
26
|
+
# Name of tags file to create.
|
27
|
+
# config.tags_file = '.tags'
|
28
|
+
|
29
|
+
# Command used to create the tags table. {INPUT} and {OUTPUT} are required!
|
30
|
+
# config.binary = '/usr/local/Cellar/ctags/5.8/bin/ctags -e -o {OUTPUT} {INPUT}'
|
31
|
+
end
|
32
|
+
|
33
|
+
Mactag do
|
34
|
+
# Index current project.
|
35
|
+
# index :lib
|
36
|
+
|
37
|
+
# Index current Rails project.
|
38
|
+
# index :app
|
39
|
+
|
40
|
+
# Index all models and helpers.
|
41
|
+
# index 'app/models/*.rb', 'app/helpers/*.rb'
|
42
|
+
|
43
|
+
# Index the gems carrierwave and redcarpet.
|
44
|
+
# index 'carrierwave', 'redcarpet'
|
45
|
+
|
46
|
+
# Index the gem simple_form version 1.5.2.
|
47
|
+
# index 'simple_form', :version => '1.5.2'
|
48
|
+
|
49
|
+
# Index rails.
|
50
|
+
# index :rails
|
51
|
+
|
52
|
+
# Index rails except action mailer.
|
53
|
+
# index :rails, :except => :actionmailer
|
54
|
+
|
55
|
+
# Index only rails packages activerecord and activesupport.
|
56
|
+
# index :rails, :only => %w(activerecord activesupport)
|
57
|
+
|
58
|
+
# Index rails, version 3.1.3.
|
59
|
+
# index :rails, :version => '3.1.3'
|
60
|
+
end
|
61
|
+
CONFIG
|
62
|
+
|
63
|
+
File.open(config_file, 'w') do |f|
|
64
|
+
f.write(content)
|
65
|
+
end
|
66
|
+
|
67
|
+
puts "[done] created `#{config_file}'"
|
68
|
+
end
|
69
|
+
else
|
70
|
+
$stderr.puts "[skip] directory `#{config_dir}' does not exist"
|
71
|
+
end
|
72
|
+
else
|
73
|
+
config_file = ARGV[0] || default_config_file
|
74
|
+
|
75
|
+
if File.exists?(config_file)
|
76
|
+
require 'mactag'
|
77
|
+
|
78
|
+
environment = File.expand_path(File.join(ENV['PWD'], 'config', 'environment.rb'))
|
79
|
+
if File.exists?(environment)
|
80
|
+
require environment
|
81
|
+
end
|
82
|
+
|
83
|
+
begin
|
84
|
+
require config_file
|
85
|
+
|
86
|
+
Mactag::Builder.create
|
87
|
+
rescue Mactag::MactagError => e
|
88
|
+
$stderr.puts "[error] #{e.message}"
|
89
|
+
end
|
90
|
+
|
91
|
+
else
|
92
|
+
$stderr.puts "[skip] file `#{config_file}' does not exist"
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
data/lib/mactag.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'mactag/railtie'
|
2
1
|
require 'mactag/config'
|
3
2
|
require 'mactag/builder'
|
4
3
|
require 'mactag/dsl'
|
@@ -8,16 +7,39 @@ require 'mactag/bundler'
|
|
8
7
|
require 'mactag/errors'
|
9
8
|
|
10
9
|
module Mactag
|
11
|
-
autoload :Bundler, 'bundler'
|
12
|
-
autoload :Rails, 'rails'
|
13
|
-
|
14
10
|
class << self
|
15
11
|
def configure(&block)
|
16
12
|
Mactag::Config.configure(&block)
|
17
13
|
end
|
14
|
+
|
15
|
+
def rails_app?
|
16
|
+
defined?(::Rails)
|
17
|
+
end
|
18
|
+
|
19
|
+
def rails_version
|
20
|
+
if rails_app?
|
21
|
+
::Rails.version
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def project_root
|
26
|
+
if rails_app?
|
27
|
+
::Rails.root
|
28
|
+
else
|
29
|
+
ENV['PWD']
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def current_project
|
34
|
+
File.basename(project_root)
|
35
|
+
end
|
18
36
|
end
|
19
37
|
end
|
20
38
|
|
21
39
|
def Mactag(&block)
|
22
40
|
Mactag::Builder.generate(&block)
|
23
41
|
end
|
42
|
+
|
43
|
+
if Mactag.rails_app?
|
44
|
+
require 'mactag/railtie'
|
45
|
+
end
|
data/lib/mactag/builder.rb
CHANGED
@@ -43,7 +43,7 @@ module Mactag
|
|
43
43
|
if builder.has_gems?
|
44
44
|
Mactag::Ctags.new(@builder.files, Mactag::Config.tags_file).create
|
45
45
|
|
46
|
-
puts "Successfully generated #{Mactag::Config.tags_file} file"
|
46
|
+
puts "[done] Successfully generated #{Mactag::Config.tags_file} file"
|
47
47
|
else
|
48
48
|
raise Mactag::MactagError.new('Nothing to tag')
|
49
49
|
end
|
data/lib/mactag/bundler.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'bundler'
|
2
|
+
|
1
3
|
module Mactag
|
2
4
|
##
|
3
5
|
#
|
@@ -26,7 +28,13 @@ module Mactag
|
|
26
28
|
default = runtime.dependencies.select { |dependency|
|
27
29
|
dependency.groups.include?(:default)
|
28
30
|
}.map(&:name)
|
29
|
-
|
31
|
+
if Mactag.rails_app?
|
32
|
+
default.delete('rails')
|
33
|
+
else
|
34
|
+
if project = Mactag.current_project
|
35
|
+
default.delete(project)
|
36
|
+
end
|
37
|
+
end
|
30
38
|
default
|
31
39
|
end
|
32
40
|
|
data/lib/mactag/config.rb
CHANGED
@@ -1,41 +1,25 @@
|
|
1
1
|
module Mactag
|
2
|
-
|
3
|
-
##
|
4
|
-
#
|
5
|
-
# The command to run (replacing <tt>{OUTPUT}</tt> with <tt>tags_file</tt>
|
6
|
-
# and <tt>{INPUT}</tt> with the input files) when creating the tags file.
|
7
|
-
#
|
8
|
-
@@binary = 'ctags -o {OUTPUT} -e {INPUT}'
|
9
|
-
cattr_reader :binary
|
10
|
-
|
11
|
-
##
|
12
|
-
#
|
13
|
-
# Name of the output tags file.
|
14
|
-
#
|
15
|
-
@@tags_file = 'TAGS'
|
16
|
-
cattr_accessor :tags_file
|
17
|
-
|
18
|
-
##
|
19
|
-
#
|
20
|
-
# If using Ruby Version Manager (RVM), setting this option to true
|
21
|
-
# will enable Mactag to find out the gem path automatically.
|
22
|
-
#
|
23
|
-
@@rvm = true
|
24
|
-
cattr_accessor :rvm
|
25
|
-
|
26
|
-
##
|
27
|
-
#
|
28
|
-
# The system folder where the gems are located.
|
29
|
-
#
|
30
|
-
@@gem_home = '/Library/Ruby/Gems/1.8/gems'
|
31
|
-
cattr_writer :gem_home
|
32
|
-
|
2
|
+
module Config
|
33
3
|
class << self
|
34
|
-
def
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
4
|
+
def configure(&block)
|
5
|
+
yield self
|
6
|
+
end
|
7
|
+
|
8
|
+
def add_config(name, &block)
|
9
|
+
unless respond_to?(name)
|
10
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
11
|
+
def self.#{name}
|
12
|
+
@#{name}
|
13
|
+
end
|
14
|
+
RUBY
|
15
|
+
end
|
16
|
+
|
17
|
+
unless respond_to?("#{name}=")
|
18
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
19
|
+
def self.#{name}=(value)
|
20
|
+
@#{name} = value
|
21
|
+
end
|
22
|
+
RUBY
|
39
23
|
end
|
40
24
|
end
|
41
25
|
|
@@ -43,13 +27,41 @@ module Mactag
|
|
43
27
|
if rvm
|
44
28
|
File.join(ENV['GEM_HOME'], 'gems')
|
45
29
|
else
|
46
|
-
|
30
|
+
@gem_home
|
47
31
|
end
|
48
32
|
end
|
49
33
|
|
50
|
-
def
|
51
|
-
|
34
|
+
def rvm=(rvm)
|
35
|
+
if rvm == true || rvm == false
|
36
|
+
@rvm = rvm
|
37
|
+
else
|
38
|
+
raise Mactag::MactagError.new("RVM must be either true or false")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
def binary=(binary)
|
43
|
+
if binary.include?('{INPUT}') && binary.include?('{OUTPUT}')
|
44
|
+
@binary = binary
|
45
|
+
else
|
46
|
+
raise Mactag::MactagError.new("Binary command must include '{INPUT}' and '{OUTPUT}'")
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def reset_config
|
51
|
+
configure do |config|
|
52
|
+
config.binary = 'ctags -o {OUTPUT} -e {INPUT}'
|
53
|
+
config.tags_file = 'TAGS'
|
54
|
+
config.rvm = true
|
55
|
+
config.gem_home = '/Library/Ruby/Gems/1.8/gems'
|
56
|
+
end
|
52
57
|
end
|
53
58
|
end
|
59
|
+
|
60
|
+
add_config :binary
|
61
|
+
add_config :tags_file
|
62
|
+
add_config :rvm
|
63
|
+
add_config :gem_home
|
64
|
+
|
65
|
+
reset_config
|
54
66
|
end
|
55
67
|
end
|
data/lib/mactag/ctags.rb
CHANGED
data/lib/mactag/dsl.rb
CHANGED
@@ -18,18 +18,21 @@ module Mactag
|
|
18
18
|
#
|
19
19
|
# = App
|
20
20
|
#
|
21
|
-
# App indexes files in the current project.
|
21
|
+
# App indexes files in the current Rails project.
|
22
22
|
#
|
23
23
|
# == Examples
|
24
24
|
#
|
25
25
|
# Mactag do
|
26
|
-
# # Index
|
26
|
+
# # Index all ruby files in app and lib, recursive
|
27
|
+
# index :app
|
28
|
+
#
|
29
|
+
# # Index single file
|
27
30
|
# index 'lib/super_duper.rb'
|
28
31
|
#
|
29
|
-
# # Index all ruby files in lib, recursive
|
32
|
+
# # Index all ruby files in lib, recursive
|
30
33
|
# index 'lib/**/*.rb'
|
31
34
|
#
|
32
|
-
# # Index all helper and model ruby files
|
35
|
+
# # Index all helper and model ruby files
|
33
36
|
# index 'app/helpers/*.rb', 'app/models/*.rb'
|
34
37
|
#
|
35
38
|
# # Same as above
|
@@ -44,16 +47,16 @@ module Mactag
|
|
44
47
|
# == Examples
|
45
48
|
#
|
46
49
|
# Mactag do
|
47
|
-
# # Index all gems specified in Gemfile
|
50
|
+
# # Index all gems specified in Gemfile
|
48
51
|
# index :gems
|
49
52
|
#
|
50
|
-
# # Index the gem whenever, latest version
|
53
|
+
# # Index the gem whenever, latest version
|
51
54
|
# index 'whenever'
|
52
55
|
#
|
53
|
-
# # Index the thinking-sphinx and carrierwave gems, latest versions
|
56
|
+
# # Index the thinking-sphinx and carrierwave gems, latest versions
|
54
57
|
# index 'thinking-sphinx', 'carrierwave'
|
55
58
|
#
|
56
|
-
# # Index the gem simple_form, version 1.5.2
|
59
|
+
# # Index the gem simple_form, version 1.5.2
|
57
60
|
# index 'simple_form', :version => '1.5.2'
|
58
61
|
# end
|
59
62
|
#
|
@@ -77,6 +80,24 @@ module Mactag
|
|
77
80
|
# * activesupport
|
78
81
|
#
|
79
82
|
#
|
83
|
+
# = Lib
|
84
|
+
#
|
85
|
+
# Lib indexes files in the current project.
|
86
|
+
#
|
87
|
+
# == Examples
|
88
|
+
#
|
89
|
+
# Mactag do
|
90
|
+
# # Index all ruby files in lib, recursive
|
91
|
+
# index :lib
|
92
|
+
#
|
93
|
+
# # Index single file
|
94
|
+
# index 'lib/super_duper.rb'
|
95
|
+
#
|
96
|
+
# # Index all ruby files in lib, recursive
|
97
|
+
# index 'lib/**/*.rb'
|
98
|
+
# end
|
99
|
+
#
|
100
|
+
#
|
80
101
|
# == Examples
|
81
102
|
#
|
82
103
|
# Mactag do
|
@@ -103,6 +124,8 @@ module Mactag
|
|
103
124
|
def index(*args)
|
104
125
|
if args.first == :app
|
105
126
|
app_private
|
127
|
+
elsif args.first == :lib
|
128
|
+
lib_private
|
106
129
|
elsif args.first == :gems
|
107
130
|
gem_private
|
108
131
|
elsif args.first == :rails
|
@@ -110,14 +133,18 @@ module Mactag
|
|
110
133
|
else
|
111
134
|
options = args.last
|
112
135
|
|
113
|
-
if options[:version] && args.size > 2
|
136
|
+
if options.is_a?(Hash) && options[:version] && args.size > 2
|
114
137
|
raise ArgumentError.new('The :version option is not valid when specifying more than one gem')
|
115
138
|
end
|
116
139
|
|
117
140
|
if options.is_a?(Hash) || args.all? { |arg| Mactag::Indexer::Gem.exist?(arg) }
|
118
|
-
|
141
|
+
gem_private(*args)
|
119
142
|
else
|
120
|
-
|
143
|
+
if Mactag.rails_app?
|
144
|
+
app_private(*args)
|
145
|
+
else
|
146
|
+
lib_private(*args)
|
147
|
+
end
|
121
148
|
end
|
122
149
|
end
|
123
150
|
end
|
@@ -182,7 +209,25 @@ module Mactag
|
|
182
209
|
|
183
210
|
private
|
184
211
|
|
212
|
+
def lib_private(*tags)
|
213
|
+
if Mactag.rails_app?
|
214
|
+
raise MactagError.new('Can not index :lib when in a Rails application')
|
215
|
+
end
|
216
|
+
|
217
|
+
if tags.empty?
|
218
|
+
@builder << Mactag::Indexer::Lib.all
|
219
|
+
else
|
220
|
+
tags.each do |tag|
|
221
|
+
@builder << Mactag::Indexer::Lib.new(tag)
|
222
|
+
end
|
223
|
+
end
|
224
|
+
end
|
225
|
+
|
185
226
|
def app_private(*tags)
|
227
|
+
unless Mactag.rails_app?
|
228
|
+
raise MactagError.new('Can not index :app when not a Rails application')
|
229
|
+
end
|
230
|
+
|
186
231
|
if tags.empty?
|
187
232
|
@builder << Mactag::Indexer::App.all
|
188
233
|
else
|
@@ -198,8 +243,8 @@ module Mactag
|
|
198
243
|
else
|
199
244
|
options = args.last
|
200
245
|
|
201
|
-
if
|
202
|
-
@builder << Mactag::Indexer::Gem.new(args.first, version)
|
246
|
+
if options.is_a?(Hash) && options[:version]
|
247
|
+
@builder << Mactag::Indexer::Gem.new(args.first, options[:version])
|
203
248
|
else
|
204
249
|
args.each do |arg|
|
205
250
|
@builder << Mactag::Indexer::Gem.new(arg)
|
@@ -209,6 +254,10 @@ module Mactag
|
|
209
254
|
end
|
210
255
|
|
211
256
|
def rails_private(*args)
|
257
|
+
unless Mactag.rails_app?
|
258
|
+
raise MactagError.new('You can not index :rails when not in a Rails application')
|
259
|
+
end
|
260
|
+
|
212
261
|
args.shift
|
213
262
|
|
214
263
|
if args.size.zero?
|
@@ -235,4 +284,3 @@ module Mactag
|
|
235
284
|
end
|
236
285
|
end
|
237
286
|
end
|
238
|
-
|