require_relative_dir 0.9.9 → 1.0.0

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: ff708f5f44cfb5ee7fcd2bb5af8b7ba8719eb6d2025e2269b3260d383cfc4461
4
- data.tar.gz: 6828d1ddd8e36226ceaaff20e9f1bc5b17afd783b3afd2f1681a10be1da86ab5
3
+ metadata.gz: dc2c0b7e0c3e204cce27a38f26147a277dc70a9f3dc5cccf61bd095db32a6600
4
+ data.tar.gz: f52022c23ec705627cf213d13d837c342dc6733e5122ddbaa089b28b263d0cd9
5
5
  SHA512:
6
- metadata.gz: 7947d10e90172fbda933c54d18247538504b7f29e78786f979c3764680de1b393068da3999f652cf2cc17ba053d4848b52fde8143c3147d0c438995c79483a8c
7
- data.tar.gz: ea50beea10bb927a8becafcda0555d810a7c95b976e02fea0dd2edb7f9a5757fd89bc973b5948e6d4c4b6518403b3b4b219cebeec47e993e28b23e53a623918e
6
+ metadata.gz: 2cab7b31b54641a231ab3985883a8b095a2f125444c22ba193f3ebf79bba5e43980a5abe07c469f56aaf14fe0480a67264a27a6a232a5c528d5d020170961af3
7
+ data.tar.gz: 15af8406a2a364e64830f9e8e4f5ec73d17b38e50412fbbccfac6f5b5788c9c12bfc5a5196f268645033b159fec8e506e4351b2822263068d474091fa31cd3cf
@@ -0,0 +1,52 @@
1
+ name: CI
2
+
3
+ on: [pull_request]
4
+
5
+ jobs:
6
+ tests:
7
+ name: >-
8
+ Specs | ${{ matrix.ruby }} (${{ matrix.usage }})
9
+ runs-on: ${{ matrix.os }}-latest
10
+ env:
11
+ # See https://github.com/tmm1/test-queue#environment-variables
12
+ TEST_QUEUE_WORKERS: 2
13
+ USAGE: ${{ matrix.usage }}
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ os: [ ubuntu ]
18
+ ruby: [ 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, head ]
19
+ usage: [ modern, legacy ]
20
+ steps:
21
+ - name: checkout
22
+ uses: actions/checkout@v2
23
+ - name: set up Ruby
24
+ uses: ruby/setup-ruby@v1
25
+ with:
26
+ ruby-version: ${{ matrix.ruby }}
27
+ - name: install dependencies
28
+ run: bundle install --jobs 3 --retry 3
29
+ - name: spec
30
+ run: bundle exec rake
31
+ internal_investigation:
32
+ name: >-
33
+ Coding Style
34
+ runs-on: ${{ matrix.os }}-latest
35
+ env:
36
+ TEST_QUEUE_WORKERS: 2
37
+ strategy:
38
+ fail-fast: false
39
+ matrix:
40
+ os: [ ubuntu ]
41
+ ruby: [ 2.7 ]
42
+ steps:
43
+ - name: checkout
44
+ uses: actions/checkout@v2
45
+ - name: set up Ruby
46
+ uses: ruby/setup-ruby@v1
47
+ with:
48
+ ruby-version: ${{ matrix.ruby }}
49
+ - name: install dependencies
50
+ run: bundle install --jobs 3 --retry 3
51
+ - name: internal investigation
52
+ run: bundle exec rubocop
data/.gitignore CHANGED
@@ -7,5 +7,7 @@
7
7
  /spec/reports/
8
8
  /tmp/
9
9
 
10
+ Gemfile.lock
11
+
10
12
  # rspec failure tracking
11
13
  .rspec_status
@@ -0,0 +1,44 @@
1
+ AllCops:
2
+ DisplayCopNames: true
3
+ TargetRubyVersion: 2.4
4
+ NewCops: enable
5
+
6
+ # For sure
7
+
8
+ Layout/LineLength:
9
+ Max: 150
10
+
11
+ Style/ModuleFunction:
12
+ EnforcedStyle: extend_self
13
+
14
+ Style/TrailingCommaInArrayLiteral:
15
+ EnforcedStyleForMultiline: consistent_comma
16
+
17
+ Layout/SpaceInsideHashLiteralBraces:
18
+ EnforcedStyle: no_space
19
+
20
+ Metrics/BlockLength:
21
+ Exclude:
22
+ - 'spec/**/*.rb'
23
+
24
+ Style/Documentation:
25
+ Enabled: false
26
+
27
+ Gemspec/RequiredRubyVersion:
28
+ Enabled: false
29
+
30
+ Layout/MultilineBlockLayout:
31
+ Enabled: false
32
+ Layout/BlockEndNewline:
33
+ Enabled: false
34
+
35
+ # Experiment
36
+
37
+ Style/AccessModifierDeclarations:
38
+ EnforcedStyle: inline
39
+
40
+
41
+
42
+
43
+ Layout/SpaceBeforeBlockBraces:
44
+ EnforcedStyleForEmptyBraces: no_space
data/Gemfile CHANGED
@@ -1,6 +1,13 @@
1
- source "https://rubygems.org"
1
+ # frozen_string_literal: true
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ source 'https://rubygems.org'
4
+
5
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
6
+
7
+ gem 'bundler'
8
+ gem 'rake'
9
+ gem 'rspec'
10
+ gem 'rubocop', require: false
4
11
 
