mister_bin 0.1.1 → 0.1.2

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
  SHA256:
3
- metadata.gz: 76afcbbcbc5d5983e9cd9a95c35bbc9fde454b4631c59300eff765179d3bdb34
4
- data.tar.gz: 2a394c766388bc8c313d0a290728f9ddbcfa20288cebbeaef77f560a58cbd42b
3
+ metadata.gz: e87b4752236683e3e699872c4d324ab6d715234789459211b12cbd5238192a13
4
+ data.tar.gz: 58588e6731278f5e1c8f9802f2186eec49333d54836992782437be643a07829e
5
5
  SHA512:
6
- metadata.gz: a66a20dfe623d04586a9b4710d6c291fc4b809ae5de01001313de2c5b0918c405f53b1444e58806ae8d1f157cd51b135e056f0455831cfc9fa1c66b47539dbc5
7
- data.tar.gz: fbfe9fb1a1ad59d459ff9ea226019afb36bf21ea42a1a543f6ad1ee88fc428503f2c67104c4af64d36fab8d53c8e84e3f7ad3423af13e028232c11b4858de888
6
+ metadata.gz: f212bb72a9f67c744250135248f4bd2890142e8c11fde10c9fc9d1dbf25400cfdfa3e016e8ba89446ccea2053e089444d06b95d369d3c11f2ed6f0b557ef6ebd
7
+ data.tar.gz: aa0f21c1fe5cbfba66b9bf1042073eadfe12fd7ce5ef8f47620f63a287c314d8a47891fdb2a611f7daf68ee37889565fbbb0aa4b37a417741f409270f293d975
data/README.md CHANGED
@@ -22,8 +22,13 @@ Design Goals
22
22
  --------------------------------------------------
23
23
 
24
24
  - Provide an easy and minimalistic DSL for building command line utilities.
25
- - Provide a mechanism for separating each subcommand to its separate file.
25
+ - Drastically reduce the need for boilerplate code and unnecessary wrappers
26
+ involved in building command line utilities.
27
+ - Provide a mechanism for separating each command and subcommand to its
28
+ own file.
26
29
  - Support the ability to extend a given command from different sources.
30
+ - Allow gem developers to easily add command line interface to their gems.
31
+ - Allow for easy and straight forward testing of the generated CLI.
27
32
 
28
33
 
29
34
 
@@ -90,8 +95,8 @@ You will need to create these files:
90
95
  3. `git-repo-create.rb`
91
96
  4. `git-repo-delete.rb`
92
97
 
93
- Alternatively, if you prefer to handle all `repo` subcommands in a single,
94
- file, simple implement these instead:
98
+ Alternatively, if you prefer to handle all `repo` subcommands in a single
99
+ file, simply implement these instead:
95
100
 
96
101
  1. `git`
97
102
  2. `git-status.rb`
@@ -41,7 +41,11 @@ module MisterBin
41
41
  end
42
42
 
43
43
  def files
44
- @files ||= Dir["#{basedir}/#{basename}-*.rb"]
44
+ @files ||= path_helper.search("#{basename}-*.rb")
45
+ end
46
+
47
+ def path_helper
48
+ @path_helper ||= PathHelper.new(additional_dir: basedir)
45
49
  end
46
50
  end
47
51
  end
@@ -0,0 +1,29 @@
1
+ module MisterBin
2
+
3
+ class PathHelper
4
+ attr_reader :pathspec, :additional_dir
5
+
6
+ def initialize(additional_dir: nil, pathspec: nil)
7
+ @additional_dir = additional_dir
8
+ @pathspec = pathspec || ENV['PATH']
9
+ end
10
+
11
+ def search(glob)
12
+ result = []
13
+ paths.each { |path| result += Dir["#{path}/#{glob}"] }
14
+ result
15
+ end
16
+
17
+ def paths
18
+ @paths ||= paths!
19
+ end
20
+
21
+ private
22
+
23
+ def paths!
24
+ result = pathspec.split File::PATH_SEPARATOR
25
+ result.push additional_dir if additional_dir
26
+ result
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module MisterBin
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
data/lib/mister_bin.rb CHANGED
@@ -1,8 +1,8 @@
1
- require 'mister_bin/commands'
2
1
  require 'mister_bin/command'
2
+ require 'mister_bin/commands'
3
+ require 'mister_bin/docopt_maker'
4
+ require 'mister_bin/path_helper'
3
5
  require 'mister_bin/runner'
4
-
5
6
  require 'mister_bin/script'
6
- require 'mister_bin/docopt_maker'
7
7
 
8
8
  require 'byebug' if ENV['BYEBUG']
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mister_bin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
@@ -175,6 +175,7 @@ files:
175
175
  - lib/mister_bin/command.rb
176
176
  - lib/mister_bin/commands.rb
177
177
  - lib/mister_bin/docopt_maker.rb
178
+ - lib/mister_bin/path_helper.rb
178
179
  - lib/mister_bin/runner.rb
179
180
  - lib/mister_bin/script.rb
180
181
  - lib/mister_bin/version.rb