Module: Playdough

Defined in:
lib/playdough.rb,
lib/playdough/version.rb

Constant Summary collapse

VERSION =
'1.0.0'

Instance Method Summary collapse

Instance Method Details

#versioner(mod, **opts) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/playdough.rb', line 5

def versioner mod, **opts
  normalize_options(opts)
  self.prepend_before_filter opts do
    if request.accept
      version = request.accept[/version\s?=\s?(\d+)/, 1]
      shape = request.accept[/shape\s?=\s?(\w+)/, 1]
      mod_version = mod.const_get("V#{version}")
      resource_name = mod.name.split('::').last
      if shape
        @versioner_serializer = mod_version.const_get("#{resource_name}#{shape.camelize}Serializer")
      else
        @versioner_serializer = mod_version.const_get("#{resource_name}Serializer")
      end
    end
  end
end