Sha256: f84f4d9a3c37b36d6b742fc42a8a25b5bb9c8550a95fc51f592b83910d49c118

Contents?: true

Size: 1005 Bytes

Versions: 6

Compression:

Stored size: 1005 Bytes

Contents

# typed: strict
class Wizard < ApplicationRecord
  validates :name, length: { minimum: 5 }, presence: true

  typed_enum house: {
    Gryffindor: 0,
    Hufflepuff: 1,
    Ravenclaw: 2,
    Slytherin: 3,
  }

  # To create conflict with enum
  class Professor; end

  enum professor: {
    "Severus Snape": 0,
    "Minerva McGonagall": 1,
    "Pomona Sprout": 2,
    "Filius Flitwick": 3,
    "Hagrid": 4,
  }

  typed_enum broom: {
    nimbus: 'nimbus',
    firebolt: 'firebolt',
  }, _prefix: true

  typed_enum quidditch_position: {
    keeper: 0,
    seeker: 1,
    beater: 2,
    chaser: 3,
  }, _prefix: :quidditch

  enum hair_color: {
    brown: 0,
    black: 1,
    blonde: 2,
  }, _suffix: :hair

  enum eye_color: {
    brown: 0,
    green: 1,
    blue: 2,
  }, _prefix: :color, _suffix: :eyes

  has_one :wand
  has_many :spell_books

  # simulate when belongs_to is optional by default
  belongs_to :school, optional: true

  scope :recent, -> { where('created_at > ?', 1.month.ago) }
  
end

Version data entries

6 entries across 3 versions & 1 rubygems

Version Path
sorbet-rails-0.6.2 spec/support/v5.0/app/models/wizard.rb
sorbet-rails-0.6.2 spec/support/v5.1/app/models/wizard.rb
sorbet-rails-0.6.1 spec/support/v5.0/app/models/wizard.rb
sorbet-rails-0.6.1 spec/support/v5.1/app/models/wizard.rb
sorbet-rails-0.6.0 spec/support/v5.0/app/models/wizard.rb
sorbet-rails-0.6.0 spec/support/v5.1/app/models/wizard.rb