runfile-tasks 0.5.2 → 0.5.3

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: 7a3e22e241bcbcd87866f68f160f5ecb2f1bbadef77a81d1f86847f19cead760
4
- data.tar.gz: 51a79e18f5426899e7eb2f99fccbddbfce6a8f964f8a8e90403edda946381d9a
3
+ metadata.gz: fcc349ca21afd53c294174a39680782d34ecac53d380e624ccf1da31b836600d
4
+ data.tar.gz: 2cf17d48577138d6c0e12f898afdc85755220d9d25002c47d638f7e02eaed692
5
5
  SHA512:
6
- metadata.gz: c0bd89dfcc354c059e43522cf511e20f9d40059b63b3e0a23a15e733c34391e10c3e892be97abdf7a703dbe5dd7e4f716ca720f8071c8953ada743d0a8b56516
7
- data.tar.gz: 3f4a73afa883493dda4d938310321795cbe136a73b69a30834de193c99d9096f4be74bd718e697e9bf1fa52cf338eb9c26b1aaf7228a8a1b75c8910fa42d45c7
6
+ metadata.gz: 4f9c7ecd0762dff45b63c62f997a495bc8d8b374d7ce0d4ad4fd8a8a161db06812f3cf2a1c58721074e41c3ecb56f969180df1aa3a951fc8a39edd7872a46d9c
7
+ data.tar.gz: 7f62fc7fb9bbdcd504476a5cbab74d720a933e933f025209d13f2f9a9adfaa1c70970ddf743cae06f315db9c8d61a3c9eecf9c0f8845ac532dc62e565982a151
@@ -1,25 +1,28 @@
1
- module RunfileTasks
2
- module Docs
3
- extend self
4
-
5
- @@default_rdoc_options = [
6
- "--main README.md",
7
- "--all",
8
- ]
9
-
10
- def rdoc(files=nil, options=@@default_rdoc_options)
11
- files or files = Dir['**/*.{rb,md}']
12
- files = "'" + files.join("' '") + "'"
13
- usage "rdoc [-- OPTIONS...]"
14
- help "Generate documentation using the rdoc command line tool. To pass arguments to rdoc, place them after '--'."
15
- action :rdoc do |args|
16
- inopts = args['OPTIONS']
17
- options = inopts unless inopts.empty?
18
- options = options.join(' ')
19
- cmd = "rdoc #{options} #{files}"
20
- say "!txtgrn!Running: !txtpur!#{cmd}"
21
- system cmd
22
- end
23
- end
24
- end
1
+ require 'runfile-tasks/refinements'
2
+
3
+ module RunfileTasks
4
+ module Docs
5
+ extend self
6
+ using Refinements
7
+
8
+ @@default_rdoc_options = [
9
+ "--main README.md",
10
+ "--all",
11
+ ]
12
+
13
+ def rdoc(files=nil, options=@@default_rdoc_options)
14
+ files or files = Dir['**/*.{rb,md}']
15
+ files = "'" + files.join("' '") + "'"
16
+ usage "rdoc [-- OPTIONS...]"
17
+ help "Generate documentation using the rdoc command line tool. To pass arguments to rdoc, place them after '--'."
18
+ action :rdoc do |args|
19
+ inopts = args['OPTIONS']
20
+ options = inopts unless inopts.empty?
21
+ options = options.join(' ')
22
+ cmd = "rdoc #{options} #{files}"
23
+ puts "g`Running:` p`#{cmd}`".in_color
24
+ system cmd
25
+ end
26
+ end
27
+ end
25
28
  end
