arli 0.2.2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c4bcc7bfa074f09ae70dbf449ebe1112c6029bc2
4
- data.tar.gz: 5cd8d400ae0861d24d041d39bb2fa46fcc847685
3
+ metadata.gz: 46f795acacbde34438dcaf8b480b23153f34c802
4
+ data.tar.gz: f561796a03ce3c9d71d0f4166c67c90692397e6b
5
5
  SHA512:
6
- metadata.gz: aef1c241150fadc67b359d8e337d2a3998d70b6e50181800a44b5c202348bcb11f4f9894826361f63455372bdd303404042da4e14f2765de311138ffa4e7ce5c
7
- data.tar.gz: 4206dd840bf013f68ee1bb5b64400d3f9ee9225767b23957ad9c02bb728931f15c4faea3cff19b23df3ef98e8129b38d22044a2793f9f755d7e20bb7ab5aa498
6
+ metadata.gz: 4804d1bfab9e6032f3e2b78bcfc26789f5cc5990c0eaa79d9b13e7b408ca1fe7d497b01a88b8e5a78b36def1cdfa7081a3788b4018589918da47c35d95c4fedd
7
+ data.tar.gz: adc5d2c4758713eca5fda31bec6e343330529a2bd03d36d19775d4f52aad54171cc5d937634a0468c8d2e4015e1f908cb8991cab162df001225d3f7f76e62a04
data/README.md CHANGED
@@ -3,33 +3,32 @@
3
3
  # Arli
4
4
 
5
5
  Arli is a simple and easy to use installer of dependencies that can be
6
- declared in a JSON file of the following format:
7
-
8
-
9
- ```js
10
- {
11
- "dependencies": [
12
- {
13
- "name": "DS1307RTC",
14
- "git": "https://github.com/PaulStoffregen/DS1307RTC.git"
15
- },
16
- {
17
- "name": "Adafruit_LEDBackpack",
18
- "git": "https://github.com/adafruit/Adafruit-LED-Backpack-Library.git"
19
- },
20
- ]
21
- }
6
+ declared in a YAML file of the following format:
7
+
8
+ ```yaml
9
+ version: 1.0.0
10
+ dependencies:
11
+ - name: ESP8266WiFi
12
+ version: '1.0'
13
+ url: https://github.com/esp8266/Arduino
14
+ subfolder: libraries/ESP8266WiFi
15
+ - name: NTPClient
16
+ version: '3.1.0'
17
+ - name: SimpleTimer
18
+ urL: https://github.com/jfturcot/SimpleTimer
22
19
  ```
23
20
 
24
- Basically a simple pairing of a library/project name (which also happens to be the local
25
- directory it's cloned into) and a remote URL.
21
+ Basically a simple pairing of a library/project name
22
+ (which also happens to be the local directory it's cloned into)
23
+ and a remote URL.
26
24
 
27
- The gem was created to fill the need of managing many external libraries for an Arduino projects
28
- in a consistent way. Arli's API was loosely inspired by Bundler.
25
+ The gem was created to fill the need of managing many external
26
+ libraries for an Arduino projects in a consistent way. Arli's
27
+ API was loosely inspired by Bundler.
29
28
 
30
29
  ## Installation
31
30
 
32
- Install the gem globally like this:
31
+ Install the gem globally like this:
33
32
 
34
33
  ```bash
35
34
  # if using rbenv, or rvm
@@ -45,14 +44,14 @@ Run `arli --help` for more information:
45
44
 
46
45
  ```bash
47
46
  Usage:
48
- arli [options] [command [options]]
47
+ arli [options] [ command [options] ]
49
48
 
50
- -h, --help prints this help
49
+ -h, --help prints this help
51
50
 
52
51
  Available Commands:
53
- install : installs libraries defined in the JSON file
54
- update : updates libraries defined in the JSON file
55
- library : Install, update, or remove a single library
52
+ install : installs libraries defined in ArliFile.yml
53
+ update : updates libraries defined in the ArliFile.yml
54
+ search : Flexible Search of the Arduino Library Database
56
55
 
57
56
  See arli <command> --help for more information on a specific command.
58
57
  ```
@@ -61,13 +60,13 @@ See arli <command> --help for more information on a specific command.
61
60
 
62
61
  Use this command to install libraries for the first time.
