require_dir 1.0.0 → 2.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
- SHA256:
3
- metadata.gz: 176bbfddf11657c59b8dd1f2254b5b6355fb9c47fa2424ab912148f816c33114
4
- data.tar.gz: 557bafbcfee44d9e91fb1da631fd84cc27cbb07f9f7a06054b991557a5779dc4
2
+ SHA1:
3
+ metadata.gz: 2faa13586135684abb096c092fef2daaa002796a
4
+ data.tar.gz: 1c0d386ce4b9c18e771b78ee0b85d3f64e4c7c72
5
5
  SHA512:
6
- metadata.gz: 7f8d135050287dfff5a2c49dd05e325578f14d34d456672e70906d7a9ed85d8c2d43f4adee13445e53807167ae3ccf6c755096e2f56c07613203e2e91b9bd346
7
- data.tar.gz: 3c0524a4f194f2cb53caadbb44f08e408068362e8278b0c1d7c3ad39192b8336eedaac31e20861310c250eb7c256d7e23d70e09a64dfd8e9c6b493a5ed231f4d
6
+ metadata.gz: 7f24094cb68704a8c7fe3ef97bf8d281515399c9401ab56aff1e59820ba3d84c862a0eb4aa89fd655760f8f645b6e160faa7b612356db4850a624495e504eea3
7
+ data.tar.gz: 020ad935bf36cfc904179f7774780f0958d43752af0b0a07b5978e1f52eb94fbe0877b0812628d4c8df193fce4307428f0704ec06dfc79706d5fd0edae0c07f1
@@ -1,23 +1,24 @@
1
1
  language: ruby
2
- env:
3
- global:
4
- - CODECLIMATE_REPO_TOKEN=703cb4759e977bdd9502305ae454a0acdf7bd0d51d418e88048110f4735c4a80
5
2
  rvm:
6
- - 2.2.9
7
- - 2.3.6
8
- - 2.4.3
9
- - 2.5.0
3
+ - 2.2.9
4
+ - 2.3.6
5
+ - 2.4.3
6
+ - 2.5.0
10
7
  before_script:
11
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
12
- - chmod +x ./cc-test-reporter
13
- - ./cc-test-reporter before-build
8
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64
9
+ > ./cc-test-reporter
10
+ - chmod +x ./cc-test-reporter
11
+ - "./cc-test-reporter before-build"
14
12
  script:
15
- - bundle exec rspec
13
+ - bundle exec rspec
16
14
  after_script:
17
- - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
15
+ - "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT"
18
16
  notifications:
19
17
  email:
20
18
  recipients:
21
- - kigster@gmail.com
19
+ - kigster@gmail.com
22
20
  on_success: change
23
21
  on_failure: always
