Module: CardDB::Rails::Resolver

Defined in:
lib/carddb/rails/resolver.rb

Class Method Summary collapse

Class Method Details

.resolve_client(receiver, option) ⇒ Object



28
29
30
31
# File 'lib/carddb/rails/resolver.rb', line 28

def resolve_client(receiver, option)
  resolved = resolve_option(receiver, option)
  resolved || CardDB::Rails.client
end

.resolve_graphql_client(graphql_object, option) ⇒ Object



44
45
46
47
48
49
50
51
# File 'lib/carddb/rails/resolver.rb', line 44

def resolve_graphql_client(graphql_object, option)
  case option
  when Proc
    graphql_object.instance_exec(&option)
  else
    option
  end
end

.resolve_graphql_value(graphql_object, option) ⇒ Object



33
34
35
36
37
38
39
40
41
42
# File 'lib/carddb/rails/resolver.rb', line 33

def resolve_graphql_value(graphql_object, option)
  case option
  when Symbol
    graphql_object.object.public_send(option)
  when Proc
    graphql_object.instance_exec(&option)
  else
    option
  end
end

.resolve_option(receiver, option) ⇒ Object



10
11
12
13
14
15
16
17
18
19
# File 'lib/carddb/rails/resolver.rb', line 10

def resolve_option(receiver, option)
  case option
  when Symbol
    receiver.public_send(option)
  when Proc
    receiver.instance_exec(&option)
  else
    option
  end
end

.resolve_required_option(receiver, option, name) ⇒ Object

Raises:

  • (ArgumentError)


21
22
23
24
25
26
# File 'lib/carddb/rails/resolver.rb', line 21

def resolve_required_option(receiver, option, name)
  resolved = resolve_option(receiver, option)
  raise ArgumentError, "#{name} is required" if resolved.blank?

  resolved
end