sparkapi/spark_api

View on GitHub
lib/spark_api/cli/setup.rb

Summary

Maintainability
A
35 mins
Test Coverage
require "rubygems"
require 'pp'
require 'irb/ext/save-history'
IRB.conf[:SAVE_HISTORY] = 1000
IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.spark-api-history"

if ENV["SPARK_API_CONSOLE"].nil?
  require 'spark_api'
else
  puts "Enabling console mode for local gem"
  Bundler.require(:default, "development") if defined?(Bundler)
  path = File.expand_path(File.dirname(__FILE__) + "/../../../lib/")
  $LOAD_PATH.unshift(path) unless $LOAD_PATH.include?(path)
  require path + '/spark_api'
end

IRB.conf[:AUTO_INDENT]=true
IRB.conf[:PROMPT][:SPARK]= {
  :PROMPT_I => "SparkApi:%03n:%i> ",
  :PROMPT_S => "SparkApi:%03n:%i%l ",
  :PROMPT_C => "SparkApi:%03n:%i* ",
  :RETURN => "%s\n"
} 

IRB.conf[:PROMPT_MODE] = :SPARK

path = File.expand_path(File.dirname(__FILE__) + "/../../../lib/")
$LOAD_PATH.unshift(path) unless $LOAD_PATH.include?(path)
require path + '/spark_api'

module SparkApi
  def self.logger
    if @logger.nil?
      @logger = Logger.new(STDOUT)
      @logger.level = ENV["DEBUG"].nil? ? Logger::WARN : Logger::DEBUG
    end
    @logger
  end
end

SparkApi.logger.info("Client configured!")

include SparkApi::Models

def c
  SparkApi.client
end

# Straight up HTTP functions y'all!!!

def get(path, options={})
  c.get(path, options)
end

def post(path, body = nil, options={})
  c.post(path, body, options)
end

def put(path, body = nil, options={})
  c.put(path, body, options)
end

def delete(path, options={})
  c.delete(path, options)
end

# Handy session persistence
def save_oauth2_session! session_alias = "default"
  
rescue => e
  puts "Unable to save the oauth2 session: #{e.message}"
end  

def load_oauth2_session session_alias = "default"
  c.oauth2_provider.session = ""
rescue => e
  puts "Unable to find a saved oauth2 session: #{e.message}"
end