5
12
  # Specify your gem's dependencies in require_relative_dir.gemspec
6
13
  gemspec
data/README.md CHANGED
@@ -1,10 +1,38 @@
1
1
  # RequireRelativeDir
2
2
 
3
- Simple utility to `require` all Ruby files in a given directory.
3
+ Simple utility to `require_relative` all Ruby files in a given directory.
4
4
 
5
5
  ## Usage
6
6
 
7
+ ```ruby
8
+ # lib/your_gem_or_app.rb
9
+ require 'require_relative_dir'
10
+
11
+ using RequireRelativeDir
12
+
13
+ require_relative_dir # or pass 'your_gem_or_app' to be more explicit
14
+
15
+ # lib/your_gem_or_app/whatever.rb
16
+
17
+ require 'some_gem'
18
+ require 'some_other_gem'
19
+
20
+ using RequireRelativeDir
21
+
22
+ require_relative_dir 'concerns' # requires all of 'your_gem_or_app/concerns/'
23
+ require_relative_dir 'utils', except: 'big_and_unused_for_now'
24
+
25
+ class Whatever
26
+ # ...
27
+ end
7
28
  ```
29
+
30
+ ### Legacy usage
31
+
32
+ While the above usage with `using` is the recommended way, the method `require_relative_dir`
33
+ is also avaible with `extend RequireRelativeDir`. For example:
34
+
35
+ ```ruby
8
36
  # lib/your_gem_or_app.rb
9
37
  require 'require_relative_dir'
10
38
 
@@ -43,8 +71,9 @@ gem 'require_relative_dir'
43
71
 
44
72
  And then execute:
45
73
 
46
- $ bundle
47
-
74
+ ```sh
75
+ $ bundle
76
+ ```
48
77
 
49
78
  ## Development
50
79
 
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ # frozen_string_literal: true
2
+
3
+ require 'bundler/gem_tasks'
4
+ require 'rspec/core/rake_task'
3
5
 
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
- task :default => :spec
8
+ task default: :spec
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require "bundler/setup"
4
- require "require_relative_dir"
4
+ require 'bundler/setup'
5
+ require 'require_relative_dir'
5
6
 
6
7
  # You can add fixtures and/or initialization code here to make experimenting
7
8
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +11,5 @@ require "require_relative_dir"
10
11
  # require "pry"
11
12
  # Pry.start
12
13
 
13
- require "irb"
14
+ require 'irb'
14
15
  IRB.start(__FILE__)
@@ -1,4 +1,6 @@
1
- require "require_relative_dir/version"
1
+ # frozen_string_literal: true
2
+
3
+ require 'require_relative_dir/version'
2
4
 
3
5
  module RequireRelativeDir
4
6
  SAME_AS_CALLER_NAME = Object.new
@@ -9,14 +11,20 @@ module RequireRelativeDir
9
11
  base_path = File.dirname(caller_path)
10
12
  path = File.expand_path("#{base_path}/#{dir_name}")
11
13
  raise LoadError, "Directory '#{path}' not found" unless Dir.exist?(path)
14
+
12
15
  paths = Dir["#{path}/*.rb"].sort
13
16
  paths = RequireRelativeDir.remove_exceptions(paths, except) if except
14
17
  paths.each { |file| require file }
15
18
  end
16
19
 
20
+ refine Object do
21
+ include RequireRelativeDir
22
+ private :require_relative_dir
23
+ end
24
+
17
25
  extend self
18
26
 
19
- private
27
+ # @api private
20
28
  def self.remove_exceptions(paths, except)
21
29
  except = Array(except).map(&:to_s)
22
30
  except.map! { |exception| File.extname(exception) == '.rb' ? exception[0...-3] : exception }
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module RequireRelativeDir
2
- VERSION = "0.9.9"
4
+ VERSION = '1.0.0'
3
5
  end
@@ -1,28 +1,27 @@
1
- lib = File.expand_path("../lib", __FILE__)
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
2
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
- require "require_relative_dir/version"
5
+ require 'require_relative_dir/version'
4
6
 
5
7
  Gem::Specification.new do |spec|
6
- spec.name = "require_relative_dir"
8
+ spec.name = 'require_relative_dir'
7
9
  spec.version = RequireRelativeDir::VERSION
8
- spec.authors = ["Marc-Andre Lafortune"]
9
- spec.email = ["github@marc-andre.ca"]
10
+ spec.authors = ['Marc-Andre Lafortune']
11
+ spec.email = ['github@marc-andre.ca']
10
12
 
11
- spec.summary = %q{Basic utility to require a directory.}
12
- spec.description = %q{Basic utility to require a directory.}
13
- spec.homepage = "https://github.com/marcandre/require_relative_dir"
14
- spec.license = "MIT"
13
+ spec.summary = 'Basic utility to require a directory.'
14
+ spec.description = 'Basic utility to require a directory.'
15
+ spec.homepage = 'https://github.com/marcandre/require_relative_dir'
16
+ spec.license = 'MIT'
15
17
 
16
18
  # Specify which files should be added to the gem when it is released.
17
19
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
18
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
20
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
19
21
  `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
