Module: Arli::Library

Included in:
ArliFile, Commands::Install
Defined in:
lib/arli/library.rb,
lib/arli/library/installer.rb,
lib/arli/library/multi_version.rb,
lib/arli/library/single_version.rb

Defined Under Namespace

Classes: Installer, MultiVersion, SingleVersion

Constant Summary collapse

ADDITIONAL_KEYS =
%i(depends headers_only)

Instance Method Summary collapse

Instance Method Details

#library_model(lib) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/arli/library.rb', line 10

def library_model(lib)
  return lib if lib.is_a?(::Arduino::Library::Model)
  ::Arduino::Library::Model.from(lib).tap do |model|
    if model.nil?
      lib_output = (lib && lib['name']) ? lib['name'] : lib.to_s
      raise Arli::Errors::LibraryNotFound, 'Error: '.bold.red +
          "Library #{lib_output.yellow} ".red + "was not found.\n\n".red +
          %Q[  HINT: run #{"arli search 'name: /#{lib_output}/'".green}\n] +
          %Q[        to find the exact name of the library you are trying\n] +
          %Q[        to install. Alternatively, provide a url: field.\n]
    end
  end
end

#make_lib(lib) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/arli/library.rb', line 24

def make_lib(lib)
  additional_keys = {}
  ADDITIONAL_KEYS.each do |k|
    if lib.is_a?(Hash) && lib[k]
      additional_keys[k] = lib[k]
      lib.delete(k)
    end
  end

  ::Arli::Library::SingleVersion.new(library_model(lib)).tap do |svlib|
    additional_keys.each_pair do |key, value|
      svlib.send("#{key}=", value)
    end
  end
end