arli 0.2.2 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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