activesalesforce 0.5.0 → 0.5.1
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/asf_adapter.rb +24 -22
- metadata +1 -1
data/lib/asf_adapter.rb
CHANGED
@@ -105,7 +105,7 @@ module ActiveRecord
|
|
105
105
|
|
106
106
|
MAX_BOXCAR_SIZE = 200
|
107
107
|
|
108
|
-
attr_accessor :batch_size
|
108
|
+
attr_accessor :batch_size, :auto_create_stubs
|
109
109
|
attr_reader :entity_def_map, :keyprefix_to_entity_def_map, :config, :class_to_entity_map
|
110
110
|
|
111
111
|
def initialize(connection, logger, connection_options, config)
|
@@ -118,6 +118,8 @@ module ActiveRecord
|
|
118
118
|
|
119
119
|
@command_boxcar = []
|
120
120
|
@class_to_entity_map = {}
|
121
|
+
|
122
|
+
@auto_create_stubs = false
|
121
123
|
end
|
122
124
|
|
123
125
|
|
@@ -568,9 +570,6 @@ module ActiveRecord
|
|
568
570
|
|
569
571
|
klass.set_inheritance_column nil unless entity_def.custom?
|
570
572
|
klass.set_primary_key "id"
|
571
|
-
klass.lock_optimistically = false
|
572
|
-
klass.record_timestamps = false
|
573
|
-
klass.default_timezone = :utc
|
574
573
|
|
575
574
|
# Create relationships for any reference field
|
576
575
|
entity_def.relationships.each do |relationship|
|
@@ -588,30 +587,33 @@ module ActiveRecord
|
|
588
587
|
end
|
589
588
|
|
590
589
|
# Handle references to custom objects
|
591
|
-
reference_to = reference_to.chop.
|
590
|
+
reference_to = reference_to.chop(3).capitalize if reference_to.match(/__c$/)
|
592
591
|
|
593
592
|
begin
|
594
593
|
referenced_klass = class_from_entity_name(reference_to)
|
595
594
|
rescue NameError => e
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
|
607
|
-
if one_to_many
|
608
|
-
klass.has_many referenceName.to_sym, :class_name => referenced_klass.name, :foreign_key => foreign_key, :dependent => false
|
609
|
-
else
|
610
|
-
klass.belongs_to referenceName.to_sym, :class_name => referenced_klass.name, :foreign_key => foreign_key, :dependent => false
|
595
|
+
if auto_create_stubs
|
596
|
+
# Automatically create a least a stub for the referenced entity
|
597
|
+
@logger.debug(" Creating ActiveRecord stub for the referenced entity '#{reference_to}'")
|
598
|
+
|
599
|
+
referenced_klass = klass.class_eval("::#{reference_to} = Class.new(ActiveRecord::Base)")
|
600
|
+
|
601
|
+
# Automatically inherit the connection from the referencee
|
602
|
+
referenced_klass.connection = klass.connection
|
603
|
+
|
604
|
+
# configure_active_record(get_entity_def(reference_to))
|
605
|
+
end
|
611
606
|
end
|
612
607
|
|
613
|
-
|
614
|
-
|
608
|
+
if referenced_klass
|
609
|
+
if one_to_many
|
610
|
+
klass.has_many referenceName.to_sym, :class_name => referenced_klass.name, :foreign_key => foreign_key, :dependent => false
|
611
|
+
else
|
612
|
+
klass.belongs_to referenceName.to_sym, :class_name => referenced_klass.name, :foreign_key => foreign_key, :dependent => false
|
613
|
+
end
|
614
|
+
|
615
|
+
@logger.debug(" Created one-to-#{one_to_many ? 'many' : 'one' } relationship '#{referenceName}' from #{klass} to #{referenced_klass} using #{foreign_key}")
|
616
|
+
end
|
615
617
|
end
|
616
618
|
end
|
617
619
|
|
metadata
CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.8.11
|
|
3
3
|
specification_version: 1
|
4
4
|
name: activesalesforce
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.5.
|
6
|
+
version: 0.5.1
|
7
7
|
date: 2006-04-13 00:00:00 -04:00
|
8
8
|
summary: ActiveSalesforce (ASF) is a Rails connection adapter that provides direct access to Salesforce.com hosted data and metadata via the ActiveRecord model layer. Objects, fields, and relationships are all auto surfaced as active record attributes and rels.
|
9
9
|
require_paths:
|