mirror of
https://github.com/jbranchaud/til
synced 2026-03-03 22:48:45 +00:00
1.1 KiB
1.1 KiB
Specify Default For Data Definition
Here is what a Data definition for the concept of a Permission might look
like:
Permission = Data.define(:id, :name, :description, :enabled)
perm1 = Permission.new(
id: 123,
name: :can_edit,
description: "User is allowed to edit.",
enabled: true
)
However, as we're creating various Permission entities, we may find that the
vast majority of them are enabled by default and so we'd like to apply true
as a default value.
We cannot do this directly in the Data definition, but we can open a block to
override the initialize method.
Permission = Data.define(:id, :name, :description, :enabled) do
def initialize(:id, :name, :description, enabled: true)
super
end
end
perm1 = Permission.new(
id: 123,
name: :can_edit,
description: "User is allowed to edit."
)
perm1.enabled #=> true
Now we're able to create a Permission without specifying the enabled
attribute and it takes on the default of true.