class Xpose::Configuration
Constants
- DEFAULT_VALUES
Attributes
config[RW]
Public Class Methods
new(**options)
click to toggle source
# File lib/xpose/configuration.rb, line 13 def initialize(**options) @options = options permit_options! unless options.fetch(:permissive, false) build_config build_internal_defaults end
Public Instance Methods
method_missing(method, *args, &block)
click to toggle source
# File lib/xpose/configuration.rb, line 20 def method_missing(method, *args, &block) config.send(method, *args, &block) end
model()
click to toggle source
# File lib/xpose/configuration.rb, line 24 def model config.singularized_name.capitalize.constantize end
Private Instance Methods
build_config()
click to toggle source
# File lib/xpose/configuration.rb, line 38 def build_config @config = OpenStruct.new(DEFAULT_VALUES.merge(@options)).tap do |c| raise MissingOptionsError.new(:name) if c.name.blank? c.name = c.name.to_sym c.ivar_name = :"@#{c.name}" c.singularized_name = c.name.to_s.singularize c.pluralized_name = c.singularized_name.pluralize end end
permit_options!()
click to toggle source
# File lib/xpose/configuration.rb, line 32 def permit_options! (@options.keys - DEFAULT_VALUES.keys).tap do |unknown_keys| raise UnknownOptionsError.new(unknown_keys) unless unknown_keys.empty? end end