Module: Synthra::CommonMixins

Defined in:
lib/synthra/mixin.rb

Overview

Common mixins that come pre-registered

Class Method Summary collapse

Class Method Details

.register_all!Object



144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# File 'lib/synthra/mixin.rb', line 144

def self.register_all!
  # Timestamps mixin
  Mixin::Registry.register("Timestamps", fields: [
    Field.new(name: "created_at", type_name: "timestamp"),
    Field.new(name: "updated_at", type_name: "timestamp")
  ])

  # Soft delete mixin
  Mixin::Registry.register("SoftDelete", fields: [
    Field.new(name: "deleted_at?", type_name: "timestamp?")
  ])

  # Auditable mixin
  Mixin::Registry.register("Auditable", fields: [
    Field.new(name: "created_by?", type_name: "uuid"),
    Field.new(name: "updated_by?", type_name: "uuid")
  ])

  # Sluggable mixin
  Mixin::Registry.register("Sluggable", fields: [
    Field.new(name: "slug", type_name: "text")
  ])

  # Publishable mixin
  Mixin::Registry.register("Publishable", fields: [
    Field.new(name: "published_at?", type_name: "timestamp?"),
    Field.new(name: "published", type_name: "boolean")
  ])
end