Module: Translates

Defined in:
lib/translates.rb,
lib/translates/version.rb,
lib/translates/column_backend.rb,
lib/translates/fallbacks_plugin.rb

Defined Under Namespace

Modules: FallbacksPlugin Classes: ColumnBackend

Constant Summary collapse

VERSION =
"0.1.0"

Instance Method Summary collapse

Instance Method Details

#translates(*attributes, backend:, plugins: []) ⇒ Object



4
5
6
7
8
9
10
11
12
13
# File 'lib/translates.rb', line 4

def translates(*attributes, backend:, plugins: [])
  backend_subclass = Class.new(backend)
  plugins.each { |plugin| backend_subclass.include plugin }

  attributes.each do |attribute|
    define_accessor(attribute)
    define_backend(attribute, backend_subclass)
  end
  backend_subclass.setup_model(self, attributes)
end