require_smasher 0.1.1 → 0.2.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: fac111d9bf0dc715eba51bd2e16605aa38bb0701
4
- data.tar.gz: 543ad99d20f42103ad511503d6d422b1325923fe
3
+ metadata.gz: fdab9f284685ed8ebc165e123a2f717477424723
4
+ data.tar.gz: f63e2686e9f04df2afa5e4913ea1d44a9203d75b
5
5
  SHA512:
6
- metadata.gz: 173ba1be597b4357e215706f7f1b80131b47d2f662513af2bc066dfa84bd8b600dcca79ba1f7552e69390fb7e34577028971fd1b566d9f7f57460f37b27ea3a2
7
- data.tar.gz: bc6c22c9b83c8ae46e83847716f046ae260f391dd3e22c2fbe9bc3f953640f83b254919b0d1d00fbbf5d7ebb45fcc043c00f08988075c0ca3b77399dad67a2d8
6
+ metadata.gz: 1a43c9ba0b76b79cfb322def2a2dc4e614bcc0aef17c9890de336b866c4a724da38e1c0ecd3ab815de8599010fc12874c043d15b612819744fc9addac7212144
7
+ data.tar.gz: 7054ccad4818d075bd32395079019b0ff24bd9aab1d3f94b3a6b460c04628202bdaaaa33d0372aaf4aee9b4b4ca3afad4bd460795a99e7e35c33a41f8fab3da0
data/.travis.yml CHANGED
@@ -2,4 +2,8 @@ sudo: false
2
2
  language: ruby
3
3
  rvm:
4
4
  - 2.3.1
5
- before_install: gem install bundler -v 1.15.4
5
+ before_install:
6
+ - gem install bundler -v 1.16.3
7
+ - bundle install
8
+ install:
9
+ - bundle exec rspec
@@ -1,24 +1,28 @@
1
1
  module RequireDir
2
- def self.req(directory)
3
- require_files(files(directory))
2
+ def self.req(directories)
3
+ raise StandardError, 'Directory was not informed' if directories.empty?
4
+ require_files(files(directories))
4
5
  end
5
6
 
6
- def self.files(directory)
7
- raise StandardError, 'Directory was not informed' unless directory
8
- raise StandardError, "Directory '#{directory}' does not exist" unless Dir.exist?(directory)
9
- Dir.glob(File.join(File.expand_path("./#{directory}"), '**', '*.rb'))
7
+ def self.files(directories)
8
+ files = []
9
+ directories.uniq.each do |directory|
10
+ raise StandardError, "Directory '#{directory}' does not exist" unless Dir.exist?(directory)
11
+ files.concat(Dir.glob(File.join(File.expand_path("./#{directory}"), '**', '*.rb')))
12
+ end
13
+ files
10
14
  end
11
15
 
12
16
  def self.require_files(files, attempt = 0)
13
17
  files_with_error = []
14
18
  errors = []
15
19
 
16
- files.each do |file|
20
+ files.uniq.each do |file|
17
21
  begin
18
22
  require_relative file
19
23
  rescue StandardError => error
20
24
  files_with_error << file
21
- errors << { file: file, error: error.message }
25
+ errors << "Error while requiring file #{file}: #{error.message}"
22
26
  end
23
27
  end
24
28
 
@@ -1,13 +1,12 @@
1
1
  module RequireGem
2
- def self.req(gem)
3
- raise StandardError, 'Gem was not informed' unless gem
2
+ def self.req(gems)
3
+ raise StandardError, 'Gem was not informed' if gems.empty?
4
+ gems.uniq.each { |gem| req_gem(gem) }
5
+ end
4
6
 
5
- begin
6
- require gem
7
- rescue LoadError => error
8
- raise error, "Error requering gem '#{gem}': #{error.message}"
9
- rescue StandardError => error
10
- raise StandardError, "Error requering gem '#{gem}': #{error.message}"
11
- end
7
+ def self.req_gem(gem)
8
+ require gem
12
9
  end
10
+
11
+ private_class_method :req_gem
13
12
  end
@@ -1,3 +1,3 @@
1
1
  module RequireSmasher
2
- VERSION = '0.1.1'.freeze
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -1,42 +1,35 @@
1
1
  require 'require_smasher/version'
2
2
  require 'require_smasher/require_gem'
3
3
  require 'require_smasher/require_dir'
4
- require 'require_smasher/require_elements'
5
4
 
6
5
  def require_all(*required_list)
7
- required_list.uniq!
8
- errors = []
6
+ directories = []
7
+ gems = []
9
8
 
10
- required_list.each do |required|
11
- begin
12
- require_gems(required)
13
- rescue StandardError => gem_error
14
- begin
15
- require_dirs(required)
16
- rescue StandardError => dir_error
17
- errors << gem_error.message
18
- errors << dir_error.message
19
- end
20
- end
9
+ required_list.uniq.each do |required|
10
+ directory = Dir.exist?(required)
11
+ directories << required if directory
12
+ gems << required unless directory
21
13
  end
22
14
 
23
- raise StandardError, errors unless errors.empty?
15
+ require_gem(gems) unless gems.empty?
16
+ require_dir(directories) unless directories.empty?
24
17
  end
25
18
 
26
- def require_gem(gem)
27
- require_gems(gem)
19
+ def require_gem(gems)
20
+ return RequireGem.req([gems]) if gems.instance_of?(String)
21
+ RequireGem.req(gems)
28
22
  end
29
23
 
30
- def require_dir(directory)
31
- require_dirs(directory)
24
+ def require_dir(directories)
25
+ return RequireDir.req([directories]) if directories.instance_of?(String)
26
+ RequireDir.req(directories)
32
27
  end
33
28
 
34
29
  def require_dirs(*directories)
35
- raise StandardError, 'No directories was informed' if directories.empty?
36
- RequireElements.require_elements(directories, RequireDir)
30
+ require_dir(directories)
37
31
  end
38
32
 
39
33
  def require_gems(*gems)
40
- raise StandardError, 'No gems was informed' if gems.empty?
41
- RequireElements.require_elements(gems, RequireGem)
34
+ require_gem(gems)
42
35
  end
data/todos.txt CHANGED
@@ -1,6 +1,4 @@
1
1
  tratar errors especificos com classe de erros a criar
2
2
  fazer readme em portugues
3
3
  resolver ofensores restantes do rubocop
4
- publicar gem
5
4
  atualizar readme para informar sobre gemas e arquitetura utilizada para desenvolvimento
6
- resolver interdependencia de arquivos dentro da lista de diretórios
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.1.1
4
+ version: 0.2.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-08-14 00:00:00.000000000 Z
11
+ date: 2018-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -116,7 +116,6 @@ files:
116
116
  - bin/setup
117
117
  - lib/require_smasher.rb
118
118
  - lib/require_smasher/require_dir.rb
119
- - lib/require_smasher/require_elements.rb
120
119
  - lib/require_smasher/require_gem.rb
121
120
  - lib/require_smasher/version.rb
122
121
  - require_smasher.gemspec
@@ -1,21 +0,0 @@
1
- module RequireElements
2
- def self.require_elements(elements, require_module)
3
- elements.uniq!
4
- errors = []
5
-
6
- elements.each do |element|
7
- begin
8
- require_module.req(element)
9
- rescue LoadError => error
10
- errors << error.message
11
- rescue StandardError => error
12
- errors << error.message
13
- end
14
- end
15
-
16
- return if errors.empty?
17
-
18
- raise StandardError, errors if errors.count > 1
19
- raise StandardError, errors.first unless errors.empty?
20
- end
21
- end