class Fictium::Configuration

Constants

DEFAULT_IGNORED_HEADERS
DEFAULT_IGNORED_HEADERS_GROUPS
VOWEL

Attributes

api_blueprint[R]
default_action_descriptors[RW]
default_person[RW]
default_response_content_type[RW]
default_subject[RW]
export_path[RW]
exporters[RW]
fixture_path[RW]
ignored_header_groups[RW]
ignored_header_values[RW]
info[R]
postman[R]
pretty_print[RW]
summary_format[RW]
unknown_action_descriptor[RW]

Public Class Methods

new() click to toggle source
# File lib/fictium/configurations/configuration.rb, line 21
def initialize
  @info = Fictium::Configuration::Info.new
  @api_blueprint = Fictium::Configuration::ApiBlueprint.new
  @postman = Fictium::Configuration::Postman.new
  @exporters = [Fictium::OpenApi::V3Exporter.new]

  @summary_format = method(:default_summary_format)
  @pretty_print = true
  setup_descriptors
  setup_strings
  @ignored_header_values = DEFAULT_IGNORED_HEADERS.dup
  @ignored_header_groups = DEFAULT_IGNORED_HEADERS_GROUPS.dup
end

Private Instance Methods

conjugate(name) click to toggle source
# File lib/fictium/configurations/configuration.rb, line 88
def conjugate(name)
  ::Verbs::Conjugator.conjugate name, subject: default_subject,
                                      tense: :present,
                                      person: default_person
end
default_summary_for_create(action) click to toggle source
# File lib/fictium/configurations/configuration.rb, line 73
def default_summary_for_create(action)
  name = action.resource.name
  "Create a new #{name}."
end
default_summary_for_destroy(action) click to toggle source
# File lib/fictium/configurations/configuration.rb, line 83
def default_summary_for_destroy(action)
  name = action.resource.name
  "Destroy #{get_preposition(name)} #{name}."
end
default_summary_for_index(action) click to toggle source
# File lib/fictium/configurations/configuration.rb, line 64
def default_summary_for_index(action)
  "List all available #{action.resource.name.pluralize}"
end
default_summary_for_show(action) click to toggle source
# File lib/fictium/configurations/configuration.rb, line 68
def default_summary_for_show(action)
  name = action.resource.name
  "Show details of #{get_preposition(name)} #{name}."
end
default_summary_for_update(action) click to toggle source
# File lib/fictium/configurations/configuration.rb, line 78
def default_summary_for_update(action)
  name = action.resource.name
  "Update #{get_preposition(name)} #{name}."
end
default_summary_format(resources) click to toggle source
# File lib/fictium/configurations/configuration.rb, line 55
def default_summary_format(resources)
  "Handles API #{resources}."
end
default_unknown_action_descriptor(action, action_name) click to toggle source
# File lib/fictium/configurations/configuration.rb, line 59
def default_unknown_action_descriptor(action, action_name)
  name = action_name.humanize
  "#{conjugate(name)} #{get_preposition(name)} #{action.resource.name}."
end
get_preposition(resource_name) click to toggle source
# File lib/fictium/configurations/configuration.rb, line 94
def get_preposition(resource_name)
  resource_name.start_with?(VOWEL) ? 'an' : 'a'
end
setup_descriptors() click to toggle source
# File lib/fictium/configurations/configuration.rb, line 37
def setup_descriptors
  @default_action_descriptors = {
    default_summary_for_index: method(:default_summary_for_index),
    default_summary_for_show: method(:default_summary_for_show),
    default_summary_for_create: method(:default_summary_for_create),
    default_summary_for_update: method(:default_summary_for_update),
    default_summary_for_destroy: method(:default_summary_for_destroy)
  }
  @unknown_action_descriptor = method(:default_unknown_action_descriptor)
end
setup_strings() click to toggle source
# File lib/fictium/configurations/configuration.rb, line 48
def setup_strings
  @default_subject = nil
  @export_path = 'doc'
  @default_response_content_type = 'text/plain'
  @default_person = :second
end