enum

Kamil::DocumentStatus

Inherits Enum < Comparable < Value < Object

Constants

Draft = 0
Published = 1
Scheduled = 2

Constructors

from_json(pull : JSON::PullParser) : DocumentStatus
Source
from_yaml(ctx : YAML::ParseContext, node : YAML::Nodes::Node) : DocumentStatus
Source

Class methods

parse_status?(str : String) : DocumentStatus | Nil
Source

Instance methods

draft?

Returns true if this enum value equals Draft

Source
published?

Returns true if this enum value equals Published

Source
scheduled?

Returns true if this enum value equals Scheduled

Source
to_json(json : JSON::Builder)

Serializes this enum member by name.

For non-flags enums, the serialization is a JSON string. The value is the member name (see #to_s) transformed with String#underscore.

enum Stages
  INITIAL
  SECOND_STAGE
end

Stages::INITIAL.to_json      # => %("initial")
Stages::SECOND_STAGE.to_json # => %("second_stage")

For flags enums, the serialization is a JSON array including every flagged member individually serialized in the same way as a member of a non-flags enum. None is serialized as an empty array, All as an array containing all members.

@[Flags]
enum Sides
  LEFT
  RIGHT
end

Sides::LEFT.to_json                  # => %(["left"])
(Sides::LEFT | Sides::RIGHT).to_json # => %(["left","right"])
Sides::All.to_json                   # => %(["left","right"])
Sides::None.to_json                  # => %([])

ValueConverter.to_json offers a different serialization strategy based on the member value.

Source
to_yaml(emitter : YAML::Nodes::Builder)

Serializes this enum member by name.

For non-flags enums, the serialization is a YAML string. The value is the member name (see #to_s) transformed with String#underscore.

enum Stages
  INITIAL
  SECOND_STAGE
end

Stages::INITIAL.to_yaml      # => %(--- initial\n)
Stages::SECOND_STAGE.to_yaml # => %(--- second_stage\n)

For flags enums, the serialization is a YAML sequence including every flagged member individually serialized in the same way as a member of a non-flags enum. None is serialized as an empty sequence, All as a sequence containing all members.

@[Flags]
enum Sides
  LEFT
  RIGHT
end

Sides::LEFT.to_yaml                  # => %(--- [left]\n)
(Sides::LEFT | Sides::RIGHT).to_yaml # => %(--- [left, right]\n)
Sides::All.to_yaml                   # => %(--- [left, right]\n)
Sides::None.to_yaml                  # => %(--- []\n)

ValueConverter.to_yaml offers a different serialization strategy based on the member value.

Source