railjet 2.0 → 2.1

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
2
  SHA1:
3
- metadata.gz: 5859d0dde4ad98afadb028df629e8c449522d9f4
4
- data.tar.gz: 15caaadf2a5dd2d0074cf7f5543419aa19a0134f
3
+ metadata.gz: 98098fdd2ef601f2d4912de93a7b78eb67e1e9f1
4
+ data.tar.gz: 1993c032e26922585106c493cbeb94c90cc63996
5
5
  SHA512:
6
- metadata.gz: 27b9c2bba5c59a2b611ac476b33476d05f41682928642ecf894ffc0ca9ff74d22ec143eda7ae88210ecbea7d769cf58ab04c89aef7410870a5f31114b6e25ad8
7
- data.tar.gz: 286bc18f706991b3eaed243d5be7500573c900325c50b7ae37b4fa647e34ff74d73751b6a92a792e6394e4f4416901a146f623f99bc9495d2073b68757f682d4
6
+ metadata.gz: c4a02155ffe6ed9ef0425723b999ec1a24eba921445631f4bd1d49eddb5a5e9f4548f7af53ddd9363db16c3f584c73724ee01132452c9211d1e8e0d951ddb3e4
7
+ data.tar.gz: 5d6d60ef13cc80c2ac155ddc2f9fcdd8e086ca4c02d4e4a5655d8208a0a463dd0083ba059f54a449d78aa117d9c2e81b50d0290b40a6442a0d0de4cafa9f8b54
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- railjet (2.0)
4
+ railjet (2.1)
5
5
  activemodel (> 4)
6
6
  activesupport (> 4)
7
7
  validates_timeliness (~> 4.0.2)
@@ -10,11 +10,11 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activemodel (5.1.4)
14
- activesupport (= 5.1.4)
15
- activesupport (5.1.4)
13
+ activemodel (5.2.3)
14
+ activesupport (= 5.2.3)
15
+ activesupport (5.2.3)
16
16
  concurrent-ruby (~> 1.0, >= 1.0.2)
17
- i18n (~> 0.7)
17
+ i18n (>= 0.7, < 2)
18
18
  minitest (~> 5.1)
19
19
  tzinfo (~> 1.1)
20
20
  axiom-types (0.1.1)
@@ -24,7 +24,7 @@ GEM
24
24
  coderay (1.1.2)
25
25
  coercible (1.0.0)
26
26
  descendants_tracker (~> 0.0.1)
27
- concurrent-ruby (1.0.5)
27
+ concurrent-ruby (1.1.5)
28
28
  descendants_tracker (0.0.4)
29
29
  thread_safe (~> 0.3, >= 0.3.1)
30
30
  diff-lcs (1.3)
@@ -38,11 +38,11 @@ GEM
38
38
  netrc (>= 0.10.0, < 0.12.0.pre)
39
39
  thor (>= 0.14.0, < 1.0.0.pre)
40
40
  highline (1.7.8)
41
- i18n (0.9.1)
41
+ i18n (1.6.0)
42
42
  concurrent-ruby (~> 1.0)
43
43
  ice_nine (0.11.2)
44
44
  method_source (0.9.0)
45
- minitest (5.10.3)
45
+ minitest (5.11.3)
46
46
  multi_json (1.12.2)
47
47
  multipart-post (2.0.0)
48
48
  netrc (0.11.0)
@@ -67,8 +67,8 @@ GEM
67
67
  rspec-support (3.6.0)
68
68
  thor (0.20.0)
69
69
  thread_safe (0.3.6)
70
- timeliness (0.3.8)
71
- tzinfo (1.2.4)
70
+ timeliness (0.3.10)
71
+ tzinfo (1.2.5)
72
72
  thread_safe (~> 0.1)
73
73
  validates_timeliness (4.0.2)
74
74
  timeliness (~> 0.3.7)
@@ -91,4 +91,4 @@ DEPENDENCIES
91
91
  rspec (~> 3.0)
92
92
 
93
93
  BUNDLED WITH
94
- 1.14.5
94
+ 1.17.3
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0
1
+ 2.1
@@ -26,7 +26,7 @@ module Railjet
26
26
 
27
27
  def define_accessor(name, value)
28
28
  instance_variable_set("@#{name}", value)
29
- self.class.send(:attr_reader, name)
29
+ define_singleton_method(name) { instance_variable_get(:"@#{name}") }
30
30
  end
31
31
  end
32
32
  end
@@ -0,0 +1,84 @@
1
+ require "active_support/concern"
2
+
3
+ module Railjet
4
+ module Presenter
5
+ extend ActiveSupport::Concern
6
+
7
+ def initialize(object)
8
+ @object = object
9
+ end
10
+
11
+ def as_json(*)
12
+ raise NotImplementedError
13
+ end
14
+
15
+ module ClassMethods
16
+ def present_collection(objects)
17
+ objects.map { |o| new(o) }
18
+ end
19
+
20
+ private
21
+
22
+ def present(name)
23
+ define_method(name) { instance_variable_get(:@object) }
24
+ private name
25
+ end
26
+ end
27
+
28
+ module WithContext
29
+ extend ActiveSupport::Concern
30
+
31
+ included do
32
+ attr_reader :context
33
+ private :context
34
+ end
35
+
36
+ def initialize(context, object)
37
+ @context = context
38
+ super(object)
39
+ end
40
+
41
+ module ClassMethods
42
+ def present_collection(context, objects)
43
+ objects.map { |o| new(context, o) }
44
+ end
45
+ end
46
+
47
+ module Factory
48
+ extend ActiveSupport::Concern
49
+
50
+ module ClassMethods
51
+ def present_collection(context, objects)
52
+ objects.map { |o| present(context, o) }
53
+ end
54
+
55
+ def present(context, object)
56
+ presenter_class(object).new(context, object)
57
+ end
58
+
59
+ def presenter_class(object)
60
+ raise NotImplementedError
61
+ end
62
+ end
63
+ end
64
+ end
65
+
66
+ module Factory
67
+ extend ActiveSupport::Concern
68
+
69
+ module ClassMethods
70
+ def present_collection(objects)
71
+ objects.map { |o| present(o) }
72
+ end
73
+
74
+ def present(object)
75
+ presenter_class(object).new(object)
76
+ end
77
+
78
+ def presenter_class(object)
79
+ raise NotImplementedError
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -1,3 +1,3 @@
1
1
  module Railjet
2
- VERSION = "2.0"
2
+ VERSION = "2.1"
3
3
  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.1'
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-11-23 00:00:00.000000000 Z
11
+ date: 2019-04-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -185,6 +185,7 @@ files:
185
185
  - lib/railjet/context.rb
186
186
  - lib/railjet/form.rb
187
187
  - lib/railjet/policy.rb
188
+ - lib/railjet/presenter.rb
188
189
  - lib/railjet/repository.rb
189
190
  - lib/railjet/repository/active_record.rb
190
191
  - lib/railjet/repository/generic.rb
@@ -217,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
218
  version: '0'
218
219
  requirements: []
219
220
  rubyforge_project:
220
- rubygems_version: 2.6.11
221
+ rubygems_version: 2.5.2
221
222
  signing_key:
222
223
  specification_version: 4
223
224
  summary: Better architecture for high-speed railway