Module: JsonapiSerializer
- Extended by:
- AUX::Converters
- Defined in:
- lib/jsonapi_serializer.rb,
lib/jsonapi_serializer/version.rb
Defined Under Namespace
Modules: AUX, Base, Common, DSL, Polymorphic, Utils
Constant Summary
collapse
- TRANSFORMS =
{
dasherize: lambda { |str| str.to_s.underscore.dasherize.to_sym },
underscore: lambda { |str| str.to_s.underscore.to_sym },
camelize: lambda { |str| str.to_s.underscore.camelize(:lower).to_sym }
}
- VERSION =
"0.1.0"
- @@key_transform =
TRANSFORMS[:underscore]
- @@type_transform =
TRANSFORMS[:underscore]
- @@type_namespace_separator =
"_"
Class Method Summary
collapse
convert_fields, convert_include
Class Method Details
20
21
22
|
# File 'lib/jsonapi_serializer.rb', line 20
def self.key_transform(key)
@@key_transform.call(key)
end
|
33
34
35
36
37
38
39
40
41
|
# File 'lib/jsonapi_serializer.rb', line 33
def self.set_key_transform(name = nil, &block)
if name.nil? && block_given?
@@key_transform = block
elsif name.is_a?(Symbol) && !block_given?
@@key_transform = TRANSFORMS[name]
else
raise ArgumentError, "set_key_transform accepts either a standard transform symbol (:dasherize, :underscore or :camelize) or a block"
end
end
|
.set_type_namespace_separator(separator) ⇒ Object
43
44
45
|
# File 'lib/jsonapi_serializer.rb', line 43
def self.set_type_namespace_separator(separator)
@@type_namespace_separator = separator
end
|
47
48
49
50
51
52
53
54
55
|
# File 'lib/jsonapi_serializer.rb', line 47
def self.set_type_transform(name = nil, &block)
if name.nil? && block_given?
@@type_transform = block
elsif name.is_a?(Symbol) && !block_given?
@@type_transform = TRANSFORMS[name]
else
raise ArgumentError, "set_type_transform accepts either a standard transform symbol (:dasherize, :underscore or :camelize) or a block"
end
end
|
24
25
26
27
28
29
30
31
|
# File 'lib/jsonapi_serializer.rb', line 24
def self.type_transform(klass)
segments = klass.split("::").map { |segment| @@type_transform.call(segment) }
if @@type_namespace_separator == :ignore
segments.last
else
segments.join(@@type_namespace_separator)
end.to_sym
end
|