22
+ env:
23
+ global:
24
+ secure: KFl7jV0zv/OZ/Hi+IBI8fDaMEfWjbYOZBAmlPZp3N5A1YcHT/7oqGguUgrYWKfBM84CMZOzszKw7yVvzdn6pvate+0nP22hfwCwT6hRly56c/oMLJvm/Sud+hSsL7Aq7lZq3UeuDDUzPcoyCA6h3hqve4RX93w/A5a4yQYE6N8PJbyZwFZ+uf3MvnoyIRTFAW5Rjrk23ieSjBsG8zdIUabYahAGUkm0tZt7SXmEyFi5ghMpY8WFeUl3cwnlhVjYyZ+/qfTdzW1vFhJ11ZObrQPCaMb1te/Wh0/WoUE/ycbUPkxPWEfd7KDThb6x9QVzK28ssIgB1w7VmHpAa9h77vu9UaZvJTcS8Ud/gQaTE00VinEeK/wOA2CgLIcUnK4bjbCeZ+bgMjjKhN1JPJZvx+xsk19IHTT3DuQF+olkPJV3NU4o0ZjRBwbi4tNGuboJiDC+op/WiKDGsdTzSqA3TWNIQZzfVI+x64YcHZ5OjZHC1kNdeKd51kjITRbtp3RAepCeITQMZKLiS66k7tLtqkf8zMdkIUHFCBon5TXlclnVzCwqxtySk4RDOQ0ac0zgot/MnXXhEJkkgd9Qo+51Yd0DBCzkZgJfRWNKCv/MmAyn7K2kq3COfNDoS/C9JEQzFapj3CNdntdCZWHUTwiug0y/DBxSzyRagbwyoVObVBfY=
data/README.md CHANGED
@@ -1,13 +1,12 @@
1
- # RequireDir
2
-
1
+ [![Build Status](https://travis-ci.org/kigster/require_dir.svg?branch=master)](https://travis-ci.org/kigster/require_dir)
2
+ [![Maintainability](https://api.codeclimate.com/v1/badges/ad8aceb1bb3c22f72194/maintainability)](https://codeclimate.com/github/kigster/require_dir/maintainability)
3
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/ad8aceb1bb3c22f72194/test_coverage)](https://codeclimate.com/github/kigster/require_dir/test_coverage)
3
4
  [![Gem Version](https://badge.fury.io/rb/require_dir.svg)](https://badge.fury.io/rb/require_dir)
4
5
  [![Downloads](http://ruby-gem-downloads-badge.herokuapp.com/require_dir?type=total)](https://rubygems.org/gems/require_dir)
5
6
 
6
- [![Build Status](https://travis-ci.org/kigster/require_dir.svg?branch=master)](https://travis-ci.org/kigster/require_dir)
7
- [![Test Coverage](https://api.codeclimate.com/v1/badges/ad8aceb1bb3c22f72194/test_coverage)](https://codeclimate.com/github/kigster/require_dir/test_coverage)
8
- [![Maintainability](https://api.codeclimate.com/v1/badges/ad8aceb1bb3c22f72194/maintainability)](https://codeclimate.com/github/kigster/require_dir/maintainability)
9
- [![Issue Count](https://codeclimate.com/github/kigster/require_dir/badges/issue_count.svg)](https://codeclimate.com/github/kigster/require_dir)
7
+ ----
10
8
 
9
+ # RequireDir
11
10
 
12
11
  This gem provides an easy way to require all file from a folder – recursively, or not.
13
12
 
@@ -41,37 +40,41 @@ Recommended usage is to include this gem's module into the top level module of y
41
40
  # file 'lib/mylib.rb' -- top level file for a gem 'mylib'
42
41
  require 'require_dir'
43
42
  module Mylib
43
+ # You must pass __FILE__ so that the library knows the "root" of your sources.
44
44
  RequireDir.enable_require_dir!(self, __FILE__)
45
- end
46
-
47
- Mylib.require_dir('mylib/subfolder') # loads all files in the folder 'lib/mylib/subfolder/*.rb'
48
- Mylib.require_dir_r('mylib/subfolder') # recursive load from 'lib/mylib/subfolder/**/*.rb'
49
45
 
46
+ dir_r 'mylib/cli'
47
+ dir 'mylib/commands'
48
+ end
50
49
  ```
51
50
 
52
- You can also use shorcuts `dir` and `dir_r`, which are equivalent to `require_dir` and `require_dir_r` respectively.
51
+ You literally have access to two methods (with aliases):
53
52
 
53
+ * `dir_r` (or `require_dir_r`) loads all ruby files recursively
54
+ * `dir` (or `require_dir`) loads files non-recursively
54
55
 
55
- ### Offset
56
-
57
- You can optionally load the library using `init_with_offset` method, which allows you
58
- to initialize the library from a file located not directly under lib, but further down below.
59
56
 
60
- Say you want to initialize the library from `lib/mylib/subfolder/mymodule.rb`. But you want to
61
- be able to later use RequireDir to load files relative to `lib`. This is how you would do that:
57
+ ### Offset
62
58
 
59
+ If your library's top required file is not at the very top level of the directory structure,
60
+ which might happen, if, say you have a gem named `app-foo`, and your primary required file is
61
+ located in `lib/app/foo.rb`, in this case you will need to pass an offset of 1 to the `enable_require_dir!`
62
+ method to properly initialize recursive loading:
63
63
 
64
64
  ```ruby
65
- # file 'lib/mylib/subfolder/mymodule.rb' -- top level file for a gem 'mylib'
65
+ # 'lib/app/foo.rb'
66
+ # i.e. this file is one level deep in the source tree of this library:
67
+
66
68
  require 'require_dir'
67
- module Mylib
68
- module SubFolder
69
- RequireDir.enable_require_dir!(self, __FILE__, 1)
69
+
70
+ module App
71
+ module Foo
72
+ # offset is 1, because the current file is 1 level deep into the source tree.
73
+ RequireDir.enable_require_dir!(self, __FILE__, 1)
74
+
75
+ dir_r 'app/foo/bar' # loads all files in the folder 'app/foo/bar/**.rb'
70
76
  end
71
77
  end
72
-
73
- Mylib.dir('mylib/subfolder') # loads all files in the folder 'lib/mylib/subfolder/*.rb'
74
- Mylib.dir_r('mylib/subfolder') # recursive load from 'lib/mylib/subfolder/**/*.rb'
75
78
  ```
76
79
 
77
80
  ### Load Errors
@@ -85,7 +88,9 @@ exploded. You can enable debugging output using two methods:
85
88
  * Initialize library with options hash, setting:
86
89
 
87
90
  ```ruby
91
+ module Foo
88
92
  RequireDir.enable_require_dir!(self, __FILE__, 0, debug: true)
93
+ end
89
94
  ```
90
95
 
91
96
  ## Development
@@ -16,19 +16,21 @@ require 'require_dir/initializer'
16
16
  # RequireDir.enable(self, __FILE__)
17
17
  # end
18
18
  # end
19
- # Foo::Bar.dir()
19
+ # Foo::Bar.dir_r 'foo/bar/commands' # loads all 'foo/bar/commands/**.rb' files
20
+ # Foo::Bar.dir_r 'foo/bar/commands' # loads all 'foo/bar/commands/*.rb' files
21
+ #
20
22
  module RequireDir
21
23
  class << self
22
24
  # @deprecated Please use {#enable_require_dir!} instead
23
25
  def included(klass)
24
- klass.extend(RequireDir::Initializer)
25
- klass.include(RequireDir::Initializer)
26
+ klass.send(:extend, RequireDir::Initializer)
27
+ klass.send(:include, RequireDir::Initializer)
26
28
  end
27
29
 
28
30
  def enable_require_dir!(klass, source_file, offset = 0, **options)
29
- klass.extend(RequireDir::Initializer)
30
- klass.include(RequireDir::Initializer)
31
- klass.init(source_file, offset, options)
31
+ klass.send(:extend, RequireDir::Initializer)
32
+ klass.send(:include, RequireDir::Initializer)
33
+ klass.send(:__require_dir_init, source_file, offset, options)
32
34
  end
33
35
  end
34
36
  end
@@ -1,32 +1,29 @@
1
1
  require 'forwardable'
2
2
  module RequireDir
3
3
  module Initializer
4
- attr_accessor :loader
5
- class << self
6
- def included(base)
7
- base.instance_eval do
8
- class << self
9
- attr_accessor :loader
10
- extend Forwardable
11
- def_delegators :@loader, :dir, :dir_r, :require_dir, :require_dir_r
12
- end
13
- end
14
- end
15
- end
4
+ def self.included(base)
5
+ base.instance_eval do
6
+ class << self
7
+ attr_accessor :__require_dir_loader
8
+ extend Forwardable
9
+ def_delegators :@__require_dir_loader, :dir, :dir_r, :require_dir, :require_dir_r
16
10
 
17
- def init(source, offset = 0, options = {})
18
- project_folder = project_folder_from(source: source, offset: offset)
19
- self.loader = create_loader(options, project_folder)
20
- end
11
+ def __require_dir_init(source, offset = 0, options = {})
12
+ project_folder = __require_dir_project_folder(source: source, offset: offset)
13
+ self.__require_dir_loader = __require_dir_create_loader(options, project_folder)
14
+ end
21
15
 
22
- def create_loader(options, project_folder)
23
- RequireDir::Loader.new(project_folder, options)
24
- end
16
+ def __require_dir_create_loader(options, project_folder)
17
+ RequireDir::Loader.new(project_folder, options)
18
+ end
25
19
 
26
- def project_folder_from(source:, offset: 0)
27
- dirs_up = ''
28
- offset.times { dirs_up << '/..' } if offset > 0
29
- File.dirname(File.expand_path(source + dirs_up))
20
+ def __require_dir_project_folder(source:, offset: 0)
21
+ dirs_up = ''
22
+ offset.times { dirs_up << '/..' } if offset > 0
23
+ File.dirname(File.expand_path(source + dirs_up))
24
+ end
25
+ end
26
+ end
30
27
  end
31
28
  end
32
29
  end
@@ -1,3 +1,3 @@
1
1
  module RequireDir
2
- VERSION = '1.0.0'
2
+ VERSION = '2.0.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: require_dir
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Gredeskoul
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-22 00:00:00.000000000 Z
11
+ date: 2018-03-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colored2
@@ -125,7 +125,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
125
  version: '0'
126
126
  requirements: []
127
127
  rubyforge_project:
128
- rubygems_version: 2.7.6
128
+ rubygems_version: 2.4.5.2
129
129
  signing_key:
130
130
  specification_version: 4
131
131
  summary: Easily and non-intrusively require files from sub-folders