Module: BasicSerializer::DSL

Included in:
BasicSerializer
Defined in:
lib/basic_serializer/dsl.rb

Instance Method Summary collapse

Instance Method Details

#attribute(name, type = nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/basic_serializer/dsl.rb', line 9

def attribute(name, type = nil)
  attributes[name] = type || :default

  return if @defined_methods&.include?(name)

  @defined_methods ||= Set.new
  @defined_methods << name

  define_method(name) { object.public_send(name) }
end

#attributesObject



5
6
7
# File 'lib/basic_serializer/dsl.rb', line 5

def attributes
  @attributes ||= {}
end

#custom_model_nameObject



24
25
26
# File 'lib/basic_serializer/dsl.rb', line 24

def custom_model_name
  @custom_model_name ||= @model_name || name.delete_suffix("Serializer")
end

#format(name, pretty: false) ⇒ Object



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

def format(name, pretty: false)
  @format = { name: name, pretty: pretty }
end

#format_settingsObject



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

def format_settings
  @format_settings ||= {}
end

#model_name(name) ⇒ Object



20
21
22
# File 'lib/basic_serializer/dsl.rb', line 20

def model_name(name)
  @model_name = name
end

#schema_ref(ref) ⇒ Object



28
29
30
# File 'lib/basic_serializer/dsl.rb', line 28

def schema_ref(ref)
  @schema_ref = ref
end