Class: KPM::PluginsDirectory

Inherits:
Object
  • Object
show all
Defined in:
lib/kpm/plugins_directory.rb

Class Method Summary collapse

Class Method Details

.all(latest = false) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/kpm/plugins_directory.rb', line 6

def self.all(latest=false)
  if latest
    # Look at GitHub (source of truth)
    uri = URI('https://raw.githubusercontent.com/killbill/killbill-cloud/master/kpm/lib/kpm/plugins_directory.yml')
    source = Net::HTTP.get(uri)
    YAML.load(source)
  else
    source = File.join(File.expand_path(File.dirname(__FILE__)), 'plugins_directory.yml')
    YAML.load_file(source)
  end
end

.lookup(plugin_name, latest = false) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/kpm/plugins_directory.rb', line 18

def self.lookup(plugin_name, latest=false)
  plugin = all(latest)[plugin_name.to_s.downcase.to_sym]
  return nil if plugin.nil?

  type = plugin[:type]
  is_ruby = type == :ruby

  group_id    = plugin[:group_id] || (is_ruby ? KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_GROUP_ID : KPM::BaseArtifact::KILLBILL_JAVA_PLUGIN_GROUP_ID)
  artifact_id = plugin[:artifact_id] || "#{plugin.to_s}-plugin"
  packaging   = plugin[:packaging] || (is_ruby ? KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_PACKAGING : KPM::BaseArtifact::KILLBILL_JAVA_PLUGIN_PACKAGING)
  classifier  = plugin[:classifier] || (is_ruby ? KPM::BaseArtifact::KILLBILL_RUBY_PLUGIN_CLASSIFIER : KPM::BaseArtifact::KILLBILL_JAVA_PLUGIN_CLASSIFIER)
  version     = plugin[:stable_version] || 'LATEST'

  [group_id, artifact_id, packaging, classifier, version, type]
end