Sha256: 517bfe9e6e5e0fdb378d12126a659e4c678e5bafbb743b9171c30e32876cfe1d

Contents?: true

Size: 378 Bytes

Versions: 2

Compression:

Stored size: 378 Bytes

Contents

module Ahoy
  module Model
    def visitable(name = :visit, **options)
      class_eval do
        belongs_to(name, optional: true, class_name: "Ahoy::Visit", **options)
        before_create :set_ahoy_visit
      end
      class_eval %{
        def set_ahoy_visit
          self.#{name} ||= RequestStore.store[:ahoy].try(:visit_or_create)
        end
      }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ahoy_matey-2.0.2 lib/ahoy/model.rb
ahoy_matey-2.0.1 lib/ahoy/model.rb