| Class | RailsEnvironment |
| In: |
vendor/rails/railties/lib/commands/plugin.rb
|
| Parent: | Object |
| root | [R] |
# File vendor/rails/railties/lib/commands/plugin.rb, line 73
73: def self.default
74: @default ||= find
75: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 77
77: def self.default=(rails_env)
78: @default = rails_env
79: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 65
65: def self.find(dir=nil)
66: dir ||= pwd
67: while dir.length > 1
68: return new(dir) if File.exist?(File.join(dir, 'config', 'environment.rb'))
69: dir = File.dirname(dir)
70: end
71: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 61
61: def initialize(dir)
62: @root = dir
63: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 115
115: def best_install_method
116: return :http unless use_svn?
117: case
118: when use_externals? then :externals
119: when use_checkout? then :checkout
120: else :export
121: end
122: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 124
124: def externals
125: return [] unless use_externals?
126: ext = `svn propget svn:externals "#{root}/vendor/plugins"`
127: ext.reject{ |line| line.strip == '' }.map do |line|
128: line.strip.split(/\s+/, 2)
129: end
130: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 132
132: def externals=(items)
133: unless items.is_a? String
134: items = items.map{|name,uri| "#{name.ljust(29)} #{uri.chomp('/')}"}.join("\n")
135: end
136: Tempfile.open("svn-set-prop") do |file|
137: file.write(items)
138: file.flush
139: system("svn propset -q svn:externals -F \"#{file.path}\" \"#{root}/vendor/plugins\"")
140: end
141: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 81
81: def install(name_uri_or_plugin)
82: if name_uri_or_plugin.is_a? String
83: if name_uri_or_plugin =~ /:\/\//
84: plugin = Plugin.new(name_uri_or_plugin)
85: else
86: plugin = Plugins[name_uri_or_plugin]
87: end
88: else
89: plugin = name_uri_or_plugin
90: end
91: unless plugin.nil?
92: plugin.install
93: else
94: puts "Plugin not found: #{name_uri_or_plugin}"
95: end
96: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 108
108: def use_checkout?
109: # this is a bit of a guess. we assume that if the rails environment
110: # is under subversion then they probably want the plugin checked out
111: # instead of exported. This can be overridden on the command line
112: File.directory?("#{root}/.svn")
113: end
# File vendor/rails/railties/lib/commands/plugin.rb, line 104
104: def use_externals?
105: use_svn? && File.directory?("#{root}/vendor/plugins/.svn")
106: end