require_smasher 0.3.2 → 0.4.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
  SHA1:
3
- metadata.gz: 03a374a7aa18c6270297dc2c3dc06311f614d9c6
4
- data.tar.gz: 23025566b07d29be47c1c6855f766d0c13331a53
3
+ metadata.gz: f53e09684876d1aa74bf4c5593ab9590666e00a8
4
+ data.tar.gz: f4e59006752c9db634fbc7a54cd7ee370abd0dc7
5
5
  SHA512:
6
- metadata.gz: 05b667cc4d63c1c1af21ba7d5c62340a84480675abf926cdd0a0d79addcd5b5bcc002ee5dc7408c7de36e7b83dd15cf817fff510f7866bc08a7cbe583d19ae04
7
- data.tar.gz: e45106516ff3d5bb9b2540028c385292a6ca545fe0e3699fafbbf763800888be403c65b33d4aa88b1cac617f741f77fe0d0f5fb18e6765567e98af375c63d6ae
6
+ metadata.gz: 3fbe03b1c01aaf8929a169c83b4feae3e2566c1a7cda81a68491716cfdacac7dd5e990d2a6f7017b7c4d14877d4be2e4fa12ace210c573b89c9cc65c4914c6ac
7
+ data.tar.gz: e07e8e5cec827a13cc6c3758bd5e2a102b29ad4608d08fddea69de8d51a010c87524dfe537b89ee9b800bca19f57e2c1c7cfe4f0235363a4c7c546730c05199d
@@ -21,6 +21,7 @@ module Classifier
21
21
  def element_type(element)
22
22
  return :directory if Dir.exist?(element)
23
23
  return :file if FileSmasher.file?(element)
24
+
24
25
  :gem
25
26
  end
26
27
  end
@@ -0,0 +1,7 @@
1
+ # Define base class for handle errors
2
+
3
+ class BaseError < StandardError
4
+ def initialize(message)
5
+ super(message)
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # Define class for handle errors about inexistent directory
2
+
3
+ class DirNotExistError < NotExistError
4
+ def initialize(message = 'Directory does not exist')
5
+ super(message)
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # Define super class for handle errors about elements that do not exist
2
+
3
+ class NotExistError < BaseError
4
+ def initialize(message)
5
+ super(message)
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # Define class for handle error when a directory is not informed
2
+
3
+ class DirNotInformedError < NotInformedError
4
+ def initialize(message = 'Directory was not informed')
5
+ super(message)
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # Define class for handle error when a file is not informed
2
+
3
+ class FileNotInformedError < NotInformedError
4
+ def initialize(message = 'File was not informed')
5
+ super(message)
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # Define class for handle error when a gem is not informed
2
+
3
+ class GemNotInformedError < NotInformedError
4
+ def initialize(message = 'Gem was not informed')
5
+ super(message)
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # Define super class for handle errors about elements that were not informed
2
+
3
+ class NotInformedError < BaseError
4
+ def initialize(message)
5
+ super(message)
6
+ end
7
+ end
@@ -0,0 +1,7 @@
1
+ # Define class for handle error when a file is required
2
+
3
+ class RequireFileError < BaseError
4
+ def initialize(message)
5
+ super(message)
6
+ end
7
+ end
@@ -3,12 +3,13 @@
3
3
  module FileSmasher
4
4
  class << self
5
5
  def files_by(directory)
6
- raise StandardError, "Directory '#{directory}' does not exist" unless Dir.exist?(directory)
6
+ raise DirNotExistError, "Directory '#{directory}' does not exist" unless Dir.exist?(directory)
7
+
7
8
  Dir.glob("./#{directory}/**/*.rb")
8
9
  end
9
10
 
10
11
  def files(directories)
11
- raise StandardError, 'Directory was not informed' if directories.empty?
12
+ raise DirNotInformedError if directories.empty?
12
13
 
13
14
  files = []
14
15
  directories.uniq.each do |directory|
@@ -22,6 +23,7 @@ module FileSmasher
22
23
  file = File.expand_path("./#{element}")
23
24
  return true if File.file?(file)
24
25
  return false if element.include?('.')
26
+
25
27
  File.file?("#{file}.rb")
26
28
  end
27
29
  end
@@ -3,18 +3,21 @@
3
3
  module RequireFile
4
4
  class << self
5
5
  def require(files)
