rom-rb / rom

Data mapping and persistence toolkit for Ruby
https://rom-rb.org
MIT License
2.08k stars 161 forks source link

Add support for repository plugins #546

Closed flash-gordon closed 5 years ago

flash-gordon commented 5 years ago

Depends on #545

Example usage:

module NullifyPlugin
  def self.apply(target, _options)
    target.prepend(self)
  end

  def set_relation(*)
    super.where { `1 = 0` }
  end
end

ROM.plugins do
  register :nullify_datasets, NullifyPlugin, type: :repository
end

class UserRepo < ROM::Repository[:users]
  use :nullify_datasets
end