Class: VersionSerializer::Versioner
- Inherits:
-
Object
- Object
- VersionSerializer::Versioner
- Defined in:
- lib/version_serializers/versioner.rb
Instance Attribute Summary collapse
-
#class_name ⇒ Object
Returns the value of attribute class_name.
-
#request_version ⇒ Object
Returns the value of attribute request_version.
Class Method Summary collapse
Instance Method Summary collapse
Instance Attribute Details
#class_name ⇒ Object
Returns the value of attribute class_name.
4 5 6 |
# File 'lib/version_serializers/versioner.rb', line 4 def class_name @class_name end |
#request_version ⇒ Object
Returns the value of attribute request_version.
4 5 6 |
# File 'lib/version_serializers/versioner.rb', line 4 def request_version @request_version end |
Class Method Details
.get_rendering_opts(resource, version, opts) ⇒ Object
10 11 12 13 14 15 16 17 18 19 |
# File 'lib/version_serializers/versioner.rb', line 10 def self.get_rendering_opts(resource, version, opts) resource_class_name = resource.class.to_s serializer_key = :serializer if resource.is_a?(ActiveRecord::Relation) resource_class_name = resource_class_name.split("::").tap(&:pop).join("::") serializer_key = :each_serializer end serializer_class = get_serializer(resource_class_name, version) opts.merge!(json: resource, serializer_key => serializer_class) end |
.get_serializer(name, version) ⇒ Object
6 7 8 |
# File 'lib/version_serializers/versioner.rb', line 6 def self.get_serializer(name, version) send(:new, version, "#{name}_serializer".classify).get end |
Instance Method Details
#get ⇒ Object
21 22 23 24 25 26 |
# File 'lib/version_serializers/versioner.rb', line 21 def get "V#{request_version}::#{class_name}".constantize rescue NameError previous_version = request_version.to_i - 1 previous_version == 0 ? raise(NameError) : self.class.new(previous_version, class_name).get end |