Module: Mobility::Backend::Setup

Defined in:
lib/mobility/backend.rb

Overview

Defines setup hooks for backend to customize model class.

Instance Method Summary collapse

Instance Method Details

#inherited(subclass) ⇒ Object



140
141
142
# File 'lib/mobility/backend.rb', line 140

def inherited(subclass)
  subclass.instance_variable_set(:@setup_block, @setup_block)
end

#setup {|attribute_names, options| ... } ⇒ Object

Note:

When called multiple times, setup blocks will be appended so that they are run together consecutively on class.

Assign block to be called on model class.

Yields:

  • (attribute_names, options)


128
129
130
131
132
133
134
135
136
137
138
# File 'lib/mobility/backend.rb', line 128

def setup &block
  if @setup_block
    setup_block = @setup_block
    @setup_block = lambda do |*args|
      class_exec(*args, &setup_block)
      class_exec(*args, &block)
    end
  else
    @setup_block = block
  end
end

#setup_model(model_class, attribute_names, **options) ⇒ Object

Call setup block on a class with attributes and options.

Parameters:

  • model_class

    Class to be setup-ed

  • attribute_names (Array<String>)
  • options (Hash)


148
149
150
151
# File 'lib/mobility/backend.rb', line 148

def setup_model(model_class, attribute_names, **options)
  return unless setup_block = @setup_block
  model_class.class_exec(attribute_names, options, &setup_block)
end