surrealist 1.3.0 → 1.3.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: 4029b143bcc01a58f0b5a38d64a457f9a781ef7da37eaa3bc335be8d2ddafcfa
4
- data.tar.gz: 4f88b4c0b4224fddfe8fa7f6d16f2d0d2618609f280a7fdfd7bea2e4f46aa2b8
3
+ metadata.gz: 5067bf220ce8d757b29dc527c562e28410070dc101396d3029f3442940ebcebf
4
+ data.tar.gz: '09513dc82a8d7538fb9a5e77c842a596a27c5f2ba201960b396607373dbc029a'
5
5
  SHA512:
6
- metadata.gz: 369823e9f4d78b1c48aa7878f76e69f7381bfacffd79653ba667f747f8c2c23802dc2126eab7ba3b2e0ab6a3ce04878745b12f42c5dbcdb36ac307e953c9b259
7
- data.tar.gz: 8c7f310b4150ce62e568bfb8d0d4c0e5da187fff1fbbb11f338098ca17cf1c4e83646bbb6b05e9c0ff6d5d9790a7bcc59a00d6dd70d07fa1e61014f0dc4be0d9
6
+ metadata.gz: 6db73c57dae2758e58701201fa9835b6c5c177df66b94f6e81688ad5f5c8e06e914c14b8cb97336678d68353303ca5d3f5eb572a25b6d2c9ab6cd8310fb7a699
7
+ data.tar.gz: 450fee40e105f4a88213ef30147a2e67d249455d82a6383183ab9dca4eb8252ac857f6eaec37ccfe72f5c525ce88c9fb272160855ca01d6a91883b9a0d8b9a42
@@ -1,6 +1,5 @@
1
1
  language: ruby
2
2
  sudo: false
3
- cache: bundler
4
3
  before_install: gem install bundler
5
4
  script: bundle exec rake
6
5
  matrix:
@@ -1,3 +1,8 @@
1
+ # 1.3.1
2
+
3
+ ## Fixed
4
+ * Invoke parent serializer method instead of object method with the same names ([@kolasss][]) [#118](https://github.com/nesaulov/surrealist/pull/118)
5
+
1
6
  # 1.3.0
2
7
 
3
8
  ## Added
@@ -115,3 +120,4 @@
115
120
  [@past-one]: https://github.com/past-one
116
121
  [@stefkin]: https://github.com/stefkin
117
122
  [@gjhenrique]: https://github.com/gjhenrique
123
+ [@kolasss]: https://github.com/kolasss
@@ -48,6 +48,26 @@ module Surrealist
48
48
 
49
49
  # Plural form ¯\_(ツ)_/¯
50
50
  alias serializer_contexts serializer_context
51
+
52
+ # Only lookup for methods defined in Surrealist::Serializer subclasses
53
+ # to prevent invoke of Kernel methods
54
+ #
55
+ # @param [Symbol] method method to be invoked
56
+ #
57
+ # @return [Boolean]
58
+ def method_defined?(method)
59
+ return true if instance_methods(false).include?(method)
60
+ return false if superclass == Surrealist::Serializer
61
+
62
+ super
63
+ end
64
+
65
+ def private_method_defined?(method)
66
+ return true if private_instance_methods(false).include?(method)
67
+ return false if superclass == Surrealist::Serializer
68
+
69
+ super
70
+ end
51
71
  end
52
72
 
53
73
  # NOTE: #context will work only when using serializer explicitly,
@@ -47,8 +47,8 @@ module Surrealist
47
47
  # @return [Object] the return value of the method
48
48
  def invoke_method(instance, method)
49
49
  object = instance.instance_variable_get(:@object)
50
- instance_method = instance.class.instance_methods(false).include?(method) ||
51
- instance.class.private_instance_methods(false).include?(method)
50
+ instance_method = instance.class.method_defined?(method) ||
51
+ instance.class.private_method_defined?(method)
52
52
  invoke_object = !instance_method && object && object.respond_to?(method, true)
53
53
  invoke_object ? object.send(method) : instance.send(method)
54
54
  end
@@ -77,6 +77,7 @@ module Surrealist
77
77
  # @return [Array] of schemas
78
78
  def assign_nested_collection(instance, value)
79
79
  return if @skip_set.include?(value.first.class)
80
+
80
81
  with_skip_set(instance.class) { Surrealist.surrealize_collection(value, raw: true) }
81
82
  end
82
83
 
@@ -88,6 +89,7 @@ module Surrealist
88
89
  # @return [Hash] schema
89
90
  def assign_nested_record(instance, value)
90
91
  return if @skip_set.include?(value.class)
92
+
91
93
  with_skip_set(instance.class) { value.build_schema }
92
94
  end
93
95
 
@@ -98,6 +100,7 @@ module Surrealist
98
100
  # @return [Object] block result
99
101
  def with_skip_set(klass)
100
102
  return yield if @skip_set.include?(klass)
103
+
101
104
  @skip_set.add(klass)
102
105
  result = yield
103
106
  @skip_set.delete(klass)
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Surrealist
4
4
  # Defines the version of Surrealist
5
- VERSION = '1.3.0'.freeze
5
+ VERSION = '1.3.1'.freeze
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: surrealist
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nikita Esaulov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-09 00:00:00.000000000 Z
11
+ date: 2018-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oj