Class: RailsXapi::Query

Inherits:
ApplicationService show all
Defined in:
app/services/rails_xapi/query.rb

Overview

This class manages the query interface for verbs.

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ApplicationService

generate_start_date_end_date

Constructor Details

#initialize(query:, args: []) ⇒ Query

Returns a new instance of Query.



5
6
7
8
# File 'app/services/rails_xapi/query.rb', line 5

def initialize(query:, args: [])
  @query = query
  @args = args
end

Class Method Details

.call(query:, args: []) ⇒ Object



10
11
12
# File 'app/services/rails_xapi/query.rb', line 10

def self.call(query:, args: [])
  new(query: query, args: args).call
end

Instance Method Details

#callObject



14
15
16
17
18
19
20
21
# File 'app/services/rails_xapi/query.rb', line 14

def call
  if respond_to?(@query, true)
    send(@query, *@args)
  else
    raise RailsXapi::Errors::XapiError,
          I18n.t("rails_xapi.errors.query_not_available")
  end
end