require_smasher 0.1.1 → 0.2.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: 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