eac_ruby_gems_utils 0.1.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 +7 -0
- data/README.rdoc +3 -0
- data/lib/eac_ruby_gems_utils/gem.rb +43 -0
- data/lib/eac_ruby_gems_utils/tests/base.rb +63 -0
- data/lib/eac_ruby_gems_utils/tests/minitest.rb +21 -0
- data/lib/eac_ruby_gems_utils/tests/rspec.rb +21 -0
- data/lib/eac_ruby_gems_utils/version.rb +3 -0
- data/lib/eac_ruby_gems_utils.rb +5 -0
- metadata +64 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: '0830253271f8c28f89bd1bbc8a05ffc93fa026386ea791e8447c59694a6de8a7'
|
4
|
+
data.tar.gz: a26a28cad0b5807a4ff25b8339e3f71a579d598dc1c2b0fd562035bd47ec3aaa
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 58e8acf493436867fc6f5aad058308c4622d78bd774c6a2ec920d794390ea63bc064930b9cae7e586652d16d6c1d16c3b28acec248d1ffcd0c5a8ec08bdf31db
|
7
|
+
data.tar.gz: 5e22feaa46ae1e2119490975e1a59dac53e9879e32183aef5d028d983e16f5ddd55640eb516e1549d886e3e80c616f44a2c492af5c704c073cb5cdaa751061b0
|
data/README.rdoc
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_ruby_utils/envs'
|
5
|
+
|
6
|
+
module EacRubyGemsUtils
|
7
|
+
class Gem
|
8
|
+
enable_simple_cache
|
9
|
+
|
10
|
+
common_constructor :root
|
11
|
+
set_callback :initialize, :after do
|
12
|
+
@root = ::Pathname.new(root).expand_path
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_s
|
16
|
+
root.basename.to_s
|
17
|
+
end
|
18
|
+
|
19
|
+
def bundle(*args)
|
20
|
+
::EacRubyUtils::Envs.local.command('bundle', *args)
|
21
|
+
.envvar('BUNDLE_GEMFILE', gemfile_path)
|
22
|
+
.chdir(root)
|
23
|
+
end
|
24
|
+
|
25
|
+
def gemfile_lock_gem_version(gem_name)
|
26
|
+
gemfile_lock_content.specs.find { |gem| gem.name == gem_name }.if_present(&:version)
|
27
|
+
end
|
28
|
+
|
29
|
+
def gemfile_lock_content
|
30
|
+
::Bundler::LockfileParser.new(::Bundler.read_file(gemfile_lock_path))
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def gemfile_path_uncached
|
36
|
+
root.join('Gemfile')
|
37
|
+
end
|
38
|
+
|
39
|
+
def gemfile_lock_path_uncached
|
40
|
+
root.join('Gemfile.lock')
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_ruby_utils/fs_cache'
|
5
|
+
require 'eac_ruby_utils/listable'
|
6
|
+
require 'eac_ruby_utils/on_clean_ruby_environment'
|
7
|
+
|
8
|
+
module EacRubyUtils
|
9
|
+
module Tests
|
10
|
+
class Base
|
11
|
+
include ::EacRubyUtils::Listable
|
12
|
+
|
13
|
+
enable_simple_cache
|
14
|
+
lists.add_string :result, :failed, :nonexistent, :successful
|
15
|
+
|
16
|
+
common_constructor :gem
|
17
|
+
|
18
|
+
def elegible?
|
19
|
+
dependency_present? && gem.root.join(test_directory).exist?
|
20
|
+
end
|
21
|
+
|
22
|
+
def dependency_present?
|
23
|
+
gem.gemfile_path.exist? && gem.gemfile_lock_gem_version(dependency_gem).present?
|
24
|
+
end
|
25
|
+
|
26
|
+
def name
|
27
|
+
self.class.name.demodulize.gsub(/Test\z/, '')
|
28
|
+
end
|
29
|
+
|
30
|
+
def stdout_cache
|
31
|
+
root_cache.child('stdout')
|
32
|
+
end
|
33
|
+
|
34
|
+
def stderr_cache
|
35
|
+
root_cache.child('stderr')
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_s
|
39
|
+
"#{gem}[#{name}]"
|
40
|
+
end
|
41
|
+
|
42
|
+
private
|
43
|
+
|
44
|
+
def result_uncached
|
45
|
+
return RESULT_NONEXISTENT unless elegible?
|
46
|
+
bundle_run ? RESULT_SUCCESSFUL : RESULT_FAILED
|
47
|
+
end
|
48
|
+
|
49
|
+
def bundle_run
|
50
|
+
r = ::EacRubyUtils.on_clean_ruby_environment do
|
51
|
+
gem.bundle('exec', *bundle_exec_args).execute
|
52
|
+
end
|
53
|
+
stdout_cache.write(r[:stdout])
|
54
|
+
stderr_cache.write(r[:stderr])
|
55
|
+
r[:exit_code].zero?
|
56
|
+
end
|
57
|
+
|
58
|
+
def root_cache
|
59
|
+
::EacRubyUtils.fs_cache.child(gem.root.to_s.parameterize, self.class.name.parameterize)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_gems_utils/tests/base'
|
4
|
+
|
5
|
+
module EacRubyGemsUtils
|
6
|
+
module Tests
|
7
|
+
class Minitest < ::EacRubyGemsUtils::Minitest
|
8
|
+
def bundle_exec_args
|
9
|
+
%w[rake test]
|
10
|
+
end
|
11
|
+
|
12
|
+
def dependency_gem
|
13
|
+
'minitest'
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_directory
|
17
|
+
'test'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_gems_utils/tests/base'
|
4
|
+
|
5
|
+
module EacRubyGemsUtils
|
6
|
+
module Tests
|
7
|
+
class Rspec < ::EacRubyUtils::Gem::Test
|
8
|
+
def bundle_exec_args
|
9
|
+
%w[rspec]
|
10
|
+
end
|
11
|
+
|
12
|
+
def dependency_gem
|
13
|
+
'rspec-core'
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_directory
|
17
|
+
'spec'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
metadata
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: eac_ruby_gems_utils
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Esquilo Azul Company
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2020-02-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: eac_ruby_utils
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.19'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.19'
|
27
|
+
description:
|
28
|
+
email:
|
29
|
+
executables: []
|
30
|
+
extensions: []
|
31
|
+
extra_rdoc_files: []
|
32
|
+
files:
|
33
|
+
- README.rdoc
|
34
|
+
- lib/eac_ruby_gems_utils.rb
|
35
|
+
- lib/eac_ruby_gems_utils/gem.rb
|
36
|
+
- lib/eac_ruby_gems_utils/tests/base.rb
|
37
|
+
- lib/eac_ruby_gems_utils/tests/minitest.rb
|
38
|
+
- lib/eac_ruby_gems_utils/tests/rspec.rb
|
39
|
+
- lib/eac_ruby_gems_utils/version.rb
|
40
|
+
homepage:
|
41
|
+
licenses:
|
42
|
+
- GPL3
|
43
|
+
metadata: {}
|
44
|
+
post_install_message:
|
45
|
+
rdoc_options: []
|
46
|
+
require_paths:
|
47
|
+
- lib
|
48
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0'
|
58
|
+
requirements: []
|
59
|
+
rubyforge_project:
|
60
|
+
rubygems_version: 2.7.7
|
61
|
+
signing_key:
|
62
|
+
specification_version: 4
|
63
|
+
summary: Utilities for Ruby gems development.
|
64
|
+
test_files: []
|