20
22
  end
21
- spec.bindir = "exe"
23
+ spec.bindir = 'exe'
22
24
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
- spec.require_paths = ["lib"]
24
-
25
- spec.add_development_dependency "bundler", "~> 1.16"
26
- spec.add_development_dependency "rake", "~> 10.0"
27
- spec.add_development_dependency "rspec", "~> 3.0"
25
+ spec.require_paths = ['lib']
26
+ spec.required_ruby_version = '> 2.1.0'
28
27
  end
metadata CHANGED
@@ -1,57 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: require_relative_dir
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.9
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Marc-Andre Lafortune
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-09-18 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '1.16'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '1.16'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '10.0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '10.0'
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '3.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '3.0'
11
+ date: 2020-11-09 00:00:00.000000000 Z
12
+ dependencies: []
55
13
  description: Basic utility to require a directory.
56
14
  email:
57
15
  - github@marc-andre.ca
@@ -59,11 +17,11 @@ executables: []
59
17
  extensions: []
60
18
  extra_rdoc_files: []
61
19
  files:
20
+ - ".github/workflows/require_relative_dir.yml"
62
21
  - ".gitignore"
63
22
  - ".rspec"
64
- - ".travis.yml"
23
+ - ".rubocop.yml"
65
24
  - Gemfile
66
- - Gemfile.lock
67
25
  - LICENSE.txt
68
26
  - README.md
69
27
  - Rakefile
@@ -76,24 +34,23 @@ homepage: https://github.com/marcandre/require_relative_dir
76
34
  licenses:
77
35
  - MIT
78
36
  metadata: {}
79
- post_install_message:
37
+ post_install_message:
80
38
  rdoc_options: []
81
39
  require_paths:
82
40
  - lib
83
41
  required_ruby_version: !ruby/object:Gem::Requirement
84
42
  requirements:
85
- - - ">="
43
+ - - ">"
86
44
  - !ruby/object:Gem::Version
87
- version: '0'
45
+ version: 2.1.0
88
46
  required_rubygems_version: !ruby/object:Gem::Requirement
89
47
  requirements:
90
48
  - - ">="
91
49
  - !ruby/object:Gem::Version
92
50
  version: '0'
93
51
  requirements: []
94
- rubyforge_project:
95
- rubygems_version: 2.7.6
96
- signing_key:
52
+ rubygems_version: 3.1.4
53
+ signing_key:
97
54
  specification_version: 4
98
55
  summary: Basic utility to require a directory.
99
56
  test_files: []
@@ -1,10 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.5.1
5
- - 2.4.1
6
- - 2.3.4
7
- - 2.2.7
8
- - 2.1.10
9
- - ruby-head
10
- before_install: gem install bundler -v 1.16.2
@@ -1,35 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- require_relative_dir (0.9.9)
5
-
6
- GEM
7
- remote: https://rubygems.org/
8
- specs:
9
- diff-lcs (1.3)
10
- rake (10.5.0)
11
- rspec (3.8.0)
12
- rspec-core (~> 3.8.0)
13
- rspec-expectations (~> 3.8.0)
14
- rspec-mocks (~> 3.8.0)
15
- rspec-core (3.8.0)
16
- rspec-support (~> 3.8.0)
17
- rspec-expectations (3.8.1)
18
- diff-lcs (>= 1.2.0, < 2.0)
19
- rspec-support (~> 3.8.0)
20
- rspec-mocks (3.8.0)
21
- diff-lcs (>= 1.2.0, < 2.0)
22
- rspec-support (~> 3.8.0)
23
- rspec-support (3.8.0)
24
-
25
- PLATFORMS
26
- ruby
27
-
28
- DEPENDENCIES
29
- bundler (~> 1.16)
30
- rake (~> 10.0)
31
- require_relative_dir!
32
- rspec (~> 3.0)
33
-
34
- BUNDLED WITH
35
- 1.16.4