scorpion-ioc 1.0.1 → 1.0.2

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
- 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