runfile-tasks 0.5.2 → 0.5.3

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
  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