- 
                Notifications
    
You must be signed in to change notification settings  - Fork 85
 
Open
Labels
Description
Background
MySQL and Redis supports static config, while NetHTTP and GRPC currently only Proc. e.g.
Lines 137 to 140 in 1d4b53b
| def raw_semian_options | |
| return query_options[:semian] if query_options.key?(:semian) | |
| return query_options["semian"] if query_options.key?("semian") | |
| end | 
Lines 67 to 69 in 1d4b53b
| def retrieve_semian_configuration(host, port) | |
| @semian_configuration.call(host, port) if @semian_configuration.respond_to?(:call) | |
| end | 
Lines 48 to 50 in 1d4b53b
| def retrieve_semian_configuration(host) | |
| @semian_configuration.call(host) if @semian_configuration.respond_to?(:call) | |
| end | 
Problem
If pass a static config to NetHTTP and GRPC, semian is disabled because retrieve_semian_configuration returns nil.
Proposal
allow static config if it is not callable
def retrieve_semian_configuration(host, port)
  return @semian_configuration unless @semian_configuration.respond_to?(:call) 
 @semian_configuration.call(host, port)
 end 
Alternative
Add validation to semian_configuration setter, assert whether static config or Proc is expected
Lines 61 to 64 in 1d4b53b
| def semian_configuration=(configuration) | |
| raise Semian::NetHTTP::SemianConfigurationChangedError unless @semian_configuration.nil? | |
| @semian_configuration = configuration |