Sha256: 75306621776a7440937305079dca8de0ccad3a8172ad38ea3e039d0deb2ed17a
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 KB
Contents
# frozen_string_literal: true class FeatureType include EnumField::DefineEnum attr_reader :code, :type, :options def initialize(code, type = :default, options = {}) @code = code.to_sym @type = type.to_sym @options = options end def title I18n.t(code, scope: [:feature_type, :title]) end def description I18n.t(code, scope: [:feature_type, :description]) end def name(value = nil) return title if value.blank? case @code when :writer_level then "#{title}: #{value}" else value end end def show? @type == :extras end def multiple_variants? @options[:multiple_variants] end def extras? @type == :extras end class << self def extras all.select(&:extras?) end end define_enum do |builder| builder.member :proofread_by_editor, object: new(:proofread_by_editor, :extras) builder.member :preferred_writer, object: new(:preferred_writer) builder.member :writer_level, object: new(:writer_level, :defaults, multiple_variants: true) builder.member :printed_version, object: new(:printed_version, :extras) builder.member :vip_support, object: new(:vip_support, :extras) builder.member :certification, object: new(:certification, :extras, display_static_pricing: true, fields: [:certification_feature]) builder.member :other, object: new(:other, :extras) end all.map(&:code).each do |code| define_method "#{code}?" do @code == code end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
translation_cms-0.1.5 | app/models/enums/feature_type.rb |