Class: ConvenientService::Support::Cache::Entities::Key

Inherits:
Object
  • Object
show all
Defined in:
lib/convenient_service/support/cache/entities/key.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args, **kwargs, &block) ⇒ void

Parameters:

  • args (Array<Object>)
  • kwargs (Hash{Symbol => Object})
  • block (Proc, nil)


19
20
21
22
23
# File 'lib/convenient_service/support/cache/entities/key.rb', line 19

def initialize(*args, **kwargs, &block)
  @args = args
  @kwargs = kwargs
  @block = block
end

Instance Method Details

#==(other) ⇒ Boolean?

Parameters:

  • other (Object)

    Can be any type.

Returns:

  • (Boolean, nil)


29
30
31
32
33
34
35
36
37
# File 'lib/convenient_service/support/cache/entities/key.rb', line 29

def ==(other)
  return unless other.instance_of?(self.class)

  return false if args != other.args
  return false if kwargs != other.kwargs
  return false if block&.source_location != other.block&.source_location

  true
end

#eql?(other) ⇒ Boolean?

Parameters:

  • other (Object)

    Can be any type.

Returns:

  • (Boolean, nil)


51
52
53
54
55
56
57
58
59
# File 'lib/convenient_service/support/cache/entities/key.rb', line 51

def eql?(other)
  return unless other.instance_of?(self.class)

  return false if args != other.args
  return false if kwargs != other.kwargs
  return false if block&.source_location != other.block&.source_location

  true
end

#hashObject



95
96
97
# File 'lib/convenient_service/support/cache/entities/key.rb', line 95

def hash
  [self.class, args, kwargs, block&.source_location].hash
end