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 #=> trueNow we're able to create a Permission without specifying the enabled
attribute and it takes on the default of true.