runfile 0.10.0 → 0.10.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
- SHA1:
3
- metadata.gz: cd15aafa862f63962d8fb163c1ee1214d703db50
4
- data.tar.gz: aacd3633ee3cfab1e429f38d7f61389a2f4cf729
2
+ SHA256:
3
+ metadata.gz: 6ac7c4520f522bf476eb1695a9ba65ecf74c4c6cba3a11c0c9a0189ca1a7654c
4
+ data.tar.gz: 9dd1ed9ce6ead6c5caddb3b08bb502ad1fa540ed26de5468f1da710037430528
5
5
  SHA512:
6
- metadata.gz: 274e16d22fe7a87808a03914375e0a17f476dde6e7faccada2afc6a09bb0f80bf40c748bce12688a7cb08148160d0d6065392de9978960ba4b6e2c078abccb50
7
- data.tar.gz: 9e0ea0395b1afe64e24efb9be8efc75c2e46d6f7e02edf69c0d6a7762ce1130f4dcdcc5c03bf493bc84c6caeaec040ed2da68018c8b3dfb38af96c4605f5643d
6
+ metadata.gz: f47d18eede3e26554ea5fedc930a9ab7fb18d90b139fdcef6274836bddbd8fc103ace14f301cb67b279807122a538155359601a94e1f68078c72bade248289f0
7
+ data.tar.gz: d6c1947eb47ad475ba18ace7d037fd2b819d8231f06a9c817e7d3c1f82941201d55b1f6f7245b2a4d186b4e00e6f4ed2a6f29ce1e3a29b33368f3315d0949a5b
data/README.md CHANGED
@@ -2,10 +2,12 @@ Runfile - If Rake and Docopt had a baby
2
2
  ==================================================
3
3
 
