Class: Shrine::Plugins::Hanami::RepositoryMethods

Inherits:
Module
  • Object
show all
Defined in:
lib/shrine/plugins/hanami.rb

Instance Method Summary collapse

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