require_relative_dir 0.9.9 → 1.0.0

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