Sha256: 43623b509ce2960c65960aeebef5d7da825eee45b91d9ba96ee3bf47fe5adb37

Contents?: true

Size: 980 Bytes

Versions: 1

Compression:

Stored size: 980 Bytes

Contents

# frozen_string_literal: true

class WriterActivityState
  include EnumField::DefineEnum

  attr_reader :code, :css, :slug, :allow_filter

  def initialize(code, slug = nil, css = nil, allow_filter = false)
    @code = code.to_sym
    @css = css || slug.to_s
    @slug = slug.to_sym if slug
    @allow_filter = allow_filter
  end

  def to_param
    @slug
  end

  def title
    I18n.t(code, scope: [:writer_activity_state])
  end

  class << self
    def filter_list
      all.select(&:allow_filter)
    end

    def find_by_slug(slug)
      return nil if slug.blank?

      all.find { |i| i.slug == slug.to_sym } if slug.present?
    end
  end

  define_enum do |builder|
    builder.member :open_to_suggestions, object: new(:open_to_suggestions, 'available', 'suggestion', true)
    builder.member :searching_for_orders, object: new(:searching_for_orders, 'searching')
    builder.member :temporary_not_available, object: new(:temporary_not_available, 'unavailable')
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
translation_cms-0.1.5 app/models/enums/writer_activity_state.rb