@@ -0,0 +1,18 @@
1
+ module RunfileTasks
2
+ module Refinements
3
+ refine String do
4
+ def ansi_colors
5
+ {
6
+ r: "\e[31m", g: "\e[32m", y: "\e[33m",
7
+ b: "\e[34m", p: "\e[35m", c: "\e[36m", n: "\e[0m"
8
+ }
9
+ end
10
+
11
+ def in_color
12
+ gsub /(r|g|y|b|p|c|n)\`([^\`]*)\`/ do |code, subtext|
13
+ "#{ansi_colors[$1.to_sym]}#{$2}#{ansi_colors[:n]}"
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
@@ -1,8 +1,10 @@
1
1
  require 'fileutils'
2
+ require 'runfile-tasks/refinements'
2
3
 
3
4
  module RunfileTasks
4
5
  module RubyGems
5
6
  extend self
7
+ using Refinements
6
8
 
7
9
  def all(gemname, gemdir="gems")
8
10
  build gemname, gemdir
@@ -17,11 +19,11 @@ module RunfileTasks
17
19
  usage "build [--install]"
18
20
  help "Build gem from gemspec and move it to '#{gemdir}' folder.\nUse --install to also install it."
19
21
  action :build do |args|
20
- say "!txtgrn!Building gem"
22
+ puts "g`Building gem`".in_color
21
23
  cmd = "gem build #{gemname}.gemspec"
22
- say "!txtgrn!Running: !txtpur!#{cmd}"
24
+ puts "g`Running:` p`#{cmd}`".in_color
23
25
  system cmd
24
- say "!txtgrn!Moving gem file to #{gemdir}"
26
+ puts "g`Moving gem file to #{gemdir}`".in_color
25
27
  files = Dir["*.gem"]
26
28
  Dir.exist? gemdir or FileUtils.mkdir gemdir
27
29
  files.each {|f| FileUtils.mv f, gemdir }
@@ -37,7 +39,7 @@ module RunfileTasks
37
39
  gemfile = "gems/#{gemname}-#{gemver}.gem"
38
40
  cmd = "gem install #{gemfile}"
39
41
  end
40
- say "!txtgrn!Running: !txtpur!#{cmd}"
42
+ puts "g`Running:` p`#{cmd}`".in_color
41
43
  system cmd
42
44
  end
43
45
 
@@ -54,7 +56,7 @@ module RunfileTasks
54
56
  gemfile = "gems/#{gemname}-#{gemver}.gem"
55
57
  File.exist? gemfile or abort "File not found #{gemfile}"
56
58
  cmd = "gem push #{gemfile}"
57
- say "!txtgrn!Running: !txtpur!#{cmd}"
59
+ puts "g`Running:` p`#{cmd}`".in_color
58
60
  system cmd
59
61
  end
60
62
 
@@ -63,7 +65,7 @@ module RunfileTasks
63
65
  action :yank do |args|
64
66
  ver = args['VERSION'] || gemver
65
67
  cmd = "gem yank #{gemname} -v #{ver}"
66
- say "!txtgrn!Running: !txtpur!#{cmd}"
68
+ puts "g`Running:` p`#{cmd}`".in_color
67
69
  system cmd
68
70
  end
69
71
 
