mactag 0.6.0 → 0.7.0
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 +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
|
-
|