Class RailsEnvironment
In: vendor/rails/railties/lib/commands/plugin.rb
Parent: Object

Methods

Attributes

root  [R] 

Public Class methods

[Source]

    # File vendor/rails/railties/lib/commands/plugin.rb, line 73
73:   def self.default
74:     @default ||= find
75:   end

[Source]

    # File vendor/rails/railties/lib/commands/plugin.rb, line 77
77:   def self.default=(rails_env)
78:     @default = rails_env
79:   end

[Source]

    # 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

[Source]

    # File vendor/rails/railties/lib/commands/plugin.rb, line 61
61:   def initialize(dir)
62:     @root = dir
63:   end

Public Instance methods

[Source]

     # 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

[Source]

     # 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

[Source]

     # 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

[Source]

    # 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

[Source]

     # 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

[Source]

     # 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

[Source]

     # File vendor/rails/railties/lib/commands/plugin.rb, line 98
 98:   def use_svn?
 99:     require 'active_support/core_ext/kernel'
100:     silence_stderr {`svn --version` rescue nil}
101:     !$?.nil? && $?.success?
102:   end

[Validate]