Sha256: a3ece035ab8f2604e1a546d2a7b7bdfa3e05f284b52b0f4972fc38815f9e6cb8

Contents?: true

Size: 1.11 KB

Versions: 7

Compression:

Stored size: 1.11 KB

Contents

require 'net/ftp'
require 'net/ssh'

require 'active_support/configurable'

module XFTP
  # Provides a way to store and retrive configuration options
  class Configuration
    include ActiveSupport::Configurable

    class << self
      # HACK: This is required to smooth a future transition to activesupport 4.x
      # Since 3-2's config_accessor doesn't take a block or provide an option to set the default value of a config.
      alias_method :old_config_accessor, :config_accessor

      def config_accessor(*names)
        old_config_accessor(*names)
        return unless block_given?

        names.each do |name|
          send("#{name}=", yield)
        end
      end
    end

    config_accessor :logger do
      defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
    end

    config_accessor :ftp do
      {
        binary: true,
        passive: true,
        debug_mode: false,
        open_timeout: nil,
        resume: false
      }
    end

    config_accessor :ssh do
      {
        keepalive: true,
        keepalive_interval: 30,
        forward_agent: true,
        verbose: :error
      }
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
xftp-0.5.0 lib/configuration.rb
xftp-0.4.4 lib/configuration.rb
xftp-0.4.3 lib/configuration.rb
xftp-0.4.2 lib/configuration.rb
xftp-0.4.1 lib/configuration.rb
xftp-0.3.3 lib/configuration.rb
xftp-0.3.1 lib/configuration.rb