Sha256: 425776b3d4423065ed183dcb0d8060ea464ad225700971fcddbea9e220eb6886

Contents?: true

Size: 1.42 KB

Versions: 29

Compression:

Stored size: 1.42 KB

Contents

module Localeapp
  module CLI
    class Push < Command
      include ::Localeapp::ApiCall

      def execute(path = nil)
        @output.puts "Localeapp Push"
        if path_is_directory?(path)
          yaml_files_in_directory(path).each do |path|
            push_file(path)
          end
        else
          push_file(path)
        end
      end

      def push_file(file_path)
        @output.puts ""
        @file_path = file_path # for callbacks
        file = sanitize_file(file_path)
        if file
          @output.puts "Pushing file #{File.basename(file_path)}:"
          api_call :import,
            :payload => { :file => file },
            :success => :report_success,
            :failure => :report_failure,
            :max_connection_attempts => 3
        else
          @output.puts "Could not load file"
        end
      end

      def report_success(response)
        @output.puts "Success!"
        @output.puts ""
        @output.puts "#{@file_path} queued for processing."
      end

      def report_failure(response)
        @output.puts "Failed!"
      end

      private
      def sanitize_file(file_path)
        if File.exist?(file_path)
          File.new(file_path)
        else
          nil
        end
      end

      def path_is_directory?(path)
        File.directory?(path)
      end

      def yaml_files_in_directory(path)
        Dir.glob(File.join(path, '*.yml')).sort
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
localeapp-2.1.1 lib/localeapp/cli/push.rb
localeapp-2.1.0 lib/localeapp/cli/push.rb
localeapp-2.0.0 lib/localeapp/cli/push.rb
localeapp-1.0.2 lib/localeapp/cli/push.rb
localeapp-1.0.1 lib/localeapp/cli/push.rb
localeapp-1.0.0 lib/localeapp/cli/push.rb
localeapp-0.9.3 lib/localeapp/cli/push.rb
localeapp-0.9.2 lib/localeapp/cli/push.rb
localeapp-0.9.1 lib/localeapp/cli/push.rb
localeapp-0.9.0 lib/localeapp/cli/push.rb
localeapp-0.8.1 lib/localeapp/cli/push.rb
localeapp-0.8.0 lib/localeapp/cli/push.rb
localeapp-0.7.2 lib/localeapp/cli/push.rb
localeapp-0.7.1 lib/localeapp/cli/push.rb
localeapp-0.7.0 lib/localeapp/cli/push.rb
localeapp-0.6.14 lib/localeapp/cli/push.rb
localeapp-0.6.13 lib/localeapp/cli/push.rb
localeapp-0.6.12 lib/localeapp/cli/push.rb
localeapp-0.6.10 lib/localeapp/cli/push.rb
localeapp-0.6.9 lib/localeapp/cli/push.rb