Class: Vagrant::Rubymine::RubymineConf
- Inherits:
-
Object
- Object
- Vagrant::Rubymine::RubymineConf
- Defined in:
- lib/vagrant/rubymine/rubymine_conf.rb
Constant Summary collapse
- GEM_MANAGER_PATH =
'/config/options/gemmanager.xml'- OTHER_PATH =
'/config/options/other.xml'
Instance Method Summary collapse
- #gems_paths ⇒ Object
-
#initialize(root_path = nil) ⇒ RubymineConf
constructor
A new instance of RubymineConf.
- #projects_paths ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize(root_path = nil) ⇒ RubymineConf
Returns a new instance of RubymineConf.
15 16 17 18 |
# File 'lib/vagrant/rubymine/rubymine_conf.rb', line 15 def initialize(root_path=nil) @root_path = root_path || detect_root_path raise ConfigNotFound, "#{config_gem_manager_path} or #{config_other_path}" if !valid? end |
Instance Method Details
#gems_paths ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/vagrant/rubymine/rubymine_conf.rb', line 34 def gems_paths conf = parse(config_gem_manager_path) conf.xpath('/application/component/sdk2gems').inject({}) do |result, sdk| sdk_name = (sdk_attr = sdk.xpath('@sdk')).empty? ? nil : sdk_attr.first.value if (match = sdk_name.match(/\[(.*)\]/)) project_name = match[1] url_attr = sdk.xpath('box[1]/@url') if (gems_path = url_attr.first.value) gems_path = gems_path.gsub('file://$USER_HOME$', ENV['USERPROFILE']).gsub('/', '\\').downcase result[normalize_project_name(project_name)] = gems_path end end result end end |
#projects_paths ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/vagrant/rubymine/rubymine_conf.rb', line 24 def projects_paths conf = parse(config_other_path) conf.xpath("/application/component[@name='RecentDirectoryProjectsManager']/option[@name='recentPaths']/list/option").inject({}) do |result, option| project_path = option.xpath('@value').map(&:value).first project_name = project_path.split('\\').last result[normalize_project_name(project_name)] = project_path.downcase result end end |
#valid? ⇒ Boolean
20 21 22 |
# File 'lib/vagrant/rubymine/rubymine_conf.rb', line 20 def valid? @root_path && File.exists?(config_gem_manager_path) && File.exists?(config_other_path) end |