autowow 0.9.0 → 0.9.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.
data/Rakefile CHANGED
@@ -1,59 +1,59 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
- require "logger"
4
- @logger = Logger.new(STDOUT)
5
-
6
- RSpec::Core::RakeTask.new(:spec)
7
-
8
- desc "Check if source can be required and is correctly required"
9
- task :require do
10
- dir = File.dirname(__FILE__)
11
- gemspec = load_gemspec(dir)
12
-
13
- # Order is important, assert_can_be_required should be run first
14
- assert_can_be_required(dir, gemspec)
15
- check_source_files_required(dir, gemspec)
16
- check_source_files_included(dir, gemspec)
17
- end
18
-
19
- def load_gemspec(dir)
20
- require "bundler/setup"
21
- Gem::Specification.find do |spec|
22
- spec.full_gem_path.include?(File.dirname(__FILE__))
23
- end
24
- end
25
-
26
- def check_source_files_required(dir, gemspec)
27
- require_gem(gemspec)
28
- ruby_files = Dir.glob("#{dir}/**/*.rb").reject { |f| f.include?("/spec/") }
29
- required_ruby_files = $LOADED_FEATURES.select { |f| f.include?(dir) }
30
- (ruby_files - required_ruby_files).each do |file|
31
- @logger.warn("Source file not required when loading gem: #{file.sub("#{dir}/", '')}")
32
- end
33
- end
34
-
35
- def check_source_files_included(dir, gemspec)
36
- ruby_files_relative = Dir.glob("#{dir}/**/*.rb").reject { |f| f.include?("/spec/") }.map { |f| f.sub("#{dir}/", "") }
37
- (ruby_files_relative - gemspec.files.select { |f| f.end_with?(".rb") }).each do |file|
38
- @logger.warn("File ignored when building gem because it's not added to git: #{file}")
39
- end
40
- end
41
-
42
- def assert_can_be_required(dir, gemspec)
43
- local_load_paths = $LOAD_PATH.select { |path| path.include?(dir) }
44
- $LOAD_PATH.reject! { |path| local_load_paths.include?(path) }
45
- begin
46
- require_gem(gemspec)
47
- rescue LoadError => e
48
- @logger.error("Gem source cannot be required relatively: #{e}")
49
- raise
50
- ensure
51
- $LOAD_PATH.push(*local_load_paths)
52
- end
53
- end
54
-
55
- def require_gem(gemspec)
56
- require_relative "lib/#{gemspec.name.gsub('-', '/')}"
57
- end
58
-
59
- task default: [:require, :spec]
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+ require "logger"
4
+ @logger = Logger.new(STDOUT)
5
+
6
+ RSpec::Core::RakeTask.new(:spec)
7
+
8
+ desc "Check if source can be required and is correctly required"
9
+ task :require do
10
+ dir = File.dirname(__FILE__)
11
+ gemspec = load_gemspec(dir)
12
+
13
+ # Order is important, assert_can_be_required should be run first
14
+ assert_can_be_required(dir, gemspec)
15
+ check_source_files_required(dir, gemspec)
16
+ check_source_files_included(dir, gemspec)
17
+ end
18
+
19
+ def load_gemspec(dir)
20
+ require "bundler/setup"
21
+ Gem::Specification.find do |spec|
22
+ spec.full_gem_path.include?(File.dirname(__FILE__))
23
+ end
24
+ end
25
+
26
+ def check_source_files_required(dir, gemspec)
27
+ require_gem(gemspec)
28
+ ruby_files = Dir.glob("#{dir}/**/*.rb").reject { |f| f.include?("/spec/") }
29
+ required_ruby_files = $LOADED_FEATURES.select { |f| f.include?(dir) }
30
+ (ruby_files - required_ruby_files).each do |file|
31
+ @logger.warn("Source file not required when loading gem: #{file.sub("#{dir}/", '')}")
32
+ end
33
+ end
34
+
35
+ def check_source_files_included(dir, gemspec)
36
+ ruby_files_relative = Dir.glob("#{dir}/**/*.rb").reject { |f| f.include?("/spec/") }.map { |f| f.sub("#{dir}/", "") }
37
+ (ruby_files_relative - gemspec.files.select { |f| f.end_with?(".rb") }).each do |file|
38
+ @logger.warn("File ignored when building gem because it's not added to git: #{file}")
39
+ end
40
+ end
41
+
42
+ def assert_can_be_required(dir, gemspec)
43
+ local_load_paths = $LOAD_PATH.select { |path| path.include?(dir) }
44
+ $LOAD_PATH.reject! { |path| local_load_paths.include?(path) }
45
+ begin
46
+ require_gem(gemspec)
47
+ rescue LoadError => e
48
+ @logger.error("Gem source cannot be required relatively: #{e}")
49
+ raise
50
+ ensure
51
+ $LOAD_PATH.push(*local_load_paths)
52
+ end
53
+ end
54
+
55
+ def require_gem(gemspec)
56
+ require_relative "lib/#{gemspec.name.gsub('-', '/')}"
57
+ end
58
+
59
+ task default: [:require, :spec]
@@ -1,41 +1,41 @@
1
- # coding: utf-8
2
- lib = File.expand_path("../lib", __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "autowow/version"
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "autowow"
8
- spec.version = Autowow::VERSION
9
- spec.authors = ["thisismydesign"]
10
- spec.email = ["thisismydesign@users.noreply.github.com"]
11
-
12
- spec.summary = %q{Set of commands to AUTOmate Way Of Working}
13
- spec.homepage = "https://github.com/thisismydesign/autowow"
14
- spec.license = "MIT"
15
-
16
- spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
- f.match(%r{^(test|spec|features)/})
18
- end
19
- spec.bindir = "bin"
20
- spec.executables << 'autowow'
21
- spec.executables << 'aw'
22
- spec.require_paths = ["lib"]
23
-
24
- spec.add_dependency "easy_logging", ">= 0.3.0" # Include logger easily, without redundancy
25
- spec.add_dependency "thor" # CLI
26
- spec.add_dependency "pastel" # Colorize output of own logger
27
- spec.add_dependency "time_difference", "= 0.5.0" # Calculate project age. Fixed version because we refine it :(
28
- spec.add_dependency "launchy" # Open project in browser
29
- spec.add_dependency "tty-command", ">= 0.7.0" # Execute system commands nicely
30
- spec.add_dependency "reflection_utils", ">= 0.3.0" # Invoke module methods without including the module
31
- spec.add_dependency "rubocop" # Style check
32
- spec.add_dependency "rubocop-rspec" # Style check
33
-
34
- spec.add_development_dependency "bundler", "~> 1.15"
35
- spec.add_development_dependency "rake", "~> 10.0"
36
- spec.add_development_dependency "rspec", "~> 3.0"
37
- spec.add_development_dependency "guard"
38
- spec.add_development_dependency "guard-bundler"
39
- spec.add_development_dependency "guard-rspec"
40
- spec.add_development_dependency "coveralls"
41
- end
1
+ # coding: utf-8
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "autowow/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "autowow"
8
+ spec.version = Autowow::VERSION
9
+ spec.authors = ["thisismydesign"]
10
+ spec.email = ["thisismydesign@users.noreply.github.com"]
11
+
12
+ spec.summary = %q{Set of commands to AUTOmate Way Of Working}
13
+ spec.homepage = "https://github.com/thisismydesign/autowow"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
+ f.match(%r{^(test|spec|features)/})
18
+ end
19
+ spec.bindir = "bin"
20
+ spec.executables << 'autowow'
21
+ spec.executables << 'aw'
22
+ spec.require_paths = ["lib"]
23
+
24
+ spec.add_dependency "easy_logging", ">= 0.3.0" # Include logger easily, without redundancy
25
+ spec.add_dependency "thor" # CLI
26
+ spec.add_dependency "pastel" # Colorize output of own logger
27
+ spec.add_dependency "time_difference", "= 0.5.0" # Calculate project age. Fixed version because of refinements :(
28
+ spec.add_dependency "launchy" # Open project in browser
29
+ spec.add_dependency "tty-command", "<= 0.8.0" # Execute system commands nicely, upper limit because `Autowow::Executor` hijacks Printer classes (new releases should be tested)
30
+ spec.add_dependency "reflection_utils", ">= 0.3.0" # Invoke module methods without including the module
31
+ spec.add_dependency "rubocop" # Style check
32
+ spec.add_dependency "rubocop-rspec" # Style check
33
+
34
+ spec.add_development_dependency "bundler", "~> 1.15"
35
+ spec.add_development_dependency "rake", "~> 10.0"
36
+ spec.add_development_dependency "rspec", "~> 3.0"
37
+ spec.add_development_dependency "guard"
38
+ spec.add_development_dependency "guard-bundler"
39
+ spec.add_development_dependency "guard-rspec"
40
+ spec.add_development_dependency "coveralls"
41
+ end
@@ -1,5 +1,5 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "autowow"
4
-
5
- Autowow::CLI.start
1
+ #!/usr/bin/env ruby
2
+
3
+ require "autowow"
4
+
5
+ Autowow::CLI.start
data/bin/aw CHANGED
@@ -1,5 +1,5 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "autowow"
4
-
5
- Autowow::CLI.start
1
+ #!/usr/bin/env ruby
2
+
3
+ require "autowow"
4
+
5
+ Autowow::CLI.start
@@ -1,14 +1,14 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "autowow"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "autowow"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/setup CHANGED
@@ -1,8 +1,8 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -1,13 +1,13 @@
1
- require "easy_logging"
2
- require "reflection_utils"
3
-
4
- require_relative "autowow/log_formatter"
5
-
6
- EasyLogging.level = Logger::DEBUG
7
- EasyLogging.formatter = proc do |severity, datetime, progname, msg|
8
- Autowow::LogFormatter.beautify(severity, msg)
9
- end
10
-
11
- require_relative "autowow/cli"
12
-
13
- module Autowow; end
1
+ require "easy_logging"
2
+ require "reflection_utils"
3
+
4
+ require_relative "autowow/log_formatter"
5
+
6
+ EasyLogging.level = Logger::DEBUG
7
+ EasyLogging.formatter = proc do |severity, datetime, progname, msg|
8
+ Autowow::LogFormatter.beautify(severity, msg)
9
+ end
10
+
11
+ require_relative "autowow/cli"
12
+
13
+ module Autowow; end
@@ -1,97 +1,97 @@
1
- require "thor"
2
-
3
- require_relative "executor"
4
- require_relative "decorators/string_decorator"
5
-
6
- require_relative "features/rbenv"
7
- require_relative "features/gem"
8
- require_relative "features/vcs"
9
- require_relative "features/os"
10
- require_relative "features/fs"
11
-
12
- require_relative "commands/gem"
13
-
14
- module Autowow
15
- class CLI < Thor
16
- map %w[bm] => :branch_merged
17
- map %w[grls] => :gem_release
18
- map %w[up] => :update_projects
19
- map %w[cb] => :clear_branches
20
- map %w[au] => :add_upstream
21
- map %w[gc] => :gem_clean
22
- map %w[rv] => :ruby_versions
23
- map %w[gr] => :greet
24
- map %w[rpa] => :rubocop_parallel_autocorrect
25
- map %w[be] => :bundle_exec
26
-
27
- desc "branch_merged", "clean working branch and return to master"
28
- def branch_merged
29
- Autowow::Features::Vcs.branch_merged
30
- end
31
-
32
- desc "gem_release", "release gem and return to master"
33
- def gem_release
34
- Autowow::Features::Gem.gem_release
35
- end
36
-
37
- desc "update_projects", "updates idle projects"
38
- def update_projects
39
- Autowow::Features::Vcs.update_projects
40
- end
41
-
42
- desc "clear_branches", "removes unused branches"
43
- def clear_branches
44
- Autowow::Features::Vcs.clear_branches
45
- end
46
-
47
- desc "add_upstream", "adds upstream branch if available"
48
- def add_upstream
49
- Autowow::Features::Vcs.add_upstream
50
- end
51
-
52
- desc "hi", "day starter routine"
53
- def hi
54
- Autowow::Features::Vcs.hi
55
- end
56
-
57
- desc "hi!", "day starter routine for a new start"
58
- def hi!
59
- Autowow::Features::Vcs.hi!
60
- end
61
-
62
- desc "open", "opens project URL in browser"
63
- def open
64
- Autowow::Features::Vcs.open
65
- end
66
-
67
- desc "gem_clean", "cleans unused gems"
68
- def gem_clean
69
- Autowow::Features::Gem.gem_clean
70
- end
71
-
72
- desc "ruby_versions", "shows ruby versions in use"
73
- def ruby_versions
74
- Autowow::Features::Rbenv.ruby_versions
75
- end
76
-
77
- desc "greet", "shows report of repos"
78
- def greet
79
- Autowow::Features::Vcs.greet
80
- end
81
-
82
- desc "rubocop_parallel_autocorrect", "runs rubocop in parallel mode, autocorrects offenses on single thread"
83
- def rubocop_parallel_autocorrect
84
- Autowow::Features::Gem.rubocop_parallel_autocorrect
85
- end
86
-
87
- desc "exec", "runs command"
88
- def exec(*cmd)
89
- Autowow::Executor.pretty_with_output.run(cmd)
90
- end
91
-
92
- desc "bundle_exec", "runs command with `bundle exec` prefixed"
93
- def bundle_exec(*cmd)
94
- Autowow::Features::Gem.bundle_exec(cmd)
95
- end
96
- end
97
- end
1
+ require "thor"
2
+
3
+ require_relative "executor"
4
+ require_relative "decorators/string_decorator"
5
+
6
+ require_relative "features/rbenv"
7
+ require_relative "features/gem"
8
+ require_relative "features/vcs"
9
+ require_relative "features/os"
10
+ require_relative "features/fs"
11
+
12
+ require_relative "commands/gem"
13
+
14
+ module Autowow
15
+ class CLI < Thor
16
+ map %w[bm] => :branch_merged
17
+ map %w[grls] => :gem_release
18
+ map %w[up] => :update_projects
19
+ map %w[cb] => :clear_branches
20
+ map %w[au] => :add_upstream
21
+ map %w[gc] => :gem_clean
22
+ map %w[rv] => :ruby_versions
23
+ map %w[gr] => :greet
24
+ map %w[rpa] => :rubocop_parallel_autocorrect
25
+ map %w[be] => :bundle_exec
26
+
27
+ desc "branch_merged", "clean working branch and return to master"
28
+ def branch_merged
29
+ Autowow::Features::Vcs.branch_merged
30
+ end
31
+
32
+ desc "gem_release", "release gem and return to master"
33
+ def gem_release
34
+ Autowow::Features::Gem.gem_release
35
+ end
36
+
37
+ desc "update_projects", "updates idle projects"
38
+ def update_projects
39
+ Autowow::Features::Vcs.update_projects
40
+ end
41
+
42
+ desc "clear_branches", "removes unused branches"
43
+ def clear_branches
44
+ Autowow::Features::Vcs.clear_branches
45
+ end
46
+
47
+ desc "add_upstream", "adds upstream branch if available"
48
+ def add_upstream
49
+ Autowow::Features::Vcs.add_upstream
50
+ end
51
+
52
+ desc "hi", "day starter routine"
53
+ def hi
54
+ Autowow::Features::Vcs.hi
55
+ end
56
+
57
+ desc "hi!", "day starter routine for a new start"
58
+ def hi!
59
+ Autowow::Features::Vcs.hi!
60
+ end
61
+
62
+ desc "open", "opens project URL in browser"
63
+ def open
64
+ Autowow::Features::Vcs.open
65
+ end
66
+
67
+ desc "gem_clean", "cleans unused gems"
68
+ def gem_clean
69
+ Autowow::Features::Gem.gem_clean
70
+ end
71
+
72
+ desc "ruby_versions", "shows ruby versions in use"
73
+ def ruby_versions
74
+ Autowow::Features::Rbenv.ruby_versions
75
+ end
76
+
77
+ desc "greet", "shows report of repos"
78
+ def greet
79
+ Autowow::Features::Vcs.greet
80
+ end
81
+
82
+ desc "rubocop_parallel_autocorrect", "runs rubocop in parallel mode, autocorrects offenses on single thread"
83
+ def rubocop_parallel_autocorrect
84
+ Autowow::Features::Gem.rubocop_parallel_autocorrect
85
+ end
86
+
87
+ desc "exec", "runs command"
88
+ def exec(*cmd)
89
+ Autowow::Executor.pretty_with_output.run(cmd)
90
+ end
91
+
92
+ desc "bundle_exec", "runs command with `bundle exec` prefixed"
93
+ def bundle_exec(*cmd)
94
+ Autowow::Features::Gem.bundle_exec(cmd)
95
+ end
96
+ end
97
+ end