@@ -1,75 +1,78 @@
1
- module RunfileTasks
2
- module Testing
3
- extend self
4
-
5
- def cucumber
6
- usage "(feature|features) [TAG_OR_FILE --list --fast]"
7
- help "Run cucumber feature tests. Optionally, specify a tag or a filename to run. Tags should be prefixed with @."
8
- option "--list", "Show list of available features"
9
- option "--fast", "Abort on first failure"
10
- action :feature, :features do |args|
11
- if args['--list']
12
- show_cucumber_features
13
- else
14
- run_cucumber_features args['TAG_OR_FILE'], args['--fast']
15
- end
16
- end
17
- end
18
-
19
- def cucumber_stepdefs(filename='stepdefs.md')
20
- usage "stepdefs"
21
- help "Generate step definitions markdown document.\n" +
22
- "Comments in the step definition file that start with two or " +
23
- "more # characters, will also be added to the output " +
24
- "document, as captions."
25
- action :stepdefs do
26
- step = /^(Given|When|Then)\((\/.*\/)\) do.*$/
27
- caption = /^(\#{2,6} .*)$/
28
- files = Dir['features/step_definitions/**/*.rb']
29
- doc = []
30
- doc << "# Cucumber Step Definitions Summary\n"
31
- doc << "Generated by `run stepdefs`."
32
- files.each do |file|
33
- doc << "\n## #{File.basename(file, '.rb')}\n"
34
- File.readlines(file).each do |line|
35
- if matches = step.match(line)
36
- clause = matches.captures[0]
37
- definition = matches.captures[1] # .gsub /(".*?")/, '`__\1__`'
38
- doc << "- __`#{clause}`__ `#{definition}`"
39
- end
40
- if matches = caption.match(line)
41
- title = matches.captures[0]
42
- doc << "\n#{title}\n"
43
- end
44
- end
45
- end
46
- doc = doc.join "\n"
47
- File.write filename, doc
48
- say "Generated #{filename}"
49
- end
50
- end
51
-
52
- def show_cucumber_features
53
- say "!txtgrn!Available Features:"
54
- Dir['features/**/*.feature'].each do |file|
55
- say "- " + File.basename("#{file}", '.feature')
56
- end
57
- end
58
-
59
- def run_cucumber_features(tag_or_file, fast=false)
60
- cmd = "cucumber"
61
- if tag_or_file
62
- if tag_or_file[0] == '@'
63
- say "!txtgrn!Running features tagged #{tag_or_file}"
64
- cmd = "#{cmd} --tags #{tag_or_file}"
65
- else
66
- say "!txtgrn!Running #{tag_or_file} features"
67
- cmd = "#{cmd} 'features/#{tag_or_file}.feature'"
68
- end
69
- end
70
- cmd = "#{cmd} --fail-fast" if fast
71
- exec cmd
72
- end
73
-
74
- end
75
- end
1
+ require 'runfile-tasks/refinements'
2
+
3
+ module RunfileTasks
4
+ module Testing
5
+ extend self
6
+ using Refinements
7
+
8
+ def cucumber
9
+ usage "(feature|features) [TAG_OR_FILE --list --fast]"
10
+ help "Run cucumber feature tests. Optionally, specify a tag or a filename to run. Tags should be prefixed with @."
11
+ option "--list", "Show list of available features"
12
+ option "--fast", "Abort on first failure"
13
+ action :feature, :features do |args|
14
+ if args['--list']
15
+ show_cucumber_features
16
+ else
17
+ run_cucumber_features args['TAG_OR_FILE'], args['--fast']
18
+ end
19
+ end
20
+ end
21
+
22
+ def cucumber_stepdefs(filename='stepdefs.md')
23
+ usage "stepdefs"
24
+ help "Generate step definitions markdown document.\n" +
25
+ "Comments in the step definition file that start with two or " +
26
+ "more # characters, will also be added to the output " +
27
+ "document, as captions."
28
+ action :stepdefs do
29
+ step = /^(Given|When|Then)\((\/.*\/)\) do.*$/
30
+ caption = /^(\#{2,6} .*)$/
31
+ files = Dir['features/step_definitions/**/*.rb']
32
+ doc = []
33
+ doc << "# Cucumber Step Definitions Summary\n"
34
+ doc << "Generated by `run stepdefs`."
35
+ files.each do |file|
36
+ doc << "\n## #{File.basename(file, '.rb')}\n"
37
+ File.readlines(file).each do |line|
38
+ if matches = step.match(line)
39
+ clause = matches.captures[0]
40
+ definition = matches.captures[1] # .gsub /(".*?")/, '`__\1__`'
41
+ doc << "- __`#{clause}`__ `#{definition}`"
42
+ end
43
+ if matches = caption.match(line)
44
+ title = matches.captures[0]
45
+ doc << "\n#{title}\n"
46
+ end
47
+ end
48
+ end
49
+ doc = doc.join "\n"
50
+ File.write filename, doc
51
+ puts "Generated #{filename}"
52
+ end
53
+ end
54
+
55
+ def show_cucumber_features
56
+ puts "g`Available Features:`".in_color
57
+ Dir['features/**/*.feature'].each do |file|
58
+ puts "- " + File.basename("#{file}", '.feature')
59
+ end
60
+ end
61
+
62
+ def run_cucumber_features(tag_or_file, fast=false)
63
+ cmd = "cucumber"
64
+ if tag_or_file
65
+ if tag_or_file[0] == '@'
66
+ puts "g`Running features tagged #{tag_or_file}`".in_color
67
+ cmd = "#{cmd} --tags #{tag_or_file}"
68
+ else
69
+ puts "g`Running #{tag_or_file} features`".in_color
70
+ cmd = "#{cmd} 'features/#{tag_or_file}.feature'"
71
+ end
72
+ end
73
+ cmd = "#{cmd} --fail-fast" if fast
74
+ exec cmd
75
+ end
76
+
77
+ end
78
+ end
@@ -1,23 +1,26 @@
1
- module RunfileTasks
2
- module Testing
3
- extend self
4
-
5
- def minitest(pattern="./test/*_test.rb")
6
- usage "test [NAME]"
7
- help "Run all tests or a single test file."
8
- action :test do |args|
9
- if args['NAME']
10
- file = pattern.sub "*", args['NAME']
11
- say "!txtgrn!Using: !txtpur!#{file}"
12
- require file
13
- else
14
- Dir[pattern].each do |file|
15
- say "!txtgrn!Using: !txtpur!#{file}"
16
- require file
17
- end
18
- end
19
- end
20
- end
21
-
22
- end
1
+ require 'runfile-tasks/refinements'
2
+
3
+ module RunfileTasks
4
+ module Testing
5
+ extend self
6
+ using Refinements
7
+
8
+ def minitest(pattern="./test/*_test.rb")
9
+ usage "test [NAME]"
10
+ help "Run all tests or a single test file."
11
+ action :test do |args|
12
+ if args['NAME']
13
+ file = pattern.sub "*", args['NAME']
14
+ puts "g`Using:` p`#{file}`".in_color
15
+ require file
16
+ else
17
+ Dir[pattern].each do |file|
18
+ puts "g`Using:` p`#{file}`".in_color
19
+ require file
20
+ end
21
+ end
22
+ end
23
+ end
24
+
25
+ end
23
26
  end
@@ -1,6 +1,9 @@
1
+ require 'runfile-tasks/refinements'
2
+
1
3
  module RunfileTasks
2
4
  module Testing
3
5
  extend self
6
+ using Refinements
4
7
 
5
8
  def rspec(opts={})
6
9
  opts = { action: opts } if opts.is_a? String
@@ -11,7 +14,7 @@ module RunfileTasks
11
14
  command: 'rspec'
12
15
  }.merge opts
13
16
 
14
- usage "#{opts[:action]} [NAME] [TAG]"
17
+ usage opts[:action] == :global ? "[NAME] [TAG]" : "#{opts[:action]} [NAME] [TAG]"
15
18
  help "Run all specs or a single spec file matching a regex. You can provide a tag to run only specific tests. If you wish to provide a tag only, without a file pattern, simply prefix the tag with a colon, like 'run spec :focus'"
16
19
  action opts[:action].to_sym do |args|
17
20
  file = args['NAME']
@@ -36,7 +39,7 @@ module RunfileTasks
36
39
  cmd = "#{opts[:command]}"
37
40
  end
38
41
  cmd = "#{cmd} --tag #{tag}" if tag
39
- say "!txtgrn!Running: !txtpur!#{cmd}"
42
+ puts "g`Running:` p`#{cmd}`".in_color
40
43
  exec cmd
41
44
  end
42
45
  end
@@ -1,3 +1,3 @@
1
1
  module RunfileTasks
2
- VERSION = "0.5.2"
2
+ VERSION = "0.5.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: runfile-tasks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2
4
+ version: 0.5.3
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: 2020-06-12 00:00:00.000000000 Z
11
+ date: 2021-09-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: runfile
@@ -37,6 +37,7 @@ files:
37
37
  - lib/runfile-tasks/docs.rb
38
38
  - lib/runfile-tasks/docs/all.rb
39
39
  - lib/runfile-tasks/docs/rdoc.rb
40
+ - lib/runfile-tasks/refinements.rb
40
41
  - lib/runfile-tasks/rubygems.rb
41
42
  - lib/runfile-tasks/rubygems/all.rb
42
43
  - lib/runfile-tasks/rubygems/rubygems.rb
@@ -65,7 +66,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
65
66
  - !ruby/object:Gem::Version
66
67
  version: '0'
67
68
  requirements: []
68
- rubygems_version: 3.1.2
69
+ rubygems_version: 3.2.25
69
70
  signing_key:
70
71
  specification_version: 4
71
72
  summary: Runfile tasks collection