Class: Surrogate::ApiComparer

Inherits:
Object
  • Object
show all
Defined in:
lib/surrogate/api_comparer.rb

Overview

compares a surrogate to an object

Defined Under Namespace

Classes: ActualMethods, SurrogateMethods

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(surrogate, actual) ⇒ ApiComparer

Returns a new instance of ApiComparer.



9
10
11
# File 'lib/surrogate/api_comparer.rb', line 9

def initialize(surrogate, actual)
  self.surrogate, self.actual = surrogate, actual
end

Instance Attribute Details

#actualObject

Returns the value of attribute actual.



7
8
9
# File 'lib/surrogate/api_comparer.rb', line 7

def actual
  @actual
end

#surrogateObject

Returns the value of attribute surrogate.



7
8
9
# File 'lib/surrogate/api_comparer.rb', line 7

def surrogate
  @surrogate
end

Instance Method Details

#actual_methodsObject



17
18
19
# File 'lib/surrogate/api_comparer.rb', line 17

def actual_methods
  @actual_methods ||= ActualMethods.new(actual).methods
end

#class_not_on_actualObject



48
49
50
# File 'lib/surrogate/api_comparer.rb', line 48

def class_not_on_actual
  surrogate_methods[:class][:api] - actual_methods[:class][:inherited] - actual_methods[:class][:other]
end

#class_not_on_surrogateObject



43
44
45
46
# File 'lib/surrogate/api_comparer.rb', line 43

def class_not_on_surrogate
  (actual_methods[:class][:inherited] + actual_methods[:class][:other]) -
    (surrogate_methods[:class][:inherited] + surrogate_methods[:class][:api])
end

#compareObject



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/surrogate/api_comparer.rb', line 21

def compare
  @compare ||= {
    instance: {
      not_on_surrogate: instance_not_on_surrogate,
      not_on_actual:    instance_not_on_actual,
    },
    class: {
      not_on_surrogate: class_not_on_surrogate,
      not_on_actual:    class_not_on_actual,
    },
  }
end

#instance_not_on_actualObject



39
40
41
# File 'lib/surrogate/api_comparer.rb', line 39

def instance_not_on_actual
  surrogate_methods[:instance][:api] - actual_methods[:instance][:inherited] - actual_methods[:instance][:other]
end

#instance_not_on_surrogateObject



34
35
36
37
# File 'lib/surrogate/api_comparer.rb', line 34

def instance_not_on_surrogate
  (actual_methods[:instance][:inherited] + actual_methods[:instance][:other]) -
    (surrogate_methods[:instance][:inherited] + surrogate_methods[:instance][:api])
end

#surrogate_methodsObject



13
14
15
# File 'lib/surrogate/api_comparer.rb', line 13

def surrogate_methods
  @surrogate_methods ||= SurrogateMethods.new(surrogate).methods
end