Sha256: 31a0ebd909127e92e5b1eab1d257f842ad8f638b9d22e807af1e8f0cef14f4bb
Contents?: true
Size: 777 Bytes
Versions: 14
Compression:
Stored size: 777 Bytes
Contents
# frozen_string_literal: true require "ostruct" module Heya module Campaigns class Step < OpenStruct include GlobalID::Identification def self.find(id) campaign_name, _step_name = id.to_s.split("/") campaign_name.constantize.steps.find { |s| s.id == id } end def initialize(id:, name:, campaign:, position:, action:, wait:, segment:, queue:, params: {}) super if action.respond_to?(:validate_step) action.validate_step(self) end end def gid to_gid(app: "heya").to_s end def in_segment?(user) Heya.in_segments?(user, *campaign.__segments, segment) end def campaign_name @campaign_name ||= campaign.name end end end end
Version data entries
14 entries across 14 versions & 1 rubygems