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
# 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)
  system('bundle install')
  PluginExposer.expose_commands(plugin_name)
  pp "The plugin #{plugin_name} is added"
end

.available?(plugin_name) ⇒ Boolean

Returns:

  • (Boolean)


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

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

.camelize(str) ⇒ Object



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

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

.delete_plugin(plugin_name) ⇒ Object



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

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

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

.installed?(plugin_name) ⇒ Boolean

Returns:

  • (Boolean)


38
39
40
# File 'lib/plugin/plugin.rb', line 38

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

.installed_pluginsObject



31
32
33
34
35
36
# File 'lib/plugin/plugin.rb', line 31

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

  parsed_gemfile = File.readlines('Gemfile').map { |line| line.sub('gem ', '').strip.delete("'") }
  parsed_gemfile.select { |line| plugins.include?(line) }
end

.pluginsObject



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

def plugins
  ['great_axe']
end