autoload-checker 0.1.0 → 0.1.1

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: 6e5e30b050ff00a10be2fbb62a51bb5b57f7a7cfe7f612fd7afdf2a99e2c4028
4
- data.tar.gz: 1f16534a3b8a2965c4e08b1d1e35bab5fa43d0b421cd697d013fa761888183c3
3
+ metadata.gz: 36c041f55a40686ad53d4743b9f437c3ea295410e1b769c0805865e9f64d9154
4
+ data.tar.gz: 8c0fe9f5d1fdc3ee9beb1a7b9ebbfaf0f2ea3f5924a4e20ca4e398adea5263d9
5
5
  SHA512:
6
- metadata.gz: fc1269943f368984f3c3bebe7ab836a61bd57b4e985409b76f6443c0644097da00df194a96592951675a0decf1e438fb7a73034c25b9b3d7e2f668a0dd3d98d8
7
- data.tar.gz: a611efd324d67b824680ceb70aead2410574ca03e51256e19e9dc668d0b185cbf26603682333c473c66b8683639207c16f2752920c867a97629089fd63f09a3e
6
+ metadata.gz: b03379660dd50055861f91fa5d8577c8ca6260682381fe297d08ea74e05224af32cdc9bf35c16c6632a614a490abc2a6021e81da9c6c8c4a7b8cf4e13c029d7c
7
+ data.tar.gz: 5a8ec87de2d329ced60e14b34756ba2a7f0edae915dae5f712846ea93b09445b30e59252b9e4afcc0455eed2bb7760ad5f6e2a1aff7c5853a665bfb0503a31db
@@ -0,0 +1,28 @@
1
+ name: Ruby
2
+
3
+ on:
4
+ push:
5
+ branches: [ "master" ]
6
+ pull_request:
7
+ branches: [ "master" ]
8
+
9
+ permissions:
10
+ contents: read
11
+
12
+ jobs:
13
+ test:
14
+
15
+ runs-on: ubuntu-latest
16
+ strategy:
17
+ matrix:
18
+ ruby-version: ['2.5.8']
19
+
20
+ steps:
21
+ - uses: actions/checkout@v3
22
+ - name: Set up Ruby
23
+ uses: ruby/setup-ruby@2b019609e2b0f1ea1a2bc8ca11cb82ab46ada124
24
+ with:
25
+ ruby-version: ${{ matrix.ruby-version }}
26
+ bundler-cache: true
27
+ - name: Run tests
28
+ run: bundle exec rspec
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ *.gem
data/Gemfile.lock CHANGED
@@ -18,6 +18,7 @@ GEM
18
18
 
19
19
  PLATFORMS
20
20
  x86_64-darwin-21
21
+ x86_64-linux
21
22
 
22
23
  DEPENDENCIES
23
24
  rspec (~> 3.11)
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # autoload_checker
1
+ # autoload-checker
2
2
 
3
3
  Checks for conflicts in class/module definitions and corrects them. For instance, you have
4
4
  a file `foo/bar/baz.rb` with following content:
@@ -28,8 +28,8 @@ in `foo/bar/baz.rb`.
28
28
  # Usage
29
29
 
30
30
  ```
31
- Usage: ./autoload_checker.rb [options]
32
- -p, --path FILE [Mandatory] file or directory to check
31
+ Usage: ./bin/autoload_checker.rb [options]
32
+ -p, --path DIR,... [Mandatory] directories to check
33
33
  -c, --correct Enable errors correction
34
34
  -h, --help Prints this help
35
35
  ```
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "autoload-checker"
5
+ spec.version = '0.1.1'
6
+ spec.authors = %w[cyberfined]
7
+ spec.email = %w[cyberfined@protonmail.com]
8
+
9
+ spec.summary = "Checks for conflicts in class/module definitions and corrects them."
10
+ spec.description = "Checks for conflicts in class/module definitions and corrects them."
11
+ spec.homepage = "https://github.com/cyberfined/autoload-checker"
12
+ spec.license = "WTFPL"
13
+
14
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
15
+ f.match %r{^(spec)/}
16
+ end
17
+
18
+ spec.bindir = "bin"
19
+ spec.executables = %w[autoload_checker.rb]
20
+
21
+ spec.required_ruby_version = ">= 2.5"
22
+
23
+ spec.add_development_dependency "bundler", "~> 2.0"
24
+ end
@@ -7,13 +7,13 @@ require 'optparse'
7
7
  require 'namespace'
8
8
  require 'autoload_checker'
9
9
 
10
- Options = Struct.new(:dir, :correct)
10
+ Options = Struct.new(:root_dirs, :correct)
11
11
 
12
12
  options = Options.new(nil, false)
13
13
  opt_parser = OptionParser.new do |opts|
14
14
  opts.banner = "Usage: #{$0} [options]"
15
- opts.on('-p FILE', '--path', String, '[Mandatory] file or directory to check') do |v|
16
- options.dir = v
15
+ opts.on('-p DIR,...', '--path', Array, '[Mandatory] directories to check') do |v|
16
+ options.root_dirs = v
17
17
  end
18
18
  opts.on('-c', '--correct', TrueClass, 'Enable errors correction') { |v| options.correct = v }
19
19
  opts.on('-h', '--help', 'Prints this help') do
@@ -23,11 +23,11 @@ opt_parser = OptionParser.new do |opts|
23
23
  end
24
24
  opt_parser.parse!
25
25
 
26
- unless options.dir
26
+ unless options.root_dirs
27
27
  puts opt_parser.help
28
28
  exit(1)
29
29
  end
30
30
 
31
- autoload_checker = AutoloadChecker.new(path: options.dir, correct: options.correct)
31
+ autoload_checker = AutoloadChecker.new(root_dirs: options.root_dirs, correct: options.correct)
32
32
  autoload_checker.call
33
33
  exit(1) if autoload_checker.fixes.any? && !options.correct
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class AutoloadChecker
4
- def initialize(path:, correct:, output: $stderr)
5
- @path = path
4
+ def initialize(root_dirs:, correct:, output: $stderr)
5
+ @root_dirs = root_dirs
6
6
  @correct = correct
7
7
  @output = output
8
8
  end
@@ -27,7 +27,7 @@ class AutoloadChecker
27
27
  private
28
28
 
29
29
  def validator
30
- @validator ||= Namespace::Validator.new(@path)
30
+ @validator ||= Namespace::Validator.new(@root_dirs)
31
31
  end
32
32
 
33
33
  def correct?
@@ -8,14 +8,14 @@ class Namespace
8
8
  class Validator
9
9
  attr_reader :fixes, :namespaces
10
10
 
11
- def initialize(root_dir)
12
- @root_dir = root_dir
11
+ def initialize(root_dirs)
12
+ @root_dirs = root_dirs
13
13
  @namespaces = {}
14
14
  @fixes = Hash.new { |hsh, k| hsh[k] = [] }
15
15
  end
16
16
 
17
17
  def call
18
- directories = [@root_dir]
18
+ directories = @root_dirs
19
19
  new_directories = []
20
20
 
21
21
  while directories.any?
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: autoload-checker
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - cyberfined
@@ -32,10 +32,13 @@ executables:
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
+ - ".github/workflows/ruby.yml"
36
+ - ".gitignore"
35
37
  - Gemfile
36
38
  - Gemfile.lock
37
39
  - LICENSE
38
40
  - README.md
41
+ - autoload-checker.gemspec
39
42
  - bin/autoload_checker.rb
40
43
  - lib/autoload_checker.rb
41
44
  - lib/namespace.rb