Class: Prato::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/prato/configuration.rb

Constant Summary collapse

KEY_TRANSFORMATION_OPTIONS =
[:camelCase, :snake_case, :none].freeze
INVALID_INPUT_OPTIONS =
[:empty, :raise].freeze
VALID_QUERYABLE =
[:all, :none, :filter, :sort].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



46
47
48
49
50
51
52
53
54
# File 'lib/prato/configuration.rb', line 46

def initialize
  @key_transformation = :camelCase
  @on_invalid_input = :empty
  @parameter_parser = Prato::Query::DefaultParser.new
  @default_page_size = 20
  @maximum_page_size = 100
  @default_queryable = :all
  @default_ruby_column_queryable = :none
end

Instance Attribute Details

#default_page_sizeObject

Returns the value of attribute default_page_size.



37
38
39
# File 'lib/prato/configuration.rb', line 37

def default_page_size
  @default_page_size
end

#default_queryableObject

Returns the value of attribute default_queryable.



40
41
42
# File 'lib/prato/configuration.rb', line 40

def default_queryable
  @default_queryable
end

#default_ruby_column_queryableObject

Returns the value of attribute default_ruby_column_queryable.



40
41
42
# File 'lib/prato/configuration.rb', line 40

def default_ruby_column_queryable
  @default_ruby_column_queryable
end

#key_transformationObject

Returns the value of attribute key_transformation.



40
41
42
# File 'lib/prato/configuration.rb', line 40

def key_transformation
  @key_transformation
end

#maximum_page_sizeObject

Returns the value of attribute maximum_page_size.



37
38
39
# File 'lib/prato/configuration.rb', line 37

def maximum_page_size
  @maximum_page_size
end

#on_invalid_inputObject

Returns the value of attribute on_invalid_input.



40
41
42
# File 'lib/prato/configuration.rb', line 40

def on_invalid_input
  @on_invalid_input
end

#parameter_parserObject

Returns the value of attribute parameter_parser.



40
41
42
# File 'lib/prato/configuration.rb', line 40

def parameter_parser
  @parameter_parser
end

Class Method Details

.configObject



6
7
8
# File 'lib/prato/configuration.rb', line 6

def config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

Yields:



10
11
12
13
# File 'lib/prato/configuration.rb', line 10

def configure
  yield(config) if block_given?
  config
end

.with_settings(base = nil, key_transformation: nil, on_invalid_input: nil, parameter_parser: nil, default_page_size: nil, maximum_page_size: nil, default_queryable: nil, default_ruby_column_queryable: nil) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/prato/configuration.rb', line 15

def with_settings(
  base = nil,
  key_transformation: nil,
  on_invalid_input: nil,
  parameter_parser: nil,
  default_page_size: nil,
  maximum_page_size: nil,
  default_queryable: nil,
  default_ruby_column_queryable: nil
)
  copy = (base || config).dup
  copy.key_transformation = key_transformation if key_transformation
  copy.on_invalid_input = on_invalid_input if on_invalid_input
  copy.parameter_parser = parameter_parser if parameter_parser
  copy.default_page_size = default_page_size if default_page_size
  copy.maximum_page_size = maximum_page_size if maximum_page_size
  copy.default_queryable = default_queryable if default_queryable
  copy.default_ruby_column_queryable = default_ruby_column_queryable if default_ruby_column_queryable
  copy
end