unixmonkey / activerecord-activesalesforce-adapter

An ActiveRecord adapter for the Salesforce.com API

Home Page:http://activesfdc.rubyforge.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Welcome to Active Salesforce

ActiveSalesforce is an extension to the Rails Framework that allows for the dynamic creation and management of ActiveRecord objects through the use of Salesforce meta-data and uses a Salesforce.com organization as the backing store.

See notes below about my fork.

Installation

I have a compiled build in my Downloads area or clone my repo, build the gem, and install.

Getting started

  1. If you have not already done so generate your initial rails app:

     rails myappname
    
  2. Edit config/environment.rb and add a config.gem requirement:

     Rails::Initializer.run do |config|
       ...
       config.gem "silent-e-activerecord-activesalesforce-adapter", :lib => 'activerecord-activesalesforce-adapter'
       ...
     end
    
  3. Edit database.yml

     development:
       adapter: activesalesforce
       username: <salesforce user name goes here>
       password: <salesforce password goes here>
    

    NOTE: "url" is an optional parameter. If you want to access your Salesforce Sandbox account add the following line.

     url: https://test.salesforce.com
    
  4. Create your salesforce models using a Salesforce:: namespace.

     script/generate model Salesforce::Contact
    
  5. Run a quick test to make sure things are working

     > script/console
     Loading development environment (Rails 2.3.9)
    
     >> Salesforce::Contact.first
     => <Salesforce::Contact id: "003T000000GqvJsIAJ", ... >
    
  6. Proceed using standard Rails development techniques!

Advanced Features

  1. Session ID based Authentication: Add the following to /app/controllers/application.rb to enable SID auth for all controllers

     class ApplicationController < ActionController::Base
       before_filter ActiveSalesforce::SessionIDAuthenticationFilter
     end
    
  2. Boxcar'ing of updates, inserts, and deletes. Use .transaction() to demark boxcar boundaries.

Description of contents

lib
Application specific libraries. Basically, any kind of custom code that doesn't belong under controllers, models, or helpers. This directory is in the load path.
script
Helper scripts for automation and generation.
test
Unit and functional tests along with fixtures.

Note about my (silent-e) fork

I created this fork to fix a problem I was having with SELECT statements. Salesforce enforces single-quote escaping in strings with a backspace in WHERE condition expressions. However, in INSERT and UPDATE statements the VALUES are escaped with two consecutive single-quotes. See the table below for a visual explanation of my clumsy text one. :)

This fork specifically tweaks SELECT WHERE conditions and is based on blaines work on bringing ASF up to speed with Rails 3. I will attempt to keep it in step with blaines work until we can get a consensus and possibly get a official update to the canonical ASF gem.

Query Type Escape sequence required
WHERE (conditionExpression)... WHERE (Name = 'Let\'s do the Time Warp again!')
INSERT/UPDATE ... VALUES ('Let''s do the Time Warp again!')

About

An ActiveRecord adapter for the Salesforce.com API

http://activesfdc.rubyforge.org/