scorpion-ioc 1.0.1 → 1.0.2

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
- SHA1:
3
- metadata.gz: 8bcefe82f54c3f0dd48602205116198a0648c419
4
- data.tar.gz: 1789116607e25c58cf48be18b1c9079724a6e591
2
+ SHA256:
3
+ metadata.gz: d9743363773a85cd8edd7d91b4b9c064ca0588261706eee6bd20cf7b8ed7e9a4
4
+ data.tar.gz: 83f5104291bc2a00ddf1a274d116ecf8a4adeec3309af2b78d2ccd300bdebce9
5
5
  SHA512:
6
- metadata.gz: 02e503ad56f4fa1229bb79471dd21790f5f2f31290fb6707cbd1a9c0110fd37df6e9b3f20b6517a4355ca8545cbc63c29de48e41ad116328a1ce580be043f279
7
- data.tar.gz: a951682ffc0a35358bcfc6f531784849a4ba788ee3425209af1741010d52fb93b889ce52b24f75d5c49c6d34022c05cc855a6be5a6ddde494758095878c39adc
6
+ metadata.gz: 5f4f81d5ad4762fec21d10486b2dc4e427402a45bb72da9dd422eda52d10a42d012217ef231ab2b761f1d55782785e25024b94398c9d9c8b3a1cb4d3d60926dd
7
+ data.tar.gz: 124563115dc80311d260cd9b18bec4ff8159e11277fa2d0740d51202d67d37a746d25fb4924a4f325482f3fbf0a3b13567af356734135ec866e65449a4f381e4
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.3.1
1
+ 2.5.1
data/Gemfile CHANGED
@@ -17,7 +17,7 @@ group :test do
17
17
  gem "simplecov"
18
18
  gem "ruby_gntp", "~> 0.3.4"
19
19
  gem "awesome_print"
20
- gem "nokogiri", "1.6.7.2"
20
+ gem "nokogiri", "~>1.8.2"
21
21
 
22
22
  gem "rubocop", "~> 0.50.0"
23
23
 
data/circle.yml CHANGED
@@ -1,3 +1,10 @@
1
+ machine:
2
+ pre:
3
+ # https://discuss.circleci.com/t/ruby-2-5-0-builds-failing-on-circleci-1-0-due-to-missing-home-travis/19620
4
+ # https://discuss.circleci.com/t/ruby-2-5-0-still-a-problem/19637/4
5
+ - sudo rm -rf /home/travis
6
+ - sudo ln -s /home/ubuntu /home/travis
7
+
1
8
  database:
2
9
  override:
3
10
  # We don't actually use a DB but it is included in the internal rails app
@@ -6,4 +13,4 @@ database:
6
13
 
7
14
  test:
8
15
  post:
9
- - bundle exec codeclimate-test-reporter
16
+ - bundle exec codeclimate-test-reporter
data/lib/scorpion.rb CHANGED
@@ -117,12 +117,15 @@ module Scorpion
117
117
 
118
118
  def self.instance=( scorpion )
119
119
  if @instance_referenced
120
- logger.warn "Replacing the global Scorpion.instance will not update any Scorpion::Nest instances created with the original scorpion." # rubocop:disable Metrics/LineLength
120
+ logger.warn "Replacing the global Scorpion.instance will not update any Scorpion::Nest instances created with the original scorpion." if warn_global_replace # rubocop:disable Metrics/LineLength
121
121
  @instance_referenced = false
122
122
  end
123
123
  @instance = scorpion
124
124
  end
125
125
 
126
+ cattr_accessor :warn_global_replace
127
+ self.warn_global_replace = true
128
+
126
129
  # Prepare the {#instance} for hunting.
127
130
  # @param [Boolean] reset true to free all existing resource and initialize a
128
131
  # new scorpion.
@@ -6,9 +6,10 @@ module Scorpion
6
6
  class ClassDependency < Scorpion::Dependency
7
7
 
8
8
  def fetch( hunt )
9
- hunt.scorpion.spawn hunt, hunt.contract, *hunt.arguments, &hunt.block
9
+ hunt.scorpion.spawn hunt, contract, *hunt.arguments, &hunt.block
10
10
  end
11
11
 
12
+
12
13
  end
