Sha256: 50e46a4de43e7ef660dc933d804b488a01d1e485506ca043f137f7c63d6de9c9

Contents?: true

Size: 776 Bytes

Versions: 43

Compression:

Stored size: 776 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.create! }
          when :delete
            proc = Proc.new { instance.delete }
          else
            raise "something is wrong."
          end
          proc
        end
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
trackman-0.4.2 lib/trackman/assets/components/shippable.rb
trackman-0.4.1 lib/trackman/assets/components/shippable.rb
trackman-0.4.0 lib/trackman/assets/components/shippable.rb
trackman-0.3.5 lib/trackman/assets/components/shippable.rb
trackman-0.3.4 lib/trackman/assets/components/shippable.rb
trackman-0.3.2 lib/trackman/assets/components/shippable.rb
trackman-0.3.1 lib/trackman/assets/components/shippable.rb
trackman-0.3.0 lib/trackman/assets/components/shippable.rb
trackman-0.2.90 lib/trackman/assets/components/shippable.rb
trackman-0.2.89 lib/trackman/assets/components/shippable.rb
trackman-0.2.88 lib/trackman/assets/components/shippable.rb
trackman-0.2.87 lib/trackman/assets/components/shippable.rb
trackman-0.2.86 lib/trackman/assets/components/shippable.rb
trackman-0.2.85 lib/trackman/assets/components/shippable.rb
trackman-0.2.84 lib/trackman/assets/components/shippable.rb
trackman-0.2.83 lib/trackman/assets/components/shippable.rb
trackman-0.2.82 lib/trackman/assets/components/shippable.rb
trackman-0.2.81 lib/trackman/assets/components/shippable.rb
trackman-0.2.80 lib/trackman/assets/components/shippable.rb
trackman-0.2.65 lib/trackman/assets/components/shippable.rb