Module: Grape::DSL::Settings

Extended by:
ActiveSupport::Concern
Included in:
Configuration::ClassMethods, InsideRoute, Endpoint
Defined in:
lib/grape/dsl/settings.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#inheritable_settingObject

Returns the value of attribute inheritable_setting


8
9
10
# File 'lib/grape/dsl/settings.rb', line 8

def inheritable_setting
  @inheritable_setting
end

#top_level_settingObject

Returns the value of attribute top_level_setting


8
9
10
# File 'lib/grape/dsl/settings.rb', line 8

def top_level_setting
  @top_level_setting
end

Instance Method Details

#api_class_setting(key, value = nil) ⇒ Object


76
77
78
# File 'lib/grape/dsl/settings.rb', line 76

def api_class_setting(key, value = nil)
  get_or_set :api_class, key, value
end

#get_or_set(type, key, value) ⇒ Object


23
24
25
26
27
28
29
30
# File 'lib/grape/dsl/settings.rb', line 23

def get_or_set(type, key, value)
  setting = inheritable_setting.send(type)
  if value.nil?
    setting[key]
  else
    setting[key] = value
  end
end

#global_setting(key, value = nil) ⇒ Object


32
33
34
# File 'lib/grape/dsl/settings.rb', line 32

def global_setting(key, value = nil)
  get_or_set :global, key, value
end

#namespace_endObject


88
89
90
91
# File 'lib/grape/dsl/settings.rb', line 88

def namespace_end
  route_end
  @inheritable_setting = inheritable_setting.parent
end

#namespace_inheritable(key, value = nil) ⇒ Object


56
57
58
# File 'lib/grape/dsl/settings.rb', line 56

def namespace_inheritable(key, value = nil)
  get_or_set :namespace_inheritable, key, value
end

#namespace_inheritable_to_nil(key) ⇒ Object


64
65
66
# File 'lib/grape/dsl/settings.rb', line 64

def namespace_inheritable_to_nil(key)
  inheritable_setting.namespace_inheritable[key] = nil
end

#namespace_setting(key, value = nil) ⇒ Object


48
49
50
# File 'lib/grape/dsl/settings.rb', line 48

def namespace_setting(key, value = nil)
  get_or_set :namespace, key, value
end

#namespace_stackable(key, value = nil) ⇒ Object


68
69
70
# File 'lib/grape/dsl/settings.rb', line 68

def namespace_stackable(key, value = nil)
  get_or_set :namespace_stackable, key, value
end

#namespace_startObject


84
85
86
# File 'lib/grape/dsl/settings.rb', line 84

def namespace_start
  @inheritable_setting = Grape::Util::InheritableSetting.new.tap { |new_settings| new_settings.inherit_from inheritable_setting }
end

#route_endObject


93
94
95
96
# File 'lib/grape/dsl/settings.rb', line 93

def route_end
  inheritable_setting.route_end
  reset_validations!
end

#route_setting(key, value = nil) ⇒ Object


40
41
42
# File 'lib/grape/dsl/settings.rb', line 40

def route_setting(key, value = nil)
  get_or_set :route, key, value
end

#unset(type, key) ⇒ Object


18
19
20
21
# File 'lib/grape/dsl/settings.rb', line 18

def unset(type, key)
  setting = inheritable_setting.send(type)
  setting.delete key
end

#unset_api_class_setting(key) ⇒ Object


80
81
82
# File 'lib/grape/dsl/settings.rb', line 80

def unset_api_class_setting(key)
  unset :api_class_setting, key
end

#unset_global_setting(key) ⇒ Object


36
37
38
# File 'lib/grape/dsl/settings.rb', line 36

def unset_global_setting(key)
  unset :global, key
end

#unset_namespace_inheritable(key) ⇒ Object


60
61
62
# File 'lib/grape/dsl/settings.rb', line 60

def unset_namespace_inheritable(key)
  unset :namespace_inheritable, key
end

#unset_namespace_setting(key) ⇒ Object


52
53
54
# File 'lib/grape/dsl/settings.rb', line 52

def unset_namespace_setting(key)
  unset :namespace_setting, key
end

#unset_namespace_stackable(key) ⇒ Object


72
73
74
# File 'lib/grape/dsl/settings.rb', line 72

def unset_namespace_stackable(key)
  unset :namespace_stackable, key
end

#unset_route_setting(key) ⇒ Object


44
45
46
# File 'lib/grape/dsl/settings.rb', line 44

def unset_route_setting(key)
  unset :route, key
end

#within_namespace(&block) ⇒ Object


98
99
100
101
102
103
104
105
106
107
# File 'lib/grape/dsl/settings.rb', line 98

def within_namespace(&block)
  namespace_start

  result = yield if block_given?

  namespace_end
  reset_validations!

  result
end