63
62
 
64
- NOTE: you are allowed to pass `-u` flag to automatically fallback
65
- to updating any existing folders. So `arli install -u` will either install
66
- or update all dependencies.
63
+ NOTE: unless you pass `-e` flag, install command falls back to `update` if
64
+ the target folder already exists. With `-e` flag, installer aborts if the
65
+ target library already exists.
67
66
 
68
67
  ```bash
69
68
  Description:
70
- installs libraries defined in the JSON file
69
+ installs libraries defined in ArliFile.yml
71
70
 
72
71
  Usage:
73
72
  arli install [options]
@@ -75,17 +74,20 @@ Usage:
75
74
  Command Options
76
75
  -l, --lib-home HOME Local folder where libraries are installed
77
76
  Default: ~/Documents/Arduino/Libraries
78
- -j, --json FILE JSON file with dependencies (defaults to arli.json)
79
- -u, --update-existing Update a library that already exists
80
- -h, --help prints this help
81
77
 
78
+ -a, --arli-file FILE ArliFile.yml is the file listing the dependencies
79
+ Default filename is ArliFile.yml
80
+
81
+ -e, --abort-on-exiting Abort if a library folder already exists
82
+ instead of updating it.
83
+ -h, --help prints this help
82
84
  ```
83
85
 
84
86
  #### Update Command
85
87
 
86
88
  To upate previously checked out libraries, use the `update` command:
87
89
 
88
- ```
90
+ ```bash
89
91
  Description:
90
92
  updates libraries defined in the JSON file
91
93
 
@@ -99,6 +101,27 @@ Command Options
99
101
  -h, --help prints this help
