Sha256: af207e870947aadd4449742efac97cd8db49a3c49b6733712db52d4ebad6cba7

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

class ContentWidget
  include EnumField::DefineEnum

  attr_reader :code, :regexp, :sample, :file

  def initialize(code, regexp, sample, is_cells = false)
    @code = code.to_sym
    @regexp = regexp.is_a?(Regexp) ? regexp : Regexp.new(regexp)
    @sample = sample
    @file = ['content_widgets', code].join('/')
    @is_cells = is_cells
  end

  def cells?
    @is_cells
  end

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

  define_enum do |builder|
    builder.member :button_order, object: new(
      :button_order,
      '\[BUTTON:ORDER\](?<button_text>.*)\[/BUTTON\]',
      '[BUTTON:ORDER]Start a Project[/BUTTON]'
    )
    # affilate_scheme
    # affilate_commission
    builder.member :affilate_scheme, object: new(
      :affilate_scheme,
      '\[AFFILATE_SCHEME\]',
      '[AFFILATE_SCHEME]', true
    )
    builder.member :affilate_commission, object: new(
      :affilate_commission,
      '\[AFFILATE_COMMISSION\]',
      '[AFFILATE_COMMISSION]', true
    )
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
translation_cms-0.1.5 app/models/content_widget.rb