class Lono::Jade::Materializer::Source

Public Class Methods

new(lono_settings=nil) click to toggle source
# File lib/lono/jade/materializer/source.rb, line 3
def initialize(lono_settings=nil)
  @lono_settings = lono_settings || Lono::Setting.new.data
end

Public Instance Methods

gem_args(jade) click to toggle source

String provide to gem method in Gemfile. Example:

gem "mygem", "v0.1.0", git: "xxx"
# File lib/lono/jade/materializer/source.rb, line 11
def gem_args(jade)
  args = jade.registry.args
  args = args.map { |s| %Q|"#{s}"| }.join(', ')

  options = options(jade)
  options = options.inject([]) { |r,(k,v)| r << %Q|#{k}: "#{v}"| }.join(', ')

  "#{args}, #{options}"
end
location() click to toggle source
# File lib/lono/jade/materializer/source.rb, line 43
def location
  ENV["LONO_MATERIALIZED_GEMS_SOURCE"] ||
  Lono::Configset::Register::Blueprint.source ||
  settings["source"] ||
  "git@github.com:boltopspro" # default_location
end
options(jade) click to toggle source
# File lib/lono/jade/materializer/source.rb, line 21
def options(jade)
  registry = jade.registry
  options = registry.gem_options
  # Direct source provided as part of configset call
  #
  #    configset("ssm", git: "https://github.com/owner/ssm")
  #    configset("ssm", path: "/path/to/ssm")
  #    configset("ssm", source: "https://rubygems.org")
  #
  if options.key?(:git) || options.key?(:path) || options.key?(:source)
    return(options)
  end

  # Otherwise use the sources location settings, which does not include the repo name
  materalized_options = if location.include?("git@") || location.include?("https")
    {git: "#{location}/#{jade.repo}"}
  else
    {path: "#{location}/#{jade.repo}"}
  end
  materalized_options.merge(options)
end
settings() click to toggle source
# File lib/lono/jade/materializer/source.rb, line 50
def settings
  @lono_settings.dig("materialized_gems") || {}
end