active_force 0.0.7.alfa → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c7c95ee692d2b9302abc561d8b75abb46471cb3e
4
- data.tar.gz: 57cf7fbe1dabbddcba08399cf23aa7e21ec0d80d
3
+ metadata.gz: acf8e175727f61a6fc99099804f1759a8539d11f
4
+ data.tar.gz: df64cceabf34fba0ff538283ac59b278b91acf98
5
5
  SHA512:
6
- metadata.gz: 04ee4308094ca54cf96a9a9f940a2512598c9bde125ac79ad78ed3168aeb9e3106ad9b4236b02ed8d527102a677897b8fba73e49b349eaa2dd40d961d4a519bf
7
- data.tar.gz: fa2590afa762d3c94e8b53197f5168dcd95b4560a364e64425e6280563b174e2d60655404d28c851d95dd529040894bf628e883a6735e76e1970eaf5f7c6c7a0
6
+ metadata.gz: 5f32456704f543150f8d8f7ba414adfade927cea8f3abe9ea0d847f43ab1dd3f74644d15e607961759f98538315fd9d7ab72c872c0284eb9012bc0ce97081237
7
+ data.tar.gz: c410492b5afdf5e9110415ae1abe3f5869df4806e4d77af708573f335e2fda9143b4bae722a544d64da08f4ad58ec786bc30b344caa90994fc3b6216a2c30642
data/README.md CHANGED
@@ -1,5 +1,10 @@
1
- # ActiveForce [![Code Climate](https://codeclimate.com/github/eloyesp/active_force.png)](https://codeclimate.com/github/eloyesp/active_force)
2
- TODO: Write a gem description
1
+ [![Gem Version](http://img.shields.io/gem/v/active_force.svg)](http://badge.fury.io/rb/active_force)
2
+ [![Code Climate](http://img.shields.io/codeclimate/github/eloyesp/active_force.svg)](https://codeclimate.com/github/eloyesp/active_force)
3
+
4
+ # ActiveForce
5
+
6
+ A ruby gem to interact with SalesForce as if it were Active Record. It
7
+ uses Restforce to interact with the API, so it is fast and stable.
3
8
 
4
9
  ## Installation
5
10
 
@@ -17,7 +22,66 @@ Or install it yourself as:
17
22
 
18
23
  ## Usage
19
24
 
20
- TODO: Write usage instructions here
25
+ ### Define a class
26
+
27
+ ```ruby
28
+ class Page < ActiveForce::SObject
29
+
30
+ end
31
+ ```
32
+
33
+ ### Add Attributes
34
+ ```ruby
35
+ class Page < ActiveForce::SObject
36
+ #field, attribute name. from: 'Name in Salesforce database'
37
+ field :id, from: 'Id'
38
+ field :name, from: 'Medication__c'
39
+ self.fields = mappings.values
40
+ #set SalesForce table name.
41
+ self.table_name = 'Patient_Medication__c'
42
+ end
43
+ ```
44
+ ### Relation ships
45
+
46
+ #### Has Many
47
+
48
+ ```ruby
49
+ class Account < ActiveForce::SObject
50
+ has_many :pages
51
+ end
52
+
53
+ class Page < ActiveForce::SObject
54
+ field :account_id, from: 'Account__c'
55
+ end
56
+ ```
57
+
58
+ you could send a option parameter in the declaration.
59
+
60
+ ```ruby
61
+ class Account < ActiveForce::SObject
62
+ has_many :medications,
63
+ where: "(Date_Discontinued__c > #{ Date.today.strftime("%Y-%m-%d") } or Date_Discontinued__c = NULL)"
64
+
65
+ has_many :today_log_entrys,
66
+ model: DailyLogEntry,
67
+ where: "Date__c = #{ Time.now.in_time_zone.strftime("%Y-%m-%d") }"
68
+
69
+ has_many :labs,
70
+ where: "Category__c = 'EMR' And Date__c <> NULL",
71
+ order: 'Date__c DESC'
72
+ end
73
+ ```
74
+
75
+ #### Belongs to
76
+ ```ruby
77
+ class Account < ActiveForce::SObject
78
+ end
79
+
80
+ class Page < ActiveForce::SObject
81
+ field :account_id, from: 'Account__c'
82
+ belongs_to :account
83
+ end
84
+ ```
21
85
 
22
86
  ## Contributing
23
87
 
data/lib/active_force.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'active_force/version'
2
2
  require 'active_force/sobject'
3
+ require 'active_force/query'
3
4
 
4
5
  module ActiveForce
5
6
  end
@@ -0,0 +1,39 @@
1
+ require 'active_force/query'
2
+
3
+ module ActiveForce
4
+ module Association
5
+ module ClassMethods
6
+ def has_many relation_name, options = {}
7
+ model = options[:model] || relation_model(relation_name)
8
+ association_name = options[:table] || model.table_name || "#{ model }__c"
9
+ foreing_key = options[:foreing_key] || default_foreing_key(model, self.name) || table_name
10
+
11
+ define_method "#{ relation_name }_query" do
12
+ query = ActiveForce::Query.new(association_name)
13
+ query.fields model.fields
14
+ query.where(options[:where]) if options[:where]
15
+ query.order(options[:order]) if options[:order]
16
+ query.limit(options[:limit]) if options[:limit]
17
+ query.where("#{ foreing_key } = '#{ id }'")
18
+ query
19
+ end
20
+ end
21
+
22
+ def relation_model sym
23
+ sym.to_s.singularize.camelcase.constantize
24
+ end
25
+
26
+ def default_foreing_key relation_model, model
27
+ relation_model.mappings["#{model.downcase}_id".to_sym]
28
+ end
29
+
30
+ def belongs_to relation_name, options = {}
31
+ model = options[:model] || relation_model(relation_name)
32
+ foreing_key = options[:foreing_key] || "#{ relation_name }_id".to_sym
33
+ define_method "#{ relation_name }" do
34
+ model.find(self.send foreing_key)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,94 @@
1
+ module ActiveForce
2
+ class Query
3
+ attr_reader :table
4
+
5
+ attr_accessor :table_id
6
+
7
+ def initialize table
8
+ @table = table
9
+ @conditions = []
10
+ @table_id = 'Id'
11
+ @query_fields = [@table_id]
12
+ end
13
+
14
+ def fields fields_collection = []
15
+ @query_fields = @query_fields + fields_collection.to_a
16
+ end
17
+
18
+ def all
19
+ self
20
+ end
21
+
22
+ def to_s
23
+ query = <<-SOQL.gsub(/\s+/, " ").strip
24
+ SELECT
25
+ #{ @query_fields.uniq.join(', ') }
26
+ FROM
27
+ #{ @table }
28
+ #{ build_where }
29
+ #{ build_order }
30
+ #{ build_limit }
31
+ #{ build_offset }
32
+ SOQL
33
+ query
34
+ end
35
+
36
+ def where condition
37
+ @conditions << condition
38
+ self
39
+ end
40
+
41
+ def order order
42
+ @order = order
43
+ self
44
+ end
45
+
46
+ def limit size
47
+ @size = size
48
+ self
49
+ end
50
+
51
+ def limit_value
52
+ @size
53
+ end
54
+
55
+ def offset offset
56
+ @offset = offset
57
+ self
58
+ end
59
+
60
+ def offset_value
61
+ @offset
62
+ end
63
+
64
+ def find id
65
+ where "#{ @table_id } = '#{ id }'"
66
+ limit 1
67
+ self
68
+ end
69
+
70
+ def join object_query
71
+ fields ["(#{ object_query.to_s })"]
72
+ self
73
+ end
74
+
75
+ protected
76
+ def build_where
77
+ unless @conditions.empty?
78
+ "WHERE #{ @conditions.join(' AND ') }"
79
+ end
80
+ end
81
+
82
+ def build_limit
83
+ "LIMIT #{ @size }" if @size
84
+ end
85
+
86
+ def build_order
87
+ "ORDER BY #{ @order }" if @order
88
+ end
89
+
90
+ def build_offset
91
+ "OFFSET #{ @offset }" if @offset
92
+ end
93
+ end
94
+ end
@@ -1,14 +1,19 @@
1
1
  require 'active_model'
2
2
  require 'active_attr'
3
3
  require 'active_attr/dirty'
4
+ require 'active_force/query'
5
+ require 'active_force/association'
6
+ require 'yaml'
4
7
 
5
8
  module ActiveForce
6
9
  class SObject
7
10
  include ActiveAttr::Model
8
11
  include ActiveAttr::Dirty
12
+ include ActiveForce::Association
9
13
 
10
- # Types recognised don't get the added "__c"
11
- STANDARD_TYPES = %w[ Account Contact Opportunity ]
14
+ extend ClassMethods
15
+
16
+ STANDARD_TYPES = %w[ Account Contact Opportunity Campaign]
12
17
 
13
18
  class_attribute :mappings, :fields, :table_name
14
19
 
@@ -22,6 +27,14 @@ module ActiveForce
22
27
  end
23
28
  end
24
29
 
30
+ def self.has_many relation_name, options = {}
31
+ super
32
+ model = options[:model] || relation_model(relation_name)
33
+ define_method relation_name do
34
+ model.send_query(self.send "#{ relation_name }_query".to_sym)
35
+ end
36
+ end
37
+
25
38
  def self.build sobject
26
39
  return nil if sobject.nil?
27
40
  model = new
@@ -32,37 +45,51 @@ module ActiveForce
32
45
  model
33
46
  end
34
47
 
48
+ def self.query
49
+ query = ActiveForce::Query.new(table_name)
50
+ query.fields fields
51
+ query
52
+ end
53
+
35
54
  def self.all
36
- all = Client.query(<<-SOQL.strip_heredoc).to_a
37
- SELECT
38
- #{ fields.join(', ') }
39
- FROM
40
- #{ table_name }
41
- SOQL
42
- all.map do |mash|
55
+ send_query query
56
+ end
57
+
58
+ def self.send_query query
59
+ Client.query(query.to_s).to_a.map do |mash|
43
60
  build mash
44
61
  end
45
62
  end
46
63
 
47
64
  def self.find id
48
- build Client.query(<<-SOQL.strip_heredoc).first
49
- SELECT #{fields.join(', ')}
50
- FROM #{table_name}
51
- WHERE Id = '#{id}'
52
- SOQL
65
+ send_query(query.find(id)).first
53
66
  end
54
67
 
55
- def self.create(attributes = nil, &block)
56
- if attributes.is_a?(Array)
57
- attributes.collect { |attr| create(attr, &block) }
58
- else
59
- object = new(attributes, &block)
60
- object.create
61
- object
68
+ def update_attributes! attributes = {}
69
+ assign_attributes attributes
70
+ return false unless valid?
71
+ sobject_hash = { 'Id' => id }
72
+ changed.each do |field|
73
+ sobject_hash[mappings[field.to_sym]] = read_attribute(field)
62
74
  end
75
+ result = Client.update! table_name, sobject_hash
76
+ changed_attributes.clear
77
+ result
63
78
  end
64
79
 
65
- def create
80
+ def update_attributes attributes = {}
81
+ update_attributes! attributes
82
+ rescue Faraday::Error::ClientError => error
83
+ Rails.logger.info do
84
+ "[SFDC] [#{self.class.model_name}] [#{self.class.table_name}] Error while updating, params: #{hash}, error: #{error.inspect}"
85
+ end
86
+ errors[:base] << error.message
87
+ false
88
+ end
89
+
90
+ alias_method :update, :update_attributes
91
+
92
+ def create!
66
93
  return false unless valid?
67
94
  hash = {}
68
95
  mappings.map do |field, name_in_sfdc|
@@ -71,26 +98,23 @@ module ActiveForce
71
98
  end
72
99
  self.id = Client.create! table_name, hash
73
100
  changed_attributes.clear
101
+ end
102
+
103
+ def create
104
+ create!
74
105
  rescue Faraday::Error::ClientError => error
75
- Rails.logger.warn do
106
+ Rails.logger.info do
76
107
  "[SFDC] [#{self.class.model_name}] [#{self.class.table_name}] Error while creating, params: #{hash}, error: #{error.inspect}"
77
108
  end
78
109
  errors[:base] << error.message
79
110
  false
80
111
  end
81
112
 
82
- def update_attributes attributes
83
- assign_attributes attributes
84
- if valid?
85
- sobject_hash = { 'Id' => id }
86
- changed.each do |field|
87
- sobject_hash[mappings[field.to_sym]] = read_attribute(field)
88
- end
89
- result = Client.update table_name, sobject_hash
90
- changed_attributes.clear if result
91
- result
113
+ def save
114
+ if persisted?
115
+ update
92
116
  else
93
- false
117
+ create
94
118
  end
95
119
  end
96
120
 
@@ -1,3 +1,3 @@
1
1
  module ActiveForce
2
- VERSION = "0.0.7.alfa"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -0,0 +1,86 @@
1
+ require 'spec_helper'
2
+ require 'active_force/association'
3
+
4
+ describe ActiveForce::SObject do
5
+
6
+ before do
7
+ class Post < ActiveForce::SObject
8
+ self.table_name = "Post__c"
9
+ end
10
+
11
+ class Comment < ActiveForce::SObject
12
+ self.table_name = "Comment__c"
13
+ end
14
+ end
15
+
16
+ describe "has_many_query" do
17
+
18
+ before do
19
+ class Post < ActiveForce::SObject
20
+ has_many :comments
21
+ end
22
+
23
+ @post = Post.new
24
+ @post.stub(:id).and_return("1")
25
+ end
26
+
27
+ it "should return a Query object" do
28
+ @post.comments_query.class.should be ActiveForce::Query
29
+ end
30
+
31
+ describe 'to_s' do
32
+ it "should retrun a OSQL statment" do
33
+ @post.comments_query.to_s.should ==
34
+ "SELECT Id FROM Comment__c WHERE Post__c = '1'"
35
+ end
36
+ end
37
+ end
38
+
39
+ describe 'has_many(options)' do
40
+
41
+ it 'should allow to send a different query table name' do
42
+ class Post < ActiveForce::SObject
43
+ has_many :comments, { table: 'Comment' }
44
+ end
45
+ @post = Post.new
46
+ @post.stub(:id).and_return("1")
47
+ @post.comments_query.to_s.should ==
48
+ "SELECT Id FROM Comment WHERE Post__c = '1'"
49
+ end
50
+
51
+ it 'should allow to change the foreing key' do
52
+ class Post < ActiveForce::SObject
53
+ has_many :comments, { foreing_key: 'Post' }
54
+ end
55
+ @post = Post.new
56
+ @post.stub(:id).and_return("1")
57
+ @post.comments_query.to_s.should ==
58
+ "SELECT Id FROM Comment__c WHERE Post = '1'"
59
+ end
60
+
61
+ it 'should allow to add a where condition' do
62
+ class Post < ActiveForce::SObject
63
+ has_many :comments, { where: '1 = 1' }
64
+ end
65
+ @post = Post.new
66
+ @post.stub(:id).and_return("1")
67
+ @post.comments_query.to_s.should ==
68
+ "SELECT Id FROM Comment__c WHERE 1 = 1 AND Post__c = '1'"
69
+ end
70
+
71
+ it 'should use a convention name for the foreing key' do
72
+ class Comment < ActiveForce::SObject
73
+ field :post_id, from: 'PostId'
74
+ end
75
+
76
+ class Post < ActiveForce::SObject
77
+ has_many :comments
78
+ end
79
+
80
+ @post = Post.new
81
+ @post.stub(:id).and_return("1")
82
+ @post.comments_query.to_s.should ==
83
+ "SELECT Id FROM Comment__c WHERE PostId = '1'"
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,101 @@
1
+ require 'spec_helper'
2
+ require 'active_force/query'
3
+
4
+ describe ActiveForce::Query do
5
+
6
+ before do
7
+ @query = ActiveForce::Query.new 'table_name'
8
+ @query.fields ['name', 'etc']
9
+ end
10
+
11
+ after do
12
+ end
13
+
14
+ describe ".all" do
15
+ it "table should return table name" do
16
+ @query.all.table.should be(@query.table)
17
+ end
18
+
19
+ it "fields should return fields" do
20
+ @query.all.fields.should == @query.fields
21
+ end
22
+ end
23
+
24
+ describe ".all.to_s" do
25
+ it "should return a query for all records" do
26
+ @query.all.to_s.should == "SELECT Id, name, etc FROM table_name"
27
+ end
28
+
29
+ it "should ignore dupicated attributes in select statment" do
30
+ @query.fields ['Id', 'name', 'etc']
31
+ @query.all.to_s.should == "SELECT Id, name, etc FROM table_name"
32
+ end
33
+ end
34
+
35
+ describe ".where" do
36
+ it "should add a where condition to a query" do
37
+ @query.where("name like '%a%'").to_s.should == "SELECT Id, name, etc FROM table_name WHERE name like '%a%'"
38
+ end
39
+
40
+ it "should add multiples conditions to a query" do
41
+ @query.where("condition1 = 1").where("condition2 = 2").to_s.should ==
42
+ "SELECT Id, name, etc FROM table_name WHERE condition1 = 1 AND condition2 = 2"
43
+ end
44
+ end
45
+
46
+ describe ".limit" do
47
+ it "should add a limit to a query" do
48
+ @query.limit("25").to_s.should == "SELECT Id, name, etc FROM table_name LIMIT 25"
49
+ end
50
+ end
51
+
52
+ describe ".limit_value" do
53
+ it "should return the limit value" do
54
+ @query.limit(4)
55
+ @query.limit_value.should == 4
56
+ end
57
+ end
58
+
59
+ describe ".offset" do
60
+ it "should add an offset to a query" do
61
+ @query.offset(4).to_s.should == "SELECT Id, name, etc FROM table_name OFFSET 4"
62
+ end
63
+ end
64
+
65
+ describe ".offset_value" do
66
+ it "should return the offset value" do
67
+ @query.offset(4)
68
+ @query.offset_value.should == 4
69
+ end
70
+ end
71
+
72
+ describe ".find.to_s" do
73
+ it "should return a query for 1 record" do
74
+ @query.find(2).to_s.should == "SELECT Id, name, etc FROM table_name WHERE Id = '2' LIMIT 1"
75
+ end
76
+ end
77
+
78
+ describe ".order" do
79
+ it "should add a order condition in the statment" do
80
+ @query.order("name desc").to_s.should == "SELECT Id, name, etc FROM table_name ORDER BY name desc"
81
+ end
82
+
83
+ it "should add a order condition in the statment with WHERE and LIMIT" do
84
+ @query.where("condition1 = 1").order("name desc").limit(1).to_s.should ==
85
+ "SELECT Id, name, etc FROM table_name WHERE condition1 = 1 ORDER BY name desc LIMIT 1"
86
+ end
87
+ end
88
+
89
+ describe '.join' do
90
+
91
+ before do
92
+ @join = ActiveForce::Query.new 'join_table_name'
93
+ @join.fields ['name', 'etc']
94
+ end
95
+
96
+ it 'sould add another select statment on the current select' do
97
+ @query.join(@join).to_s.should ==
98
+ 'SELECT Id, name, etc, (SELECT Id, name, etc FROM join_table_name) FROM table_name'
99
+ end
100
+ end
101
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_force
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7.alfa
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eloy Espinaco
@@ -9,90 +9,90 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-17 00:00:00.000000000 Z
12
+ date: 2014-05-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: active_attr
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ~>
18
+ - - "~>"
19
19
  - !ruby/object:Gem::Version
20
20
  version: '0.8'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ~>
25
+ - - "~>"
26
26
  - !ruby/object:Gem::Version
27
27
  version: '0.8'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: restforce
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ~>
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
34
  version: '1.4'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ~>
39
+ - - "~>"
40
40
  - !ruby/object:Gem::Version
41
41
  version: '1.4'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: bundler
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ~>
46
+ - - "~>"
47
47
  - !ruby/object:Gem::Version
48
48
  version: '1.3'
49
49
  type: :development
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - ~>
53
+ - - "~>"
54
54
  - !ruby/object:Gem::Version
55
55
  version: '1.3'
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: rake
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - '>='
60
+ - - ">="
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - '>='
67
+ - - ">="
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rspec
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - '>='
74
+ - - ">="
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - '>='
81
+ - - ">="
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: pry
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - '>='
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
90
  version: '0'
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - '>='
95
+ - - ">="
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
98
  description: Use SalesForce as an ActiveModel
@@ -101,9 +101,9 @@ executables: []
101
101
  extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
- - .gitignore
105
- - .rspec
106
- - .travis.yml
104
+ - ".gitignore"
105
+ - ".rspec"
106
+ - ".travis.yml"
107
107
  - CHANGELOG.md
108
108
  - Gemfile
109
109
  - LICENSE.txt
@@ -112,14 +112,18 @@ files:
112
112
  - active_force.gemspec
113
113
  - lib/active_attr/dirty.rb
114
114
  - lib/active_force.rb
115
+ - lib/active_force/association.rb
116
+ - lib/active_force/query.rb
115
117
  - lib/active_force/sobject.rb
116
118
  - lib/active_force/version.rb
117
119
  - lib/generators/active_force/active_force_model/USAGE
118
120
  - lib/generators/active_force/active_force_model/active_force_model_generator.rb
119
121
  - lib/generators/active_force/active_force_model/templates/model.rb.erb
122
+ - spec/active_force/association_spec.rb
120
123
  - spec/active_force/sobject/table_name_spec.rb
121
124
  - spec/active_force/sobject_spec.rb
122
125
  - spec/active_force_spec.rb
126
+ - spec/active_query/query_spec.rb
123
127
  - spec/fixtures/sobject/single_sobject_hash.yml
124
128
  - spec/spec_helper.rb
125
129
  - spec/support/fixture_helpers.rb
@@ -134,25 +138,28 @@ require_paths:
134
138
  - lib
135
139
  required_ruby_version: !ruby/object:Gem::Requirement
136
140
  requirements:
137
- - - '>='
141
+ - - ">="
138
142
  - !ruby/object:Gem::Version
139
143
  version: '0'
140
144
  required_rubygems_version: !ruby/object:Gem::Requirement
141
145
  requirements:
142
- - - '>'
146
+ - - ">="
143
147
  - !ruby/object:Gem::Version
144
- version: 1.3.1
148
+ version: '0'
145
149
  requirements: []
146
150
  rubyforge_project:
147
- rubygems_version: 2.0.3
151
+ rubygems_version: 2.2.2
148
152
  signing_key:
149
153
  specification_version: 4
150
154
  summary: Help you implement models persisting on Sales Force within Rails using RESTForce
151
155
  test_files:
156
+ - spec/active_force/association_spec.rb
152
157
  - spec/active_force/sobject/table_name_spec.rb
153
158
  - spec/active_force/sobject_spec.rb
154
159
  - spec/active_force_spec.rb
160
+ - spec/active_query/query_spec.rb
155
161
  - spec/fixtures/sobject/single_sobject_hash.yml
156
162
  - spec/spec_helper.rb
157
163
  - spec/support/fixture_helpers.rb
158
164
  - spec/support/whizbang.rb
165
+ has_rdoc: