Class: Shrine::Plugins::Hanami::RepositoryMethods
- Inherits:
-
Module
- Object
- Module
- Shrine::Plugins::Hanami::RepositoryMethods
- Defined in:
- lib/shrine/plugins/hanami.rb
Instance Method Summary collapse
-
#initialize(name) ⇒ RepositoryMethods
constructor
A new instance of RepositoryMethods.
Constructor Details
#initialize(name) ⇒ RepositoryMethods
Returns a new instance of RepositoryMethods.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/shrine/plugins/hanami.rb', line 34 def initialize(name) module_eval " def create(entity)\n save_\#{name}_attachment(entity) { super }\n end\n def update(entity)\n save_\#{name}_attachment(entity) { super }\n end\n def persist(entity)\n save_\#{name}_attachment(entity) { super }\n end\n def delete(entity)\n delete_\#{name}_attachment(entity) { super }\n end\n\n private\n def save_\#{name}_attachment(entity)\n entity.\#{name}_attacher.save\n\n entity.\#{name}_attacher.replace\n entity.\#{name}_attacher._promote\n yield\n end\n\n def delete_\#{name}_attachment(entity)\n yield\n entity.\#{name}_attacher.destroy\n end\n RUBY\nend\n", __FILE__, __LINE__ + 1 |