Sha256: 14d5fc0c284a93a6d9baa3bd2d7e71b0e3da1a9b0c5af34f0b790612f51f3d69

Contents?: true

Size: 1.43 KB

Versions: 5

Compression:

Stored size: 1.43 KB

Contents

module Quandl
module Command
class Task

module Dependable
  
  extend ActiveSupport::Concern
  
  included do
    before_call :require_dependencies
  end
  
  module ClassMethods
    
    def autoload_quandl_client
      before_call :autoload_quandl_client
    end
    
    def disable_in_gem!
      before_call :disable_in_gem!
    end
    
    def depends(*args)
      args.each do |arg|
        arg = arg.to_s
        self.dependencies << arg unless dependencies.include?(arg)
      end
    end
    
    def dependencies
      @dependencies ||= []
    end

  end
  
  private
  
  def require_dependencies
    self.class.dependencies.each do |d|
      debug("require #{d}")
      require(d)
    end
    true
  end
  
  def disable_in_gem!
    if force_yes?
      info("You have forced update!")
      true
    elsif Dir.exists?( File.join( Tasks.root, ".git") ) || File.exists?( File.join( Tasks.root, "Gemfile") )
      fatal("#{self.class.command_name} is only permitted when installed as a package! http://quandl.com/help/toolbelt") 
      false
    end
  end
  
  def autoload_quandl_client
    require 'thread/pool'
    require 'quandl/format'
    require 'quandl/command/client_ext'
    Quandl::Client.use( quandl_url )
    Quandl::Client.token = auth_token
    Quandl::Client.request_source = 'quandl_command'
    Quandl::Client.request_version = Quandl::Command::VERSION
    Quandl::Client.request_platform = request_platform
  end
  
end

end
end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
quandl-0.4.4 lib/quandl/command/task/dependable.rb
quandl-0.4.3 lib/quandl/command/task/dependable.rb
quandl-0.4.2 lib/quandl/command/task/dependable.rb
quandl-0.4.1 lib/quandl/command/task/dependable.rb
quandl-0.4.0 lib/quandl/command/task/dependable.rb