100
102
  ```
101
103
 
104
+ #### Search Command
105
+
106
+ To search Arduino library database, you can use the search command:
107
+
108
+ ```bash
109
+ Description:
110
+ Flexible Search of the Arduino Library Database
111
+
112
+ Usage:
113
+ arli search [options]
114
+
115
+ Command Options
116
+ -s, --search TERMS ruby-style hash arguments to search for
117
+ eg: -s "name: 'AudioZero', version: /^1.0/"
118
+ -d, --database SOURCE a JSON file name, or a URL that contains the index
119
+ By default, the Arduino-maintained list is searched
120
+ -m, --max LIMIT if provided, limits the result set to this number
121
+ Default value is 100
122
+ -h, --help prints this help
123
+ ```
124
+
102
125
  ## Development
103
126
 
104
127
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/arli.gemspec CHANGED
@@ -28,8 +28,12 @@ Gem::Specification.new do |spec|
28
28
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
29
29
  spec.require_paths = ['lib']
30
30
 
31
- spec.add_dependency 'hashie'
31
+ spec.add_dependency 'arduino-library'
32
32
  spec.add_dependency 'colored2'
33
+ spec.add_dependency 'hashie'
34
+ spec.add_dependency 'dry-types'
35
+ spec.add_dependency 'dry-struct'
36
+ spec.add_dependency 'awesome_print'
33
37
 
34
38
 
35
39
  spec.add_development_dependency 'simplecov'
@@ -0,0 +1,24 @@
1
+ require 'arli'
2
+ require 'arduino/library'
3
+ require 'yaml'
4
+
5
+ module Arli
6
+ class ArliFile
7
+ require 'arduino/library/include'
8
+
9
+ extend Forwardable
10
+ def_delegators :@dependencies, *(Array.new.methods - Object.methods)
11
+
12
+ DEFAULT_FILE_NAME = 'ArliFile.yml'.freeze
13
+
14
+ attr_accessor :dependencies, :arli_hash, :file
15
+
16
+ def initialize(file = DEFAULT_FILE_NAME)
17
+ self.file = file
18
+ self.arli_hash = ::YAML.load(File.read(file))
19
+ self.dependencies = arli_hash['dependencies'].map do |lib_hash|
20
+ library_from(lib_hash)
21
+ end
22
+ end
23
+ end
24
+ end
data/lib/arli/cli.rb CHANGED
@@ -6,6 +6,7 @@ require 'arli'
6
6
  require 'arli/parser'
7
7
  require 'arli/commands/update'
8
8
  require 'arli/commands/install'
9
+ require 'arli/commands/search'
9
10
 
10
11
  module Arli
11
12
  class CLI
@@ -60,15 +61,15 @@ module Arli
60
61
  if command
61
62
  command_class = ::Arli::Commands.const_get(command.to_s.capitalize)
62
63
 
63
- options[:arli_json] ||= ::Arli::DEFAULT_JSON_FILE
64
- options[:lib_home] ||= ::Arli::DEFAULT_LIBRARY_PATH
64
+ options[:arli_file] ||= ::Arli::DEFAULT_ARLI_FILE
65
+ options[:lib_home] ||= ::Arduino::Library::DEFAULT_ARDUINO_LIBRARY_PATH
65
66
 
66
67
  output "run_command #{command.to_s.bold.green}, options: #{options.inspect.bold.blue}" if Arli::DEBUG
67
- command_class.new(options).run
68
+ @command_instance = command_class.new(options)
69
+ @command_instance.header.run
68
70
  end
69
71
  rescue NameError => e
70
72
  output e.inspect
71
- output "Unfortunately command #{command.to_s.red} is not yet implemented.\n\n"
72
73
  end
73
74
 
74
75
  def parse_command_options!
@@ -87,7 +88,6 @@ module Arli
87
88
  end
88
89
 
89
90
  class << self
90
-
91
91
  def global
92
92
  @global ||= PARSER.new do |parser|
93
93
  parser.banner = usage_line
@@ -101,29 +101,34 @@ module Arli
101
101
  end
102
102
 
103
103
  def global_usage(command)
104
- "Usage:\n ".bold + COMMAND.bold.blue + ' ' + '[options] '.yellow + '[' + (command || 'command').green + ' [options]'.yellow + ']' + "\n"
104
+ "Usage:\n ".bold + COMMAND.bold.blue +
105
+ ' [options] '.yellow + '[' + (command || 'command').green +
106
+ ' [options]'.yellow + ']' + "\n"
105
107
  end
106
108
 
107
109
  def command_usage(command)
108
- "Usage:\n ".bold + COMMAND.bold.blue + ' ' + command.bold.green + ' [options]'.yellow + "\n\n" + 'Command Options'.bold
110
+ "Usage:\n ".bold + COMMAND.bold.blue + ' ' +
111
+ command.bold.green +
112
+ ' [options]'.yellow + "\n\n" +
113
+ 'Command Options'.bold
109
114
  end
110
115
 
111
116
  def commands
112
117
  @commands ||= {
113
118
  install: {
114
- description: 'installs libraries defined in the JSON file',
119
+ description: 'installs libraries defined in ArliFile.yml',
115
120
  parser: -> (command) {
116
121
  PARSER.new do |parser|
117
122
  parser.banner = usage_line 'install'
118
123
  parser.option_lib_home
119
124
  parser.option_dependency_file
120
- parser.option_update_if_exists
125
+ parser.option_abort_if_exists
121
126
  parser.option_help(command: command)
122
127
  end
123
128
  } },
124
129
 
125
130
  update: {
126
- description: 'updates libraries defined in the JSON file',
131
+ description: 'updates libraries defined in the ArliFile.yml',
127
132
  parser: -> (command) {
128
133
  PARSER.new do |parser|
129
134
  parser.banner = usage_line 'update'
@@ -133,16 +138,26 @@ module Arli
133
138
  end
134
139
  } },
135
140
 
136
- library: {
137
- description: 'Install, update, or remove a single library',
141
+ search: {
142
+ description: 'Flexible Search of the Arduino Library Database',
138
143
  parser: -> (command) {
139
144
  PARSER.new do |parser|
140
- parser.banner = usage_line 'library'
141
- parser.option_lib_home
142
- parser.option_library
145
+ parser.banner = usage_line 'search'
146
+ parser.option_search
143
147
  parser.option_help(command: command)
144
148
  end
145
149
  } }
150
+
151
+ # library: {
152
+ # description: 'Install, update, or remove a single library',
153
+ # parser: -> (command) {
154
+ # PARSER.new do |parser|
155
+ # parser.banner = usage_line 'library'
156
+ # parser.option_lib_home
157
+ # parser.option_library
158
+ # parser.option_help(command: command)
159
+ # end
160
+ # } }
146
161
  }
147
162
  end
148
163
 
@@ -7,28 +7,32 @@ require 'arli/version'
7
7
  module Arli
8
8
  module Commands
9
9
  class Base
10
- attr_accessor :lib_path, :json_file, :update_if_exists, :command
10
+ attr_accessor :lib_path, :arli_file, :abort_if_exists, :command
11
11
 
12
12
  def initialize(options)
13
- self.lib_path = options[:lib_home]
14
- self.json_file = options[:arli_json]
15
- self.update_if_exists = options[:update_if_exists]
16
- self.command = self.class.name.gsub(/.*::/, '').downcase.to_sym
13
+ self.lib_path = options[:lib_home]
14
+ self.abort_if_exists = options[:abort_if_exists]
15
+ self.command = self.class.name.gsub(/.*::/, '').downcase.to_sym
17
16
  setup
18
17
  end
19
18
 
19
+ def header
20
+ out = "——————————————————————————————————————————————————————————\n"
21
+ out << "Arli : Version #{::Arli::VERSION.bold.yellow}\n"
22
+ out << "Command : #{command.to_s.bold.blue}\n" if command
23
+ out << "Library Path : #{lib_path.bold.green}\n" if lib_path
24
+ out << "ArliFile : #{arli_file.file.bold.magenta}\n" if
25
+ arli_file && arli_file.file
26
+ out << '——————————————————————————————————————————————————————————'
20
27
 
21
- # Commands implement #run method that uses helpers below:
22
- protected
28
+ info out
23
29
 
24
- def header
25
- info "Arli : Version #{::Arli::VERSION.bold.yellow}\n" +
26
- "Running command : #{command.to_s.bold.blue}\n" +
27
- "Library Path : #{lib_path.bold.green}\n" +
28
- "JSON File : #{json_file.bold.magenta}\n" +
29
- '———————————————————————————————————————————————————————'
30
+ self
30
31
  end
31
32
 
33
+ # Commands implement #run method that uses helpers below:
34
+ protected
35
+
32
36
  def all_dependencies(cmd, *args)
33
37
  for_each_dependency do |dep|
34
38
  begin
@@ -71,22 +75,15 @@ module Arli
71
75
  end
72
76
 
73
77
  def for_each_dependency(&_block)
74
- dependencies['dependencies'].each do |dependency|
78
+ raise 'Library Path is nil!' unless lib_path
79
+ FileUtils.mkpath(lib_path) unless Dir.exist?(lib_path)
80
+ arli_file.each do |dependency|
75
81
  Dir.chdir(lib_path) do
76
82
  yield(dependency)
77
83
  end
78
84
  end
79
85
  end
80
86
 
81
- def dependencies
82
- @deps ||= begin
83
- JSON.load(File.read(json_file))
84
- rescue Errno::ENOENT => e
85
- error("File #{json_file.bold.yellow} could not be found!", e)
86
- { 'dependencies' => [] }
87
- end
88
- end
89
-
90
87
  def error(msg, exception = nil)
91
88
  printf 'Runtime Error: '.bold.red + "\n#{msg}\n" if msg
92
89
  if exception
@@ -9,22 +9,21 @@ module Arli
9
9
  class Install < Update
10
10
 
11
11
  def run
12
- header
13
- all_dependencies(command, 'name', 'git')
12
+ all_dependencies(command, 'name', 'url')
14
13
  end
15
14
 
16
15
  def install_dependency(name, url)
17
16
  cmd = if Dir.exist?(name)
18
- if update_if_exists
19
- update_dependency(name)
20
- else
17
+ if abort_if_exists
21
18
  raise <<-EOF
22
- Existing folder found for library #{name.red}.
23
- Please use -u switch with 'install' command,
24
- or invoke the 'update' command directly."
25
- EOF
19
+ Existing folder found for library #{name.red}.
20
+ Please use -u switch with 'install' command,
21
+ or invoke the 'update' command directly."
22
+ EOF
26
23
  .gsub(/^\s+/, '')
27
24
 
25
+ else
26
+ update_dependency(name)
28
27
  end
29
28
  else
30
29
  "git clone -v #{url} #{name} 2>&1"
@@ -0,0 +1,52 @@
1
+ require 'json'
2
+ require 'fileutils'
3
+ require 'open3'
4
+ require 'arli'
5
+ require 'arli/commands/base'
6
+ require 'arduino/library'
7
+ require 'awesome_print'
8
+ module Arli
9
+ module Commands
10
+ class Search < Base
11
+ require 'arduino/library/include'
12
+
13
+ attr_accessor :search_string,
14
+ :search_opts,
15
+ :limit,
16
+ :database
17
+
18
+ class InvalidOptionError < ArgumentError; end
19
+
20
+ def initialize(options)
21
+ super(options)
22
+ self.search_string = options[:search]
23
+ self.limit = options[:limit] || 100
24
+
25
+ raise InvalidOptionError, 'Please provide search string with --search' \
26
+ unless search_string
27
+
28
+ begin
29
+ self.search_opts = eval("{ #{search_string} }")
30
+ rescue => e
31
+ raise InvalidOptionError "Search string '#{search_string}' is invalid.\n" +
32
+ e.message.red
33
+ end
34
+
35
+ unless search_opts.is_a?(::Hash) && search_opts.size > 0
36
+ raise InvalidOptionError, "Search string '#{search_string}' did not eval to Hash.\n"
37
+ end
38
+
39
+ self.database = options[:database] ? db_from(option[:database]) : db_default
40
+
41
+ search_opts.merge!(limit: limit) if limit
42
+ end
43
+
44
+ def run
45
+ ap search(database, **search_opts).map(&:to_hash)
46
+ rescue Exception => e
47
+ error e
48
+ puts e.backtrace.join("\n") if ENV['DEBUG']
49
+ end
50
+ end
51
+ end
52
+ end
@@ -7,9 +7,12 @@ require_relative 'base'
7
7
  module Arli
8
8
  module Commands
9
9
  class Update < Base
10
+ def initialize(options)
11
+ super(options)
12
+ self.arli_file = options[:arli_file] ? ArliFile.new(options[:arli_file]) : ArliFile.new
13
+ end
10
14
 
11
15
  def run
12
- header
13
16
  all_dependencies(command, 'name')
14
17
  end
15
18
 
@@ -0,0 +1,4 @@
1
+ module Arli
2
+ class Configuration
3
+ end
4
+ end
data/lib/arli/parser.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'arduino/library'
1
2
  module Arli
2
3
  class CLI
3
4
  class Parser < OptionParser
@@ -7,7 +8,7 @@ module Arli
7
8
  super(nil, 22)
8
9
  self.output_lines = Array.new
9
10
  self.command = command
10
- self.options = Hashie::Mash.new
11
+ self.options = Hashie::Mash.new
11
12
  end
12
13
 
13
14
  def sep(text = nil)
@@ -15,23 +16,43 @@ module Arli
15
16
  end
16
17
 
17
18
  def option_dependency_file
18
- on('-j', '--json FILE',
19
- "JSON file with dependencies (defaults to #{DEFAULT_JSON_FILE.bold.magenta})\n\n") do |v|
20
- options[:arli_json] = v
19
+ on('-a', '--arli-file FILE',
20
+ 'ArliFile.yml'.bold.green + ' is the file listing the dependencies',
21
+ "Default filename is #{DEFAULT_ARLI_FILE.bold.magenta})\n\n") do |v|
22
+ options[:arli_file] = v
21
23
  end
22
24
  end
23
25
 
24
26
  def option_lib_home
25
27
  on('-l', '--lib-home HOME', 'Local folder where libraries are installed',
26
- "Default: #{Arli::DEFAULT_LIBRARY_PATH.gsub(%r(#{ENV['HOME']}), '~').blue}\n\n") do |v|
28
+ "Default: #{default_library_path}\n\n") do |v|
27
29
  options[:lib_home] = v
28
30
  end
29
31
  end
30
32
 
31
- def option_update_if_exists
32
- on('-u', '--update-existing',
33
- 'Update a library that already exists') do |v|
34
- options[:update_if_exists] = true
33
+
34
+ def option_search
35
+ on('-s', '--search TERMS', 'ruby-style hash arguments to search for',
36
+ %Q(eg: -s "name: 'AudioZero', version: /^1.0/")) do |v|
37
+ options[:search] = v
38
+ end
39
+ on('-d', '--database SOURCE',
40
+ 'a JSON file name, or a URL that contains the index',
41
+ 'By default, the Arduino-maintained list is searched') do |v|
42
+ options[:database] = v
43
+ end
44
+ on('-m', '--max LIMIT',
45
+ 'if provided, limits the result set to this number',
46
+ 'Default value is 100') do |v|
47
+ options[:limit] = v
48
+ end
49
+ end
50
+
51
+ def option_abort_if_exists
52
+ on('-e', '--abort-on-exiting',
53
+ 'Abort if a library folder already exists',
54
+ 'instead of updating it.') do |v|
55
+ options[:abort_if_exists] = true
35
56
  end
36
57
  end
37
58
 
@@ -89,6 +110,11 @@ See #{COMMAND.bold.blue + ' <command> '.bold.green + '--help'.bold.yellow} for m
89
110
  def print
90
111
  puts output.join("\n") unless output.empty?
91
112
  end
113
+
114
+ def default_library_path
115
+ Arduino::Library::DEFAULT_ARDUINO_LIBRARY_PATH.gsub(%r(#{ENV['HOME']}), '~').blue
116
+ end
117
+
92
118
  end
93
119
  end
94
120
  end
data/lib/arli/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Arli
2
- VERSION = '0.2.2'.freeze
2
+ VERSION = '0.3.1'.freeze
3
3
  end
data/lib/arli.rb CHANGED
@@ -1,13 +1,14 @@
1
1
  require 'arli/version'
2
+ require 'arli/arli_file'
3
+ require 'arli/configuration'
2
4
  require 'arli/cli'
3
5
  require 'logger'
4
6
 
5
7
  module Arli
6
- DEFAULT_JSON_FILE_ENV = 'ARDUINO_ARLI_LIBRARY_FILE'.freeze
7
- DEFAULT_JSON_FILE = ENV[DEFAULT_JSON_FILE_ENV] || 'arli.json'.freeze
8
+ LIBRARY_INDEX_JSON_GZ = 'http://downloads.arduino.cc/libraries/library_index.json.gz'.freeze
8
9
 
9
- DEFAULT_LIBRARY_PATH_ENV = 'ARDUINO_CUSTOM_LIBRARY_PATH'.freeze
10
- DEFAULT_LIBRARY_PATH = ENV[DEFAULT_LIBRARY_PATH_ENV] || (ENV['HOME'] + '/Documents/Arduino/Libraries')
10
+ DEFAULT_ARLI_FILE_ENV = 'ARDUINO_ARLI_LIBRARY_FILE'.freeze
11
+ DEFAULT_ARLI_FILE = ENV[DEFAULT_ARLI_FILE_ENV] || ArliFile::DEFAULT_FILE_NAME
11
12
 
12
13
  DEBUG = ENV['DEBUG'] ? true : false
13
14
 
@@ -16,6 +17,7 @@ module Arli
16
17
 
17
18
  class << self
18
19
  attr_accessor :logger
20
+ attr_writer :configuration
19
21
 
20
22
  %i(debug info error warn fatal).each do |level|
21
23
  define_method level do |*args|
@@ -23,5 +25,17 @@ module Arli
23
25
  end
24
26
  end
25
27
  end
28
+
29
+ def self.configuration
30
+ @configuration ||= Configuration.new
31
+ end
32
+
33
+ def self.reset
34
+ @configuration = Configuration.new
35
+ end
36
+
37
+ def self.configure
38
+ yield(configuration)
39
+ end
26
40
  end
27
41
 
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Gredeskoul
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-21 00:00:00.000000000 Z
11
+ date: 2017-10-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: hashie
14
+ name: arduino-library
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -38,6 +38,62 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: hashie
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: dry-types
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: dry-struct
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: awesome_print
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
41
97
  - !ruby/object:Gem::Dependency
42
98
  name: simplecov
43
99
  requirement: !ruby/object:Gem::Requirement
@@ -130,10 +186,13 @@ files:
130
186
  - bin/setup
131
187
  - exe/arli
132
188
  - lib/arli.rb
189
+ - lib/arli/arli_file.rb
133
190
  - lib/arli/cli.rb
134
191
  - lib/arli/commands/base.rb
135
192
  - lib/arli/commands/install.rb
193
+ - lib/arli/commands/search.rb
136
194
  - lib/arli/commands/update.rb
195
+ - lib/arli/configuration.rb
137
196
  - lib/arli/parser.rb
138
197
  - lib/arli/version.rb
139
198
  homepage: https://github.com/kigster/arli