Module: Semian::Adapter

Included in:
GRPC, Mysql2, NetHTTP, Redis
Defined in:
lib/semian/adapter.rb

Instance Method Summary collapse

Instance Method Details

#clear_semian_resourceObject



26
27
28
# File 'lib/semian/adapter.rb', line 26

def clear_semian_resource
  @semian_resource = nil
end

#semian_identifierObject

Raises:

  • (NotImplementedError)


5
6
7
# File 'lib/semian/adapter.rb', line 5

def semian_identifier
  raise NotImplementedError.new("Semian adapters must implement a `semian_identifier` method")
end

#semian_resourceObject



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/semian/adapter.rb', line 9

def semian_resource
  @semian_resource ||= case semian_options
  when false
    UnprotectedResource.new(semian_identifier)
  when nil
    Semian.logger.info("Semian is not configured for #{self.class.name}: #{semian_identifier}")
    UnprotectedResource.new(semian_identifier)
  else
    options = semian_options.dup
    options.delete(:name)
    options[:consumer] = self
    options[:exceptions] ||= []
    options[:exceptions] += resource_exceptions
    ::Semian.retrieve_or_register(semian_identifier, **options)
  end
end