Sha256: f4e1916637328994a2a73157fca3d233631b0010a7f4fc1e399ab6d4b214f8b8

Contents?: true

Size: 715 Bytes

Versions: 2

Compression:

Stored size: 715 Bytes

Contents

require 'transproc/registry'

module ROM
  class Changeset
    class Pipe
      extend Transproc::Registry

      attr_reader :processor

      def self.add_timestamps(data)
        now = Time.now
        data.merge(created_at: now, updated_at: now)
      end

      def self.touch(data)
        data.merge(updated_at: Time.now)
      end

      def initialize(processor = nil)
        @processor = processor
      end

      def >>(other)
        if processor
          self.class.new(processor >> other)
        else
          self.class.new(other)
        end
      end

      def call(data)
        if processor
          processor.call(data)
        else
          data
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rom-repository-0.3.1 lib/rom/repository/changeset/pipe.rb
rom-repository-0.3.0 lib/rom/repository/changeset/pipe.rb