13
14
  end
14
15
  end
@@ -1,5 +1,5 @@
1
1
  module Scorpion
2
- VERSION_NUMBER = "1.0.1".freeze
2
+ VERSION_NUMBER = "1.0.2".freeze
3
3
  VERSION_SUFFIX = "".freeze
4
4
  VERSION = "#{ VERSION_NUMBER }#{ VERSION_SUFFIX }".freeze
5
5
  end
data/scorpion.gemspec CHANGED
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.homepage = "https://github.com/phallguy/scorpion"
14
14
  spec.license = "MIT"
15
15
 
16
- spec.files = `git ls-files -z`.split("\x0")
16
+ spec.files = `git ls-files -z 2>/dev/null`.split("\x0")
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
18
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
19
  spec.require_paths = ["lib"]
@@ -5,6 +5,7 @@ module Test
5
5
  class Beast; end
6
6
  class Bear < Beast; end
7
7
  class Lion < Beast; end
8
+ class Tiger < Beast; end
8
9
  class Grizly < Bear; end
9
10
  class Argumented
10
11
  def initialize( arg )
@@ -53,6 +54,11 @@ module Test
53
54
  class Singleton
54
55
  end
55
56
 
57
+ class Madonna < Singleton
58
+ end
59
+
60
+ class Cher < Singleton
61
+ end
56
62
  end
57
63
  end
58
64
 
@@ -61,6 +67,7 @@ describe Scorpion::Hunter do
61
67
  let( :hunter ) do
62
68
  Scorpion::Hunter.new do
63
69
  capture Test::Hunter::Lion
70
+ capture Test::Hunter::Tiger
64
71
 
65
72
  hunt_for Test::Hunter::Bear
66
73
  hunt_for Test::Hunter::Grizly
@@ -69,7 +76,8 @@ describe Scorpion::Hunter do
69
76
  hunt_for Test::Hunter::Zoo
70
77
 
71
78
  share do
72
- capture Test::Hunter::Singleton
79
+ capture Test::Hunter::Madonna
80
+ capture Test::Hunter::Cher
73
81
  end
74
82
  end
75
83
  end
@@ -88,6 +96,29 @@ describe Scorpion::Hunter do
88
96
  expect( hunter.fetch(Test::Hunter::Lion) ).to be first
89
97
  end
90
98
 
99
+ it "does not capture a sibling dependency" do
100
+ first = hunter.fetch Test::Hunter::Lion
101
+ expect( hunter.fetch(Test::Hunter::Tiger) ).not_to be first
102
+ expect( hunter.fetch(Test::Hunter::Tiger) ).to be_a Test::Hunter::Tiger
103
+ end
104
+
105
+ it "does not share a captured sibling dependency" do
106
+ singer = hunter.fetch Test::Hunter::Madonna
107
+ expect( hunter.fetch( Test::Hunter::Cher ) ).not_to be singer
108
+ expect( hunter.fetch( Test::Hunter::Cher ) ).to be_a Test::Hunter::Cher
109
+ end
110
+
111
+ it "does not share a captured ancestor dependency" do
112
+ singer = hunter.fetch Test::Hunter::Singleton
113
+ expect( hunter.fetch( Test::Hunter::Madonna ) ).not_to be singer
114
+ expect( hunter.fetch( Test::Hunter::Madonna ) ).to be_a Test::Hunter::Madonna
115
+ end
116
+
117
+ it "captures derived dependency" do
118
+ singer = hunter.fetch Test::Hunter::Singleton
119
+ expect( singer ).to be_a Test::Hunter::Cher
120
+ end
121
+
91
122
  it "injects nested objects" do
92
123
  zoo = hunter.fetch Test::Hunter::Zoo
93
124
  expect( zoo.bear ).to be_a Test::Hunter::Bear
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scorpion-ioc
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Alexander
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-12 00:00:00.000000000 Z
11
+ date: 2018-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -223,7 +223,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
223
223
  version: '0'
224
224
  requirements: []
225
225
  rubyforge_project:
226
- rubygems_version: 2.6.13
226
+ rubygems_version: 2.7.6
227
227
  signing_key:
228
228
  specification_version: 4
229
229
  summary: Add IoC to rails with minimal fuss and ceremony