Sha256: 48c58d7064be39f3ce0a88305125da4f7716fc2559e5d685bf355d33c7c8a590

Contents?: true

Size: 774 Bytes

Versions: 11

Compression:

Stored size: 774 Bytes

Contents

module Trackman
  module Assets
    module Components
      module Shippable
        def ship diff
          to_ship = diff.inject([])do |memo, (k, v)| 
            memo + v.map{ |x| {:proc => build_proc(k, x), :value => x} }
          end
          
          to_ship.sort_by{ |x| x[:value] }.each do |x| 
            x[:proc].call
          end 
        end
      private 
        def build_proc symbol, instance 
          case symbol
          when :update
            proc = Proc.new { instance.update }
          when :create
            proc = Proc.new { instance.insert }
          when :delete
            proc = Proc.new { instance.delete }
          else
            raise "something is wrong."
          end
          proc
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
trackman-0.5.4 lib/trackman/assets/components/shippable.rb
trackman-0.5.3 lib/trackman/assets/components/shippable.rb
trackman-0.5.2 lib/trackman/assets/components/shippable.rb
trackman-0.5.1 lib/trackman/assets/components/shippable.rb
trackman-0.5.0 lib/trackman/assets/components/shippable.rb
trackman-0.4.8 lib/trackman/assets/components/shippable.rb
trackman-0.4.7 lib/trackman/assets/components/shippable.rb
trackman-0.4.6 lib/trackman/assets/components/shippable.rb
trackman-0.4.5 lib/trackman/assets/components/shippable.rb
trackman-0.4.4 lib/trackman/assets/components/shippable.rb
trackman-0.4.3 lib/trackman/assets/components/shippable.rb