providers 0.5.0 → 0.6.1

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
  SHA256:
3
- metadata.gz: 2f00a76777a6c399d76aa2e7b9da8620d4282d6b92ab59426f349ad43dcbcf0f
4
- data.tar.gz: ccba87d34e77891304bca92fce2c6b7f3f485fe81bb959a27699f53819147c01
3
+ metadata.gz: 9ceb15bee535ec5e0935537502a99b985e2c1562021a389e7a44bf9d7b36d72c
4
+ data.tar.gz: 91816b9dd7e12215b5d72462078d7244bd3ed9faaef8011da526570b2770270c
5
5
  SHA512:
6
- metadata.gz: 8624a205b4ca891a1464338ffc3dbb6b959ea0d896c25d15b0a6ee010cae08dcdad9ddf3d19ba05d5ff58a9ec5523c64a1c6e3a357da4f5bf2479b6fa847d0c7
7
- data.tar.gz: 3982786ceb3db9878cdfed87d078a2abd8cc7b9a325b7e705741e63579f69bdf0218542e118e081c701e642aac0932c0b04b46af285142f5ca47df5164e5d736
6
+ metadata.gz: c4423a7d88645d178761c0180ddc3b75b3d4f2f15c28d5c2a512c226b896c229b0eade4e6d5c64a66fd21849c61e792c4e4d0236dfa5a7db35513782c797c42f
7
+ data.tar.gz: e1874197801ffef062700b17263abad5441d9b3bdfdea0487fa4789e5a7f5d1de1dc3a9931b1b2ea2612a13f3988ea0b8cd14f0e80387e6014c3ea6cd51c58af
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative '../dependencies/dependency'
3
+ require_relative '../low/dependency'
4
4
 
5
5
  module Dependencies
6
6
  class Factory
@@ -17,7 +17,7 @@ module Dependencies
17
17
  provider_key = dependency
18
18
  end
19
19
 
20
- class_dependencies << (Dependency.new(var_name: dependency) | provider_key)
20
+ class_dependencies << (::Low::Dependency.new(var_name: dependency) | provider_key)
21
21
  end
22
22
 
23
23
  class_dependencies
data/lib/dependencies.rb CHANGED
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'config/config'
4
- require_relative 'dependencies/dependency'
5
4
  require_relative 'dependencies/factory'
6
5
  require_relative 'dependencies/repository'
7
6
  require_relative 'providers'
@@ -46,12 +45,8 @@ module Dependencies
46
45
  end
47
46
 
48
47
  def define_readers(dependencies, klass)
49
- dependencies.each do |dependency|
50
- var_name = name_from_namespace(dependency.var_name)
51
-
52
- klass.define_method(var_name) do
53
- instance_variable_get("@#{var_name}")
54
- end
48
+ klass.class_eval do
49
+ attr_reader(*dependencies.map { |d| Dependencies.name_from_namespace(d.var_name).to_sym })
55
50
  end
56
51
  end
57
52
 
@@ -2,8 +2,9 @@
2
2
 
3
3
  require 'expressions'
4
4
 
5
- module Dependencies
6
- # A Dependency Expression requires LowType in order to be injected via a constructor.
5
+ # Used within LowType's namespace.
6
+ module Low
7
+ # Placed as a default value in a constructor param.
7
8
  class Dependency < ::Expressions::Expression
8
9
  attr_reader :provider_key, :var_name
9
10
 
@@ -23,7 +24,7 @@ module Dependencies
23
24
  Providers[@provider_key]
24
25
  end
25
26
 
26
- # Ignore LowType's validation on arguments of type Dependency.
27
+ # Ignore LowType's validation on arguments of this type.
27
28
  def validate!(value:, proxy:); end
28
29
 
29
30
  private
data/lib/providers.rb CHANGED
@@ -1,13 +1,17 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require_relative 'low/dependency'
3
4
  require_relative 'providers/provider'
5
+ require_relative 'dependencies'
4
6
 
5
7
  module Providers
6
8
  class MissingProviderError < StandardError; end
7
9
 
8
10
  class << self
9
- def define(key, &block)
10
- providers[key] = Provider.new(key:, &block)
11
+ def define(key, eager: false, receiver: self, &block)
12
+ provider = Provider.new(key:, &block)
13
+ provider.result if eager
14
+ providers[key] = provider
11
15
  end
12
16
 
13
17
  def providers
data/lib/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Providers
4
- VERSION = '0.5.0'
4
+ VERSION = '0.6.1'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: providers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - maedi
@@ -33,9 +33,9 @@ extra_rdoc_files: []
33
33
  files:
34
34
  - lib/config/config.rb
35
35
  - lib/dependencies.rb
36
- - lib/dependencies/dependency.rb
37
36
  - lib/dependencies/factory.rb
38
37
  - lib/dependencies/repository.rb
38
+ - lib/low/dependency.rb
39
39
  - lib/providers.rb
40
40
  - lib/providers/provider.rb
41
41
  - lib/version.rb
@@ -58,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0'
60
60
  requirements: []
61
- rubygems_version: 4.0.10
61
+ rubygems_version: 4.0.6
62
62
  specification_version: 4
63
63
  summary: Dependency Injection in crisp and clear syntax
64
64
  test_files: []