4
4
  [![Gem](https://img.shields.io/gem/v/runfile.svg?style=flat-square)](https://rubygems.org/gems/runfile)
5
- [![Travis](https://img.shields.io/travis/DannyBen/runfile.svg?style=flat-square)](https://travis-ci.org/DannyBen/runfile)
6
- [![Code Climate](https://img.shields.io/codeclimate/github/DannyBen/runfile.svg?style=flat-square)](https://codeclimate.com/github/DannyBen/runfile)
7
- [![Gemnasium](https://img.shields.io/gemnasium/DannyBen/runfile.svg?style=flat-square)](https://gemnasium.com/DannyBen/runfile)
8
- [![Gem](https://img.shields.io/gem/dt/runfile.svg?style=flat-square)](https://rubygems.org/gems/runfile)
5
+ [![Downloads](https://img.shields.io/gem/dt/runfile.svg?style=flat-square)](https://rubygems.org/gems/runfile)
6
+ [![Build](https://img.shields.io/travis/DannyBen/runfile.svg?style=flat-square)](https://travis-ci.org/DannyBen/runfile)
7
+ [![Dependencies](https://img.shields.io/gemnasium/DannyBen/runfile.svg?style=flat-square)](https://gemnasium.com/DannyBen/runfile)
8
+ [![Code Quality](https://img.shields.io/codacy/grade/55cf6df171234931b1781db7921ff68e.svg?style=flat-square)](https://www.codacy.com/app/db/runfile)
9
+ [![Maintainability](https://img.shields.io/codeclimate/maintainability/DannyBen/runfile.svg?style=flat-square)](https://codeclimate.com/github/DannyBen/runfile)
10
+ [![Issues](https://img.shields.io/codeclimate/issues/github/DannyBen/runfile.svg?style=flat-square)](https://codeclimate.com/github/DannyBen/runfile)
9
11
 
10
12
  ---
11
13
 
data/bin/run! CHANGED
@@ -1,5 +1,11 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
+ # This is needed in cases when you are running "run!" from a folder
4
+ # that contains a Gemfile on a machine with RVM.
5
+ # It will disable attempting to run in the current context
6
+ # Source: https://rvm.io/integration/bundler
7
+ ENV['NOEXEC_DISABLE'] = '1'
8
+
3
9
  require 'runfile'
4
10
 
5
11
  # for dev
@@ -8,10 +14,4 @@ require 'runfile'
8
14
  include Colsole
9
15
  include Runfile::DSL
10
16
 
11
- # This is needed in cases when you are running "run!" from a folder
12
- # that contains a Gemfile on a machine with RVM.
13
- # It will disable attempting to run in the current context
14
- # Source: https://rvm.io/integration/bundler
15
- ENV['NOEXEC_DISABLE'] = '1'
16
-
17
17
  Runfile::Runner.instance.execute ARGV, false
@@ -9,20 +9,20 @@ module Runfile
9
9
  class DocoptHelper
10
10
  include Colsole
11
11
 
12
- # The constructor expects to get all the textual details
13
- # needed to generate a docopt document (name, version,
12
+ # The constructor expects to an object that responds to all the
13
+ # textual details needed to generate a docopt document (name, version,
14
14
  # summary, options) and an array of Action objects.
15
15
  # The superspace argument will be the name of runfile, in case we
16
16
  # are running a named.runfile. It is only needed to generate the
17
17
  # proper `run superspace (-h|--help|--version)` line
18
- def initialize(superspace, name, version, summary, actions, options, examples)
19
- @superspace = superspace
20
- @name = name
21
- @version = version
22
- @summary = summary
23
- @actions = actions
24
- @options = options
25
- @examples = examples
18
+ def initialize(options)
19
+ @superspace = options.superspace
20
+ @name = options.name
21
+ @version = options.version
22
+ @summary = options.summary
23
+ @actions = options.actions
24
+ @options = options.options
25
+ @examples = options.examples
26
26
  end
27
27
 
28
28
  # Generate a document based on all the actions, help messages
@@ -42,7 +42,7 @@ module Runfile
42
42
  # Return all docopt lines for the 'Usage' section
43
43
  def docopt_usage
44
44
  doc = ["\nUsage:"];
45
- @actions.each do |name, action|
45
+ @actions.each do |_name, action|
46
46
  doc << " run #{action.usage}" unless action.usage == false
47
47
  end
48
48
  basic_flags = @version ? "(-h|--help|--version)" : "(-h|--help)"
@@ -58,7 +58,7 @@ module Runfile
58
58
  def docopt_commands(width)
59
59
  doc = []
60
60
  caption_printed = false
61
- @actions.each do |name, action|
61
+ @actions.each do |_name, action|
62
62
  action.help or next
63
63
  doc << "Commands:" unless caption_printed
64
64
  caption_printed = true
@@ -101,11 +101,10 @@ module Runfile
101
101
  doc
102
102
  end
103
103
 
104
-
105
104
  # Call the docopt handler, which will either return a parsed
106
105
  # arguments list, or halt execution and show usage.
107
106
  def args(argv)
108
- Docopt::docopt(docopt, version: @version, argv:argv)
107
+ Docopt.docopt(docopt, version: @version, argv:argv)
109
108
  end
110
109
  end
111
110
  end
@@ -74,27 +74,27 @@ module Runfile
74
74
  # Run a command, wait until it is done and continue
75
75
  # run 'rails server'
76
76
  def run(*args)
77
- ExecHandler.instance.run *args
77
+ ExecHandler.instance.run(*args)
78
78
  end
79
79
 
80
80
  # Run a command, wait until it is done, then exit
81
81
  # run! 'rails server'
82
82
  def run!(*args)
83
- ExecHandler.instance.run! *args
83
+ ExecHandler.instance.run!(*args)
84
84
  end
85
85
 
86
86
  # Run a command in the background, optionally log to a log file and save
87
87
  # the process ID in a pid file
88
88
  # run_bg 'rails server', pid: 'rails', log: 'tmp/log.log'
89
89
  def run_bg(*args)
90
- ExecHandler.instance.run_bg *args
90
+ ExecHandler.instance.run_bg(*args)
91
91
  end
92
92
 
93
93
  # Stop a command started with 'run_bg'. Provide the name of he pid file you
94
94
  # used in 'run_bg'
95
95
  # stop_bg 'rails'
96
96
  def stop_bg(*args)
97
- ExecHandler.instance.stop_bg *args
97
+ ExecHandler.instance.stop_bg(*args)
98
98
  end
99
99
 
100
100
  # Set a block to be called before each run. The block should return
@@ -105,7 +105,7 @@ module Runfile
105
105
  # command
106
106
  # end
107
107
  def before_run(&block)
108
- ExecHandler.instance.before_run &block
108
+ ExecHandler.instance.before_run(&block)
109
109
  end
110
110
 
111
111
  # Set a block to be called after each run
@@ -113,7 +113,7 @@ module Runfile
113
113
  # puts "AFTER #{command}"
114
114
  # end
115
115
  def after_run(&block)
116
- ExecHandler.instance.after_run &block
116
+ ExecHandler.instance.after_run(&block)
117
117
  end
118
118
 
119
119
  # Also allow to use 'endcommand' instead of 'command' to end
@@ -110,7 +110,7 @@ module Runfile
110
110
  def say_runfile_list(runfiles)
111
111
  runfile_paths = runfiles.map { |f| File.dirname f }
112
112
  max = runfile_paths.max_by(&:length).size
113
- width, height = detect_terminal_size
113
+ width = detect_terminal_size[0]
114
114
  runfiles.each do |f|
115
115
  f[/([^\/]+).runfile$/]
116
116
  command = "run #{$1}"
@@ -13,7 +13,7 @@ module Runfile
13
13
  include SettingsMixin
14
14
 
15
15
  attr_accessor :last_usage, :last_help, :name, :version,
16
- :summary, :namespace, :superspace
16
+ :summary, :namespace, :superspace, :actions, :examples, :options
17
17
 
18
18
  # Initialize all variables to sensible defaults.
19
19
  def initialize
@@ -41,7 +41,7 @@ module Runfile
41
41
  rescue => ex
42
42
  abort "Runfile error:\n#{ex.message}\n#{ex.backtrace[0]}"
43
43
  end
44
- run *argv
44
+ run(*argv)
45
45
  end
46
46
 
47
47
  # Add an action to the @actions array, and use the last known
@@ -92,7 +92,7 @@ module Runfile
92
92
  # function. Expects to get a single string that looks as if
93
93
  # it was typed in the command prompt.
94
94
  def cross_call(command_string)
95
- argv = command_string.split /\s(?=(?:[^"]|"[^"]*")*$)/
95
+ argv = command_string.split(/\s(?=(?:[^"]|"[^"]*")*$)/)
96
96
  begin
97
97
  docopt_exec argv
98
98
  rescue Docopt::Exit => ex
@@ -108,7 +108,7 @@ module Runfile
108
108
  # This should always be called in a begin...rescue block and
109
109
  # you should handle the Docopt::Exit exception.
110
110
  def docopt_exec(argv)
111
- helper = DocoptHelper.new(@superspace, @name, @version, @summary, @actions, @options, @examples)
111
+ helper = DocoptHelper.new(self)
112
112
  args = helper.args argv
113
113
  action = find_action argv
114
114
  action or abort "Runfile error: Action not found"
@@ -1,3 +1,3 @@
1
1
  module Runfile
2
- VERSION = "0.10.0"
2
+ VERSION = "0.10.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runfile
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-06-09 00:00:00.000000000 Z
11
+ date: 2018-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colsole
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.4'
61
+ version: '3.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.4'
68
+ version: '3.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec-expectations
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -86,14 +86,14 @@ dependencies:
86
86
  requirements:
87
87
  - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '4.3'
89
+ version: '5.1'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '4.3'
96
+ version: '5.1'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: similar_text
99
99
  requirement: !ruby/object:Gem::Requirement
@@ -165,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
165
165
  version: '0'
166
166
  requirements: []
167
167
  rubyforge_project:
168
- rubygems_version: 2.5.1
168
+ rubygems_version: 2.7.6
169
169
  signing_key:
170
170
  specification_version: 4
171
171
  summary: If Rake and Docopt had a baby