Module: RubyRaider::Plugin

Defined in:
lib/plugin/plugin.rb

Class Method Summary collapse

Class Method Details

.add_plugin(plugin_name) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/plugin/plugin.rb', line 9

def add_plugin(plugin_name)
  return gemfile_guard unless File.exist?('Gemfile')
  return pp 'The plugin was not found' unless available?(plugin_name)
  return pp 'The plugin is already installed' if installed?(plugin_name)

  pp "Adding #{plugin_name}..."
  add_plugin_to_gemfile(plugin_name)
  invalidate_gemfile_cache
  system('bundle install')
  PluginExposer.expose_commands(plugin_name)
  pp "The plugin #{plugin_name} is added"
end

.available?(plugin_name) ⇒ Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/plugin/plugin.rb', line 47

def available?(plugin_name)
  plugins.include?(plugin_name)
end

.camelize(str) ⇒ Object



51
52
53
# File 'lib/plugin/plugin.rb', line 51

def camelize(str)
  str.split('_').collect(&:capitalize).join
end

.delete_plugin(plugin_name) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
# File 'lib/plugin/plugin.rb', line 22

def delete_plugin(plugin_name)
  return gemfile_guard unless File.exist?('Gemfile')
  return 'The plugin is not installed' unless installed_plugins.include?(plugin_name)

  pp "Deleting #{plugin_name}..."
  remove_plugin_from_gemfile(plugin_name)
  invalidate_gemfile_cache
  PluginExposer.remove_command(plugin_name)
  system('bundle install')
  pp "The plugin #{plugin_name} is deleted"
end

.installed?(plugin_name) ⇒ Boolean

Returns:

  • (Boolean)


43
44
45
# File 'lib/plugin/plugin.rb', line 43

def installed?(plugin_name)
  installed_plugins.include?(plugin_name)
end

.installed_pluginsObject



34
35
36
37
38
39
40
41
# File 'lib/plugin/plugin.rb', line 34

def installed_plugins
  return gemfile_guard unless File.exist?('Gemfile')

  cached_gemfile_lines.filter_map do |line|
    stripped = line.sub('gem ', '').strip.delete("'")
    stripped if plugins.include?(stripped)
  end
end

.pluginsObject



55
56
57
# File 'lib/plugin/plugin.rb', line 55

def plugins
  ['great_axe']
end