require_smasher 0.3.2 → 0.4.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
  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,