railjet 2.0.pre → 2.0.pre1
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 +4 -4
- data/Gemfile.lock +11 -8
- data/VERSION +1 -1
- data/lib/railjet/repository.rb +1 -1
- data/lib/railjet/repository/generic.rb +18 -10
- data/lib/railjet/repository/registry.rb +19 -6
- data/lib/railjet/version.rb +1 -1
- data/railjet.gemspec +2 -2
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 29a7d18d2b8bc0852295524995ff8780b7551a83
|
4
|
+
data.tar.gz: 965c764dff2977147ee038e380f8dbd79f471435
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f19fdbd2153690f1293b155749107049c31d1a545a6c5b8a5888d8c184ed46a2fe0bf7d337eae123fdd4215ae39a1905d703e906a3d51649695320fb0ee0327d
|
7
|
+
data.tar.gz: aa2060950a39502cb65ef0adfb252931dacdf600a1604d25a0d89e90fcfa7da337cca615f00d27dbdafc4be6387d1c6982064da4d055c1667df42c7055665d88
|
data/Gemfile.lock
CHANGED
@@ -1,26 +1,28 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
railjet (2.0.
|
5
|
-
activemodel (
|
6
|
-
activesupport (
|
4
|
+
railjet (2.0.pre1)
|
5
|
+
activemodel (< 5)
|
6
|
+
activesupport (< 5)
|
7
7
|
validates_timeliness (~> 4.0.2)
|
8
8
|
virtus (~> 1.0.2)
|
9
9
|
|
10
10
|
GEM
|
11
11
|
remote: https://rubygems.org/
|
12
12
|
specs:
|
13
|
-
activemodel (
|
14
|
-
activesupport (=
|
15
|
-
|
16
|
-
|
13
|
+
activemodel (4.2.10)
|
14
|
+
activesupport (= 4.2.10)
|
15
|
+
builder (~> 3.1)
|
16
|
+
activesupport (4.2.10)
|
17
17
|
i18n (~> 0.7)
|
18
18
|
minitest (~> 5.1)
|
19
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
19
20
|
tzinfo (~> 1.1)
|
20
21
|
axiom-types (0.1.1)
|
21
22
|
descendants_tracker (~> 0.0.4)
|
22
23
|
ice_nine (~> 0.11.0)
|
23
24
|
thread_safe (~> 0.3, >= 0.3.1)
|
25
|
+
builder (3.2.3)
|
24
26
|
coderay (1.1.2)
|
25
27
|
coercible (1.0.0)
|
26
28
|
descendants_tracker (~> 0.0.1)
|
@@ -38,7 +40,8 @@ GEM
|
|
38
40
|
netrc (>= 0.10.0, < 0.12.0.pre)
|
39
41
|
thor (>= 0.14.0, < 1.0.0.pre)
|
40
42
|
highline (1.7.8)
|
41
|
-
i18n (0.
|
43
|
+
i18n (0.9.0)
|
44
|
+
concurrent-ruby (~> 1.0)
|
42
45
|
ice_nine (0.11.2)
|
43
46
|
method_source (0.9.0)
|
44
47
|
minitest (5.10.3)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.pre1
|
data/lib/railjet/repository.rb
CHANGED
@@ -32,7 +32,7 @@ module Railjet
|
|
32
32
|
ivar = "@#{repository.type}"
|
33
33
|
dao = kwargs[repository.type]
|
34
34
|
|
35
|
-
instance_variable_set(ivar, repository.new(registry,
|
35
|
+
instance_variable_set(ivar, repository.new(registry, :"#{repository.type}" => dao))
|
36
36
|
self.class.send :attr_reader, repository.type
|
37
37
|
end
|
38
38
|
end
|
@@ -2,14 +2,14 @@ module Railjet
|
|
2
2
|
module Repository
|
3
3
|
class Generic < Module
|
4
4
|
class << self
|
5
|
-
def [](dao)
|
5
|
+
def [](dao = nil)
|
6
6
|
new(dao)
|
7
7
|
end
|
8
8
|
|
9
9
|
attr_accessor :type
|
10
10
|
end
|
11
11
|
|
12
|
-
def initialize(dao)
|
12
|
+
def initialize(dao = nil)
|
13
13
|
@dao = dao
|
14
14
|
@type = self.class.type
|
15
15
|
end
|
@@ -18,34 +18,42 @@ module Railjet
|
|
18
18
|
define_dao_accessor(@type, @dao)
|
19
19
|
define_type_accessor(klass, @type)
|
20
20
|
define_initializer(klass)
|
21
|
-
|
22
|
-
klass.send :include, self.class::RepositoryMethods
|
21
|
+
include_repository_methods(klass)
|
23
22
|
end
|
24
23
|
|
25
24
|
private
|
26
25
|
|
27
26
|
def define_dao_accessor(type, dao)
|
28
27
|
define_method type do
|
29
|
-
|
28
|
+
instance_variable_get("@#{type}") || instance_variable_set("@#{type}", (dao.constantize if dao.respond_to?(:constantize)))
|
30
29
|
end
|
31
30
|
end
|
32
31
|
|
33
32
|
def define_type_accessor(klass, type)
|
34
|
-
klass.define_singleton_method(:type)
|
35
|
-
type
|
36
|
-
end
|
33
|
+
klass.define_singleton_method(:type) { type }
|
37
34
|
end
|
38
35
|
|
39
36
|
def define_initializer(klass)
|
40
37
|
klass.class_eval do
|
41
38
|
attr_reader :registry
|
42
39
|
|
43
|
-
def initialize(registry,
|
40
|
+
def initialize(registry, **kwargs)
|
44
41
|
@registry = registry
|
45
|
-
|
42
|
+
instance_variable_set("@#{self.class.type}", kwargs.fetch(self.class.type, nil))
|
43
|
+
|
44
|
+
# Let's check if DAO was set through registry or set when including inner repo mixin
|
45
|
+
unless send(self.class.type)
|
46
|
+
raise ArgumentError, "Your repository #{self.class} need a DAO. It can be set with inner-repo mixin or through registry with `#{self.class.type}:` option"
|
47
|
+
end
|
46
48
|
end
|
47
49
|
end
|
48
50
|
end
|
51
|
+
|
52
|
+
def include_repository_methods(klass)
|
53
|
+
if defined?(self.class::RepositoryMethods)
|
54
|
+
klass.send :include, self.class::RepositoryMethods
|
55
|
+
end
|
56
|
+
end
|
49
57
|
end
|
50
58
|
end
|
51
59
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Railjet
|
2
2
|
module Repository
|
3
|
-
class Registry
|
3
|
+
class Registry
|
4
4
|
attr_reader :repositories, :initialized_repositories
|
5
5
|
protected :repositories, :initialized_repositories
|
6
6
|
|
@@ -9,8 +9,8 @@ module Railjet
|
|
9
9
|
@initialized_repositories = {}
|
10
10
|
end
|
11
11
|
|
12
|
-
def register(name, repository)
|
13
|
-
add_to_registry(name, repository)
|
12
|
+
def register(name, repository, **kwargs)
|
13
|
+
add_to_registry(name, repository, **kwargs)
|
14
14
|
define_accessor(name)
|
15
15
|
end
|
16
16
|
|
@@ -27,6 +27,19 @@ module Railjet
|
|
27
27
|
end
|
28
28
|
|
29
29
|
private
|
30
|
+
|
31
|
+
class RegisteredRepository
|
32
|
+
attr_reader :repository, :additional_arguments
|
33
|
+
|
34
|
+
def initialize(repository, **kwargs)
|
35
|
+
@repository = repository
|
36
|
+
@additional_arguments = kwargs
|
37
|
+
end
|
38
|
+
|
39
|
+
def initialize_repo(registry)
|
40
|
+
repository.new(registry, **additional_arguments)
|
41
|
+
end
|
42
|
+
end
|
30
43
|
|
31
44
|
def initialize_copy(original)
|
32
45
|
super
|
@@ -36,9 +49,9 @@ module Railjet
|
|
36
49
|
@registry_module = nil
|
37
50
|
end
|
38
51
|
|
39
|
-
def add_to_registry(name, repository)
|
52
|
+
def add_to_registry(name, repository, **kwargs)
|
40
53
|
initialized_repositories[name] = nil
|
41
|
-
repositories[name] = repository
|
54
|
+
repositories[name] = RegisteredRepository.new(repository, **kwargs)
|
42
55
|
end
|
43
56
|
|
44
57
|
def get_from_registry(name)
|
@@ -46,7 +59,7 @@ module Railjet
|
|
46
59
|
end
|
47
60
|
|
48
61
|
def initialize_repo(name)
|
49
|
-
initialized_repositories[name] ||= get_from_registry(name).
|
62
|
+
initialized_repositories[name] ||= get_from_registry(name).initialize_repo(self)
|
50
63
|
end
|
51
64
|
|
52
65
|
def define_accessor(name)
|
data/lib/railjet/version.rb
CHANGED
data/railjet.gemspec
CHANGED
@@ -26,8 +26,8 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.add_development_dependency "gemfury"
|
27
27
|
spec.add_development_dependency "rake-version", "~> 1.0"
|
28
28
|
|
29
|
-
spec.add_dependency "activesupport", '
|
30
|
-
spec.add_dependency "activemodel", '
|
29
|
+
spec.add_dependency "activesupport", '< 5'
|
30
|
+
spec.add_dependency "activemodel", '< 5'
|
31
31
|
spec.add_dependency "virtus", "~> 1.0.2"
|
32
32
|
spec.add_dependency "validates_timeliness", "~> 4.0.2"
|
33
33
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: railjet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.pre1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Krzysztof Zalewski
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-10-
|
11
|
+
date: 2017-10-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -98,30 +98,30 @@ dependencies:
|
|
98
98
|
name: activesupport
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "
|
101
|
+
- - "<"
|
102
102
|
- !ruby/object:Gem::Version
|
103
|
-
version: '
|
103
|
+
version: '5'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- - "
|
108
|
+
- - "<"
|
109
109
|
- !ruby/object:Gem::Version
|
110
|
-
version: '
|
110
|
+
version: '5'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: activemodel
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
115
|
+
- - "<"
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: '
|
117
|
+
version: '5'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - "
|
122
|
+
- - "<"
|
123
123
|
- !ruby/object:Gem::Version
|
124
|
-
version: '
|
124
|
+
version: '5'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: virtus
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|