6
- raise StandardError, 'File was not informed' if files.empty?
6
+ raise FileNotInformedError if files.empty?
7
+
7
8
  errors_list = require_files(files)
8
9
  files_with_error = errors_list[:files_with_error]
9
10
 
10
11
  return if files_with_error.empty?
11
12
 
12
- raise StandardError, errors_list[:errors] if files == files_with_error
13
+ raise RequireFileError, errors_list[:errors] if files == files_with_error
14
+
13
15
  require(files_with_error)
14
16
  end
15
17
 
16
18
  def require_directories(directories)
17
- raise StandardError, 'Directory was not informed' if directories.empty?
19
+ raise DirNotInformedError if directories.empty?
20
+
18
21
  require(FileSmasher.files(directories))
19
22
  end
20
23
 
@@ -1,3 +1,3 @@
1
1
  module RequireSmasher
2
- VERSION = '0.3.2'.freeze
2
+ VERSION = '0.4.0'.freeze
3
3
  end
@@ -2,6 +2,14 @@ require 'require_smasher/version'
2
2
  require 'require_smasher/file_smasher'
3
3
  require 'require_smasher/classifier'
4
4
  require 'require_smasher/require_file'
5
+ require 'require_smasher/errors/base_error'
6
+ require 'require_smasher/errors/not_informed_error'
7
+ require 'require_smasher/errors/not_informed_error/dir_not_informed_error'
8
+ require 'require_smasher/errors/not_informed_error/file_not_informed_error'
9
+ require 'require_smasher/errors/not_informed_error/gem_not_informed_error'
10
+ require 'require_smasher/errors/not_exist_error'
11
+ require 'require_smasher/errors/not_exist_error/dir_not_exist_error'
12
+ require 'require_smasher/errors/require_file_error'
5
13
 
6
14
  def require_all(*required_list)
7
15
  classified = Classifier.classify(required_list)
@@ -31,7 +39,8 @@ def require_dirs(*directories)
31
39
  end
32
40
 
33
41
  def require_gems(*gems)
34
- raise StandardError, 'Gem was not informed' if gems.empty?
42
+ raise GemNotInformedError if gems.empty?
43
+
35
44
  gems.uniq.each { |gem| require gem }
36
45
  end
37
46
 
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
34
34
  spec.add_development_dependency "rake", "~> 10.0"
35
35
  spec.add_development_dependency "rspec", "~> 3.0"
36
36
  spec.add_development_dependency "simplecov", "~> 0.16"
37
- spec.add_development_dependency "rubocop", "~> 0.58"
37
+ spec.add_development_dependency "rubocop", "~> 0.59"
38
38
  spec.add_development_dependency "byebug", "~> 10.0"
39
39
  spec.add_development_dependency "rubycritic", "~> 3.4"
40
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: require_smasher
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joacir Junior
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-09-03 00:00:00.000000000 Z
11
+ date: 2018-09-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0.58'
75
+ version: '0.59'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0.58'
82
+ version: '0.59'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: byebug
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -130,6 +130,14 @@ files:
130
130
  - bin/setup
131
131
  - lib/require_smasher.rb
132
132
  - lib/require_smasher/classifier.rb
133
+ - lib/require_smasher/errors/base_error.rb
134
+ - lib/require_smasher/errors/not_exist_error.rb
135
+ - lib/require_smasher/errors/not_exist_error/dir_not_exist_error.rb
136
+ - lib/require_smasher/errors/not_informed_error.rb
137
+ - lib/require_smasher/errors/not_informed_error/dir_not_informed_error.rb
138
+ - lib/require_smasher/errors/not_informed_error/file_not_informed_error.rb
139
+ - lib/require_smasher/errors/not_informed_error/gem_not_informed_error.rb
140
+ - lib/require_smasher/errors/require_file_error.rb
133
141
  - lib/require_smasher/file_smasher.rb
134
142
  - lib/require_smasher/require_file.rb
135
143
  - lib/require_smasher/version.rb
@@ -156,7 +164,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
156
164
  version: '0'
157
165
  requirements: []
158
166
  rubyforge_project:
159
- rubygems_version: 2.6.11
167
+ rubygems_version: 2.6.13
160
168
  signing_key:
161
169
  specification_version: 4
162
170
  summary: A simple way to require ruby files in directories and in its sub-directories,