Class: VersionCake::Configuration

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

Constant Summary collapse

SUPPORTED_VERSIONS_DEFAULT =
(1..10)
VERSION_KEY_DEFAULT =
'api_version'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeConfiguration

Returns a new instance of Configuration.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/versioncake/configuration.rb', line 14

def initialize
  @versioned_resources           = []
  @version_key                   = VERSION_KEY_DEFAULT
  @rails_view_versioning         = true
  @missing_version_use_unversioned_template = true
  @default_version = nil
  self.supported_version_numbers = SUPPORTED_VERSIONS_DEFAULT
  self.extraction_strategy       = [
      :http_accept_parameter,
      :http_header,
      :request_parameter,
      :path_parameter,
      :query_parameter
  ]
  self.response_strategy         = []
end

Instance Attribute Details

#default_versionObject (readonly)

Returns the value of attribute default_version.



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

def default_version
  @default_version
end

#extraction_strategiesObject (readonly)

Returns the value of attribute extraction_strategies.



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

def extraction_strategies
  @extraction_strategies
end

#missing_versionObject

Returns the value of attribute missing_version.



12
13
14
# File 'lib/versioncake/configuration.rb', line 12

def missing_version
  @missing_version
end

#missing_version_use_unversioned_templateObject (readonly)

Returns the value of attribute missing_version_use_unversioned_template.



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

def missing_version_use_unversioned_template
  @missing_version_use_unversioned_template
end

#rails_view_versioningObject

Returns the value of attribute rails_view_versioning.



12
13
14
# File 'lib/versioncake/configuration.rb', line 12

def rails_view_versioning
  @rails_view_versioning
end

#response_strategiesObject (readonly)

Returns the value of attribute response_strategies.



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

def response_strategies
  @response_strategies
end

#supported_version_numbersObject

Returns the value of attribute supported_version_numbers.



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

def supported_version_numbers
  @supported_version_numbers
end

#version_keyObject

Returns the value of attribute version_key.



12
13
14
# File 'lib/versioncake/configuration.rb', line 12

def version_key
  @version_key
end

#versioned_resourcesObject (readonly)

Returns the value of attribute versioned_resources.



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

def versioned_resources
  @versioned_resources
end

Instance Method Details

#extraction_strategy=(val) ⇒ Object



42
43
44
45
46
47
# File 'lib/versioncake/configuration.rb', line 42

def extraction_strategy=(val)
  @extraction_strategies = []
  Array.wrap(val).each do |configured_strategy|
    @extraction_strategies << VersionCake::ExtractionStrategy.lookup(configured_strategy)
  end
end

#latest_versionObject



73
74
75
# File 'lib/versioncake/configuration.rb', line 73

def latest_version
  @supported_version_numbers.first
end

#resources {|builder| ... } ⇒ Object

Yields:

  • (builder)


77
78
79
80
81
# File 'lib/versioncake/configuration.rb', line 77

def resources
  builder = ResourceBuilder.new
  yield builder
  @versioned_resources = builder.resources
end

#response_strategy=(val) ⇒ Object



49
50
51
52
53
54
# File 'lib/versioncake/configuration.rb', line 49

def response_strategy=(val)
  @response_strategies = []
  Array.wrap(val).each do |configured_strategy|
    @response_strategies << VersionCake::ResponseStrategy::Base.lookup(configured_strategy)
  end
end

#supported_versions(requested_version_number = nil) ⇒ Object



61
62
63
64
65
66
67
# File 'lib/versioncake/configuration.rb', line 61

def supported_versions(requested_version_number=nil)
  @supported_version_numbers.collect do |supported_version_number|
    if requested_version_number.nil? || supported_version_number <= requested_version_number
      :"v#{supported_version_number}"
    end
  end
end

#supports_version?(version) ⇒ Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/versioncake/configuration.rb', line 69

def supports_version?(version)
  @supported_version_numbers.include? version
end