dynamics_crm 0.6.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -1
  3. data/CHANGELOG.md +10 -0
  4. data/dynamics_crm.gemspec +6 -5
  5. data/lib/dynamics_crm.rb +7 -0
  6. data/lib/dynamics_crm/client.rb +25 -14
  7. data/lib/dynamics_crm/fetch_xml/builder.rb +26 -27
  8. data/lib/dynamics_crm/metadata/attribute_metadata.rb +35 -2
  9. data/lib/dynamics_crm/metadata/attribute_query_expression.rb +25 -0
  10. data/lib/dynamics_crm/metadata/entity_metadata.rb +1 -1
  11. data/lib/dynamics_crm/metadata/entity_query_expression.rb +29 -0
  12. data/lib/dynamics_crm/metadata/filter_expression.rb +47 -0
  13. data/lib/dynamics_crm/metadata/properties_expression.rb +30 -0
  14. data/lib/dynamics_crm/metadata/retrieve_metadata_changes_response.rb +18 -0
  15. data/lib/dynamics_crm/version.rb +1 -1
  16. data/lib/dynamics_crm/xml/attributes.rb +28 -2
  17. data/lib/dynamics_crm/xml/entity_collection.rb +10 -0
  18. data/lib/dynamics_crm/xml/message_builder.rb +3 -3
  19. data/lib/dynamics_crm/xml/message_parser.rb +2 -0
  20. data/lib/dynamics_crm/xml/money.rb +16 -0
  21. data/spec/fixtures/retrieve_metadata_changes_response.xml +215 -0
  22. data/spec/lib/client_spec.rb +169 -70
  23. data/spec/lib/fetch_xml/builder_spec.rb +44 -0
  24. data/spec/lib/metadata/attribute_query_expression_spec.rb +29 -0
  25. data/spec/lib/metadata/entity_metadata_spec.rb +13 -13
  26. data/spec/lib/metadata/filter_expression_spec.rb +44 -0
  27. data/spec/lib/metadata/properties_expression_spec.rb +19 -0
  28. data/spec/lib/metadata/retrieve_all_entities_response_spec.rb +8 -8
  29. data/spec/lib/metadata/retrieve_attribute_response_spec.rb +23 -23
  30. data/spec/lib/metadata/retrieve_entity_response_spec.rb +7 -7
  31. data/spec/lib/metadata/retrieve_metadata_changes_response_spec.rb +52 -0
  32. data/spec/lib/model/opportunity_spec.rb +7 -7
  33. data/spec/lib/response/execute_result_spec.rb +4 -4
  34. data/spec/lib/response/retrieve_multiple_spec.rb +10 -10
  35. data/spec/lib/response/retrieve_result_spec.rb +26 -26
  36. data/spec/lib/xml/attributes_spec.rb +9 -9
  37. data/spec/lib/xml/column_set_spec.rb +4 -4
  38. data/spec/lib/xml/entity_reference_spec.rb +8 -8
  39. data/spec/lib/xml/entity_spec.rb +18 -18
  40. data/spec/lib/xml/fault_spec.rb +8 -8
  41. data/spec/lib/xml/money_spec.rb +41 -0
  42. data/spec/lib/xml/query_spec.rb +15 -15
  43. data/spec/spec_helper.rb +1 -0
  44. metadata +82 -32
@@ -10,53 +10,53 @@ describe DynamicsCRM::Response::RetrieveResult do
10
10
 
11
11
  context "parse attributes according to their type" do
12
12
 
13
- it { subject.id.should == "93f0325c-a592-e311-b7f3-6c3be5a8a0c8" }
14
- it { subject.type.should == "account" }
15
- it { subject.exchangerate.should == 1.0 } # decimal
16
- it { subject.modifiedon.should be_a(Time) } # datetime
17
- it { subject.territorycode.should == 1} # OptionType
18
- it { subject.importsequencenumber.should == 1} # int
19
- it { subject.donotemail.should == false} # boolean
20
- it { subject.revenue.should == 60000.00 } # Money
21
- it { subject.modifiedby.should == {
13
+ it { expect(subject.id).to eq("93f0325c-a592-e311-b7f3-6c3be5a8a0c8") }
14
+ it { expect(subject.type).to eq("account") }
15
+ it { expect(subject.exchangerate).to eq(1.0) } # decimal
16
+ it { expect(subject.modifiedon).to be_a(Time) } # datetime
17
+ it { expect(subject.territorycode).to eq(1)} # OptionType
18
+ it { expect(subject.importsequencenumber).to eq(1)} # int
19
+ it { expect(subject.donotemail).to eq(false)} # boolean
20
+ it { expect(subject.revenue).to eq(60000.00) } # Money
21
+ it { expect(subject.modifiedby).to eq({
22
22
  "Id" => "1bfa3886-df7e-468c-8435-b5adfb0441ed",
23
23
  "LogicalName" => "systemuser",
24
- "Name" => "Joe Heth"} }
24
+ "Name" => "Joe Heth"}) }
25
25
 
26
- it { subject["id"].should == "93f0325c-a592-e311-b7f3-6c3be5a8a0c8" }
27
- it { subject["type"].should == "account" }
26
+ it { expect(subject["id"]).to eq("93f0325c-a592-e311-b7f3-6c3be5a8a0c8") }
27
+ it { expect(subject["type"]).to eq("account") }
28
28
  end
29
29
 
30
30
  context "parses Attributes list" do
31
- it { subject.name.should == "Adventure Works (sample)" }
32
- it { subject.websiteurl.should == "http://www.adventure-works.com/" }
33
- it { subject.address1_city.should == "Santa Cruz" }
31
+ it { expect(subject.name).to eq("Adventure Works (sample)") }
32
+ it { expect(subject.websiteurl).to eq("http://www.adventure-works.com/") }
33
+ it { expect(subject.address1_city).to eq("Santa Cruz") }
34
34
 
35
- it { subject["name"].should == "Adventure Works (sample)" }
36
- it { subject["websiteurl"].should == "http://www.adventure-works.com/" }
37
- it { subject["address1_city"].should == "Santa Cruz" }
35
+ it { expect(subject["name"]).to eq("Adventure Works (sample)") }
36
+ it { expect(subject["websiteurl"]).to eq("http://www.adventure-works.com/") }
37
+ it { expect(subject["address1_city"]).to eq("Santa Cruz") }
38
38
  end
39
39
 
40
40
  context "assignment" do
41
41
  it "should assign through hash index" do
42
- subject[:nothing].should be_nil
42
+ expect(subject[:nothing]).to be_nil
43
43
  subject[:nothing] = "New Value"
44
- subject[:nothing].should == "New Value"
45
- subject.nothing.should == "New Value"
46
- subject.Nothing.should == "New Value"
44
+ expect(subject[:nothing]).to eq("New Value")
45
+ expect(subject.nothing).to eq("New Value")
46
+ expect(subject.Nothing).to eq("New Value")
47
47
  end
48
48
  end
49
49
 
50
50
  context "respond to hash methods" do
51
51
 
52
52
  it "should has_key?" do
53
- subject.has_key?("name").should be_true
54
- subject.has_key?("type").should be_true
55
- subject.has_key?("nothing").should be_false
53
+ expect(subject.key?("name")).to be true
54
+ expect(subject.key?("type")).to be true
55
+ expect(subject.key?("nothing")).to be false
56
56
  end
57
57
 
58
58
  it "should return keys" do
59
- subject.keys.should include("type", "id", "accountid", "address1_city",
59
+ expect(subject.keys).to include("type", "id", "accountid", "address1_city",
60
60
  "address1_stateorprovince", "address1_postalcode", "websiteurl", "name",
61
61
  "address1_line1", "address1_country", "address1_composite")
62
62
  end
@@ -17,21 +17,21 @@ describe DynamicsCRM::XML::Attributes do
17
17
  }
18
18
 
19
19
  context "attributes extends hash" do
20
- it { subject.should == attrs }
20
+ it { expect(subject).to eq(attrs) }
21
21
  end
22
22
 
23
23
  context "attributes uses method_missing for hash access" do
24
- it { subject.telephone1.should == attrs["telephone1"]}
25
- it { subject.modifiedon.should == attrs["modifiedon"]}
26
- it { subject.donotemail.should == attrs["donotemail"]}
27
- it { subject.id.should == attrs["id"]}
28
- it { subject.reference.should == attrs["reference"]}
24
+ it { expect(subject.telephone1).to eq(attrs["telephone1"])}
25
+ it { expect(subject.modifiedon).to eq(attrs["modifiedon"])}
26
+ it { expect(subject.donotemail).to eq(attrs["donotemail"])}
27
+ it { expect(subject.id).to eq(attrs["id"])}
28
+ it { expect(subject.reference).to eq(attrs["reference"])}
29
29
  end
30
30
 
31
31
  context "parse attributes according to their type" do
32
- it { subject.to_xml.should include("<c:key>telephone1</c:key>") }
33
- it { subject.to_xml.should include("<c:key>donotemail</c:key>") }
34
- it { subject.to_xml.should include("<c:key>modifiedon</c:key>") }
32
+ it { expect(subject.to_xml).to include("<c:key>telephone1</c:key>") }
33
+ it { expect(subject.to_xml).to include("<c:key>donotemail</c:key>") }
34
+ it { expect(subject.to_xml).to include("<c:key>modifiedon</c:key>") }
35
35
  end
36
36
 
37
37
  end
@@ -8,10 +8,10 @@ describe DynamicsCRM::XML::ColumnSet do
8
8
  }
9
9
 
10
10
  context "generate ColumnSet XML" do
11
- it { subject.to_xml.should include("<b:AllColumns>false</b:AllColumns>") }
12
- it { subject.to_xml.should include("<d:string>accountid</d:string>") }
13
- it { subject.to_xml.should include("<d:string>donotemail</d:string>") }
14
- it { subject.to_xml.should include("<d:string>telephone1</d:string>") }
11
+ it { expect(subject.to_xml).to include("<b:AllColumns>false</b:AllColumns>") }
12
+ it { expect(subject.to_xml).to include("<d:string>accountid</d:string>") }
13
+ it { expect(subject.to_xml).to include("<d:string>donotemail</d:string>") }
14
+ it { expect(subject.to_xml).to include("<d:string>telephone1</d:string>") }
15
15
  end
16
16
 
17
17
  end
@@ -8,9 +8,9 @@ describe DynamicsCRM::XML::EntityReference do
8
8
  }
9
9
 
10
10
  context "default instance" do
11
- it { subject.logical_name.should == "opportunity" }
12
- it { subject.id.should == "9BF1325C-A592-E311-B7F3-6C3BE5A8A0C8" }
13
- it { subject.name.should be_nil }
11
+ it { expect(subject.logical_name).to eq("opportunity") }
12
+ it { expect(subject.id).to eq("9BF1325C-A592-E311-B7F3-6C3BE5A8A0C8") }
13
+ it { expect(subject.name).to be_nil }
14
14
  end
15
15
 
16
16
  context "#to_xml" do
@@ -23,7 +23,7 @@ describe DynamicsCRM::XML::EntityReference do
23
23
  <Name #{@name ? '' : 'nil="true"'}>#{@name}</Name>
24
24
  </entityReference>
25
25
  }
26
- subject.to_xml.should == expected_xml
26
+ expect(subject.to_xml).to eq(expected_xml)
27
27
  end
28
28
 
29
29
  it "outputs EntityReference with namespace" do
@@ -35,7 +35,7 @@ describe DynamicsCRM::XML::EntityReference do
35
35
  <b:Name #{@name ? '' : 'nil="true"'}>#{@name}</b:Name>
36
36
  </b:EntityReference>
37
37
  }
38
- subject.to_xml(namespace: 'b', camel_case: true).should == expected_xml
38
+ expect(subject.to_xml(namespace: 'b', camel_case: true)).to eq(expected_xml)
39
39
  end
40
40
 
41
41
  end
@@ -50,9 +50,9 @@ describe DynamicsCRM::XML::EntityReference do
50
50
  DynamicsCRM::XML::EntityReference.from_xml(xml.root)
51
51
  }
52
52
 
53
- it { subject.logical_name.should == "opportunity" }
54
- it { subject.id.should == "9BF1325C-A592-E311-B7F3-6C3BE5A8A0C8" }
55
- it { subject.name.should == "Sample Opportunity Name" }
53
+ it { expect(subject.logical_name).to eq("opportunity") }
54
+ it { expect(subject.id).to eq("9BF1325C-A592-E311-B7F3-6C3BE5A8A0C8") }
55
+ it { expect(subject.name).to eq("Sample Opportunity Name") }
56
56
  end
57
57
 
58
58
  end
@@ -8,17 +8,17 @@ describe DynamicsCRM::XML::Entity do
8
8
  }
9
9
 
10
10
  context "default instance" do
11
- it { subject.logical_name.should == "account" }
12
- it { subject.id.should == "00000000-0000-0000-0000-000000000000" }
13
- it { subject.attributes.should be_nil }
14
- it { subject.entity_state.should be_nil }
15
- it { subject.formatted_values.should be_nil }
16
- it { subject.related_entities.should be_nil }
11
+ it { expect(subject.logical_name).to eq("account") }
12
+ it { expect(subject.id).to eq("00000000-0000-0000-0000-000000000000") }
13
+ it { expect(subject.attributes).to be_nil }
14
+ it { expect(subject.entity_state).to be_nil }
15
+ it { expect(subject.formatted_values).to be_nil }
16
+ it { expect(subject.related_entities).to be_nil }
17
17
  end
18
18
 
19
19
  context "#to_xml" do
20
- it { subject.to_xml.should include("<a:Id>00000000-0000-0000-0000-000000000000</a:Id>") }
21
- it { subject.to_xml.should include("<a:LogicalName>account</a:LogicalName>") }
20
+ it { expect(subject.to_xml).to include("<a:Id>00000000-0000-0000-0000-000000000000</a:Id>") }
21
+ it { expect(subject.to_xml).to include("<a:LogicalName>account</a:LogicalName>") }
22
22
  end
23
23
 
24
24
  end
@@ -34,10 +34,10 @@ describe DynamicsCRM::XML::Entity do
34
34
 
35
35
  context "#to_xml" do
36
36
  # Contains nested Attributes with EntityReference
37
- it { subject.to_xml.should include('<c:value i:type="a:EntityReference">') }
38
- it { subject.to_xml.should include("<a:Id>2dc8d7bb-149f-e311-ba8d-6c3be5a8ad64</a:Id>") }
39
- it { subject.to_xml.should include("<a:LogicalName>opportunity</a:LogicalName>") }
40
- it { subject.to_xml.should include("<a:Id>00000000-0000-0000-0000-000000000000</a:Id>") }
37
+ it { expect(subject.to_xml).to include('<c:value i:type="a:EntityReference">') }
38
+ it { expect(subject.to_xml).to include("<a:Id>2dc8d7bb-149f-e311-ba8d-6c3be5a8ad64</a:Id>") }
39
+ it { expect(subject.to_xml).to include("<a:LogicalName>opportunity</a:LogicalName>") }
40
+ it { expect(subject.to_xml).to include("<a:Id>00000000-0000-0000-0000-000000000000</a:Id>") }
41
41
  end
42
42
 
43
43
  end
@@ -51,12 +51,12 @@ describe DynamicsCRM::XML::Entity do
51
51
  }
52
52
 
53
53
  context "parses XML document into instance variables" do
54
- it { subject.id.should == "7bf2e032-ad92-e311-9752-6c3be5a87df0" }
55
- it { subject.attributes.should == {"accountid" => "7bf2e032-ad92-e311-9752-6c3be5a87df0"} }
56
- it { subject.entity_state.should be_nil }
57
- it { subject.formatted_values.should be_nil }
58
- it { subject.logical_name.should == "account" }
59
- it { subject.related_entities.should be_nil }
54
+ it { expect(subject.id).to eq("7bf2e032-ad92-e311-9752-6c3be5a87df0") }
55
+ it { expect(subject.attributes).to eq({"accountid" => "7bf2e032-ad92-e311-9752-6c3be5a87df0"}) }
56
+ it { expect(subject.entity_state).to be_nil }
57
+ it { expect(subject.formatted_values).to be_nil }
58
+ it { expect(subject.logical_name).to eq("account") }
59
+ it { expect(subject.related_entities).to be_nil }
60
60
  end
61
61
  end
62
62
 
@@ -12,10 +12,10 @@ describe DynamicsCRM::XML::Fault do
12
12
  }
13
13
 
14
14
  context "generate ColumnSet XML" do
15
- it { subject.code.should == "s:Receiver" }
16
- it { subject.subcode.should == "a:InternalServiceFault" }
17
- it { subject.reason.should == "The server was unable to process the request due to an internal error." }
18
- it { subject.message.should == "#{subject.code}[#{subject.subcode}] #{subject.reason}" }
15
+ it { expect(subject.code).to eq("s:Receiver") }
16
+ it { expect(subject.subcode).to eq("a:InternalServiceFault") }
17
+ it { expect(subject.reason).to eq("The server was unable to process the request due to an internal error.") }
18
+ it { expect(subject.message).to eq("#{subject.code}[#{subject.subcode}] #{subject.reason}") }
19
19
  end
20
20
  end
21
21
 
@@ -28,10 +28,10 @@ describe DynamicsCRM::XML::Fault do
28
28
  }
29
29
 
30
30
  context "generate ColumnSet XML" do
31
- it { subject.code.should == "s:Sender" }
32
- it { subject.subcode.should be_nil }
33
- it { subject.reason.should == "'account' entity doesn't contain attribute with Name = 'ticketsymbol'." }
34
- it { subject.message.should start_with("#{subject.code}[#{subject.subcode}] #{subject.reason} (Detail =>") }
31
+ it { expect(subject.code).to eq("s:Sender") }
32
+ it { expect(subject.subcode).to be_nil }
33
+ it { expect(subject.reason).to eq("'account' entity doesn't contain attribute with Name = 'ticketsymbol'.") }
34
+ it { expect(subject.message).to start_with("#{subject.code}[#{subject.subcode}] #{subject.reason} (Detail =>") }
35
35
  end
36
36
 
37
37
  end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe DynamicsCRM::XML::Money do
4
+
5
+ describe '#initialize' do
6
+ let(:value) { 250.0 }
7
+ let(:precision) { 2 }
8
+ subject { DynamicsCRM::XML::Money.new(value, precision) }
9
+
10
+ context "with a string" do
11
+ let(:value) { "250.00" }
12
+ it { expect(subject.to_xml).to eq("<a:Value>250.00</a:Value>") }
13
+
14
+ context "and precision is 1" do
15
+ let(:precision) { 1 }
16
+ it { expect(subject.to_xml).to eq("<a:Value>250.0</a:Value>") }
17
+ end
18
+ end
19
+
20
+ context "with a number" do
21
+ let(:value) { 250 }
22
+ it { expect(subject.to_xml).to eq("<a:Value>250.00</a:Value>") }
23
+
24
+ context "and precision is 1" do
25
+ let(:precision) { 1 }
26
+ it { expect(subject.to_xml).to eq("<a:Value>250.0</a:Value>") }
27
+ end
28
+ end
29
+
30
+ context "with a float" do
31
+ let(:value) { 250.00 }
32
+ it { expect(subject.to_xml).to eq("<a:Value>250.00</a:Value>") }
33
+
34
+ context "and precision is 1" do
35
+ let(:precision) { 1 }
36
+ it { expect(subject.to_xml).to eq("<a:Value>250.0</a:Value>") }
37
+ end
38
+ end
39
+
40
+ end
41
+ end
@@ -8,12 +8,12 @@ describe DynamicsCRM::XML::Query do
8
8
  }
9
9
 
10
10
  context "generate empty Query fragment" do
11
- it { subject.to_xml.should include("<b:ColumnSet ") }
12
- it { subject.to_xml.should match(/<b:Conditions>\s+<\/b:Conditions>/) }
13
- it { subject.to_xml.should include("<b:AllColumns>true</b:AllColumns>") }
14
- it { subject.to_xml.should include("<b:Distinct>false</b:Distinct>") }
15
- it { subject.to_xml.should include("<b:EntityName>opportunity</b:EntityName>") }
16
- it { subject.to_xml.should include("<b:FilterOperator>And</b:FilterOperator>") }
11
+ it { expect(subject.to_xml).to include("<b:ColumnSet ") }
12
+ it { expect(subject.to_xml).to match(/<b:Conditions>\s+<\/b:Conditions>/) }
13
+ it { expect(subject.to_xml).to include("<b:AllColumns>true</b:AllColumns>") }
14
+ it { expect(subject.to_xml).to include("<b:Distinct>false</b:Distinct>") }
15
+ it { expect(subject.to_xml).to include("<b:EntityName>opportunity</b:EntityName>") }
16
+ it { expect(subject.to_xml).to include("<b:FilterOperator>And</b:FilterOperator>") }
17
17
  end
18
18
 
19
19
  end
@@ -27,15 +27,15 @@ describe DynamicsCRM::XML::Query do
27
27
  }
28
28
 
29
29
  context "generate empty Query fragment" do
30
- it { subject.to_xml.should include("<b:ColumnSet ") }
31
- it { subject.to_xml.should include("<b:ConditionExpression") }
32
- it { subject.to_xml.should include("AttributeName>name</") }
33
- it { subject.to_xml.should include("Operator>Equal</") }
34
- it { subject.to_xml.should include('<d:anyType i:type="s:string" xmlns:s="http://www.w3.org/2001/XMLSchema">Test Opp</d:anyType>') }
35
- it { subject.to_xml.should include("<b:AllColumns>true</b:AllColumns>") }
36
- it { subject.to_xml.should include("<b:Distinct>false</b:Distinct>") }
37
- it { subject.to_xml.should include("<b:EntityName>opportunity</b:EntityName>") }
38
- it { subject.to_xml.should include("<b:FilterOperator>And</b:FilterOperator>") }
30
+ it { expect(subject.to_xml).to include("<b:ColumnSet ") }
31
+ it { expect(subject.to_xml).to include("<b:ConditionExpression") }
32
+ it { expect(subject.to_xml).to include("AttributeName>name</") }
33
+ it { expect(subject.to_xml).to include("Operator>Equal</") }
34
+ it { expect(subject.to_xml).to include('<d:anyType i:type="s:string" xmlns:s="http://www.w3.org/2001/XMLSchema">Test Opp</d:anyType>') }
35
+ it { expect(subject.to_xml).to include("<b:AllColumns>true</b:AllColumns>") }
36
+ it { expect(subject.to_xml).to include("<b:Distinct>false</b:Distinct>") }
37
+ it { expect(subject.to_xml).to include("<b:EntityName>opportunity</b:EntityName>") }
38
+ it { expect(subject.to_xml).to include("<b:FilterOperator>And</b:FilterOperator>") }
39
39
  end
40
40
 
41
41
  end
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'simplecov'
2
+ require 'pry'
2
3
  SimpleCov.start do
3
4
  add_filter "/vendor/"
4
5
  end
metadata CHANGED
@@ -1,131 +1,163 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dynamics_crm
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joe Heth
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-31 00:00:00.000000000 Z
11
+ date: 2016-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: curb
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0.8'
20
- - - '>='
20
+ - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: 0.8.5
22
+ version: 1.0.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - ~>
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0.8'
30
- - - '>='
30
+ - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: 0.8.5
32
+ version: 1.0.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: mimemagic
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ~>
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0.2'
40
- - - '>='
40
+ - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: 0.2.1
42
+ version: 4.0.0
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - ~>
47
+ - - ">="
48
48
  - !ruby/object:Gem::Version
49
49
  version: '0.2'
50
- - - '>='
50
+ - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: 0.2.1
52
+ version: 4.0.0
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: builder
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - '>='
57
+ - - ">="
58
58
  - !ruby/object:Gem::Version
59
59
  version: 3.0.0
60
- - - <
60
+ - - "<"
61
61
  - !ruby/object:Gem::Version
62
62
  version: 4.0.0
63
63
  type: :runtime
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: 3.0.0
70
- - - <
70
+ - - "<"
71
71
  - !ruby/object:Gem::Version
72
72
  version: 4.0.0
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: bundler
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
- - - ~>
77
+ - - ">="
78
78
  - !ruby/object:Gem::Version
79
79
  version: '1.3'
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.0'
80
83
  type: :development
81
84
  prerelease: false
82
85
  version_requirements: !ruby/object:Gem::Requirement
83
86
  requirements:
84
- - - ~>
87
+ - - ">="
85
88
  - !ruby/object:Gem::Version
86
89
  version: '1.3'
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '2.0'
87
93
  - !ruby/object:Gem::Dependency
88
94
  name: rake
89
95
  requirement: !ruby/object:Gem::Requirement
90
96
  requirements:
91
- - - ~>
97
+ - - "~>"
92
98
  - !ruby/object:Gem::Version
93
99
  version: '10.1'
94
100
  type: :development
95
101
  prerelease: false
96
102
  version_requirements: !ruby/object:Gem::Requirement
97
103
  requirements:
98
- - - ~>
104
+ - - "~>"
99
105
  - !ruby/object:Gem::Version
100
106
  version: '10.1'
101
107
  - !ruby/object:Gem::Dependency
102
108
  name: rspec
103
109
  requirement: !ruby/object:Gem::Requirement
104
110
  requirements:
105
- - - ~>
111
+ - - ">="
106
112
  - !ruby/object:Gem::Version
107
113
  version: '2.14'
114
+ - - "<"
115
+ - !ruby/object:Gem::Version
116
+ version: '4.0'
108
117
  type: :development
109
118
  prerelease: false
110
119
  version_requirements: !ruby/object:Gem::Requirement
111
120
  requirements:
112
- - - ~>
121
+ - - ">="
113
122
  - !ruby/object:Gem::Version
114
123
  version: '2.14'
124
+ - - "<"
125
+ - !ruby/object:Gem::Version
126
+ version: '4.0'
115
127
  - !ruby/object:Gem::Dependency
116
128
  name: simplecov
117
129
  requirement: !ruby/object:Gem::Requirement
118
130
  requirements:
119
- - - ~>
131
+ - - ">="
120
132
  - !ruby/object:Gem::Version
121
133
  version: '0.7'
134
+ - - "<"
135
+ - !ruby/object:Gem::Version
136
+ version: '1.0'
122
137
  type: :development
123
138
  prerelease: false
124
139
  version_requirements: !ruby/object:Gem::Requirement
125
140
  requirements:
126
- - - ~>
141
+ - - ">="
127
142
  - !ruby/object:Gem::Version
128
143
  version: '0.7'
144
+ - - "<"
145
+ - !ruby/object:Gem::Version
146
+ version: '1.0'
147
+ - !ruby/object:Gem::Dependency
148
+ name: pry
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - "~>"
152
+ - !ruby/object:Gem::Version
153
+ version: 0.10.3
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - "~>"
159
+ - !ruby/object:Gem::Version
160
+ version: 0.10.3
129
161
  description: Ruby API for integrating with MS Dynamics 2011/2013 SOAP API
130
162
  email:
131
163
  - joeheth@gmail.com
@@ -133,9 +165,9 @@ executables: []
133
165
  extensions: []
134
166
  extra_rdoc_files: []
135
167
  files:
136
- - .gitignore
137
- - .rspec
138
- - .travis.yml
168
+ - ".gitignore"
169
+ - ".rspec"
170
+ - ".travis.yml"
139
171
  - CHANGELOG.md
140
172
  - Gemfile
141
173
  - LICENSE.txt
@@ -148,12 +180,17 @@ files:
148
180
  - lib/dynamics_crm/fetch_xml/entity.rb
149
181
  - lib/dynamics_crm/fetch_xml/link_entity.rb
150
182
  - lib/dynamics_crm/metadata/attribute_metadata.rb
183
+ - lib/dynamics_crm/metadata/attribute_query_expression.rb
151
184
  - lib/dynamics_crm/metadata/entity_metadata.rb
185
+ - lib/dynamics_crm/metadata/entity_query_expression.rb
186
+ - lib/dynamics_crm/metadata/filter_expression.rb
152
187
  - lib/dynamics_crm/metadata/one_to_many_relationship.rb
188
+ - lib/dynamics_crm/metadata/properties_expression.rb
153
189
  - lib/dynamics_crm/metadata/relationship_metadata.rb
154
190
  - lib/dynamics_crm/metadata/retrieve_all_entities_response.rb
155
191
  - lib/dynamics_crm/metadata/retrieve_attribute_response.rb
156
192
  - lib/dynamics_crm/metadata/retrieve_entity_response.rb
193
+ - lib/dynamics_crm/metadata/retrieve_metadata_changes_response.rb
157
194
  - lib/dynamics_crm/metadata/xml_document.rb
158
195
  - lib/dynamics_crm/model/entity.rb
159
196
  - lib/dynamics_crm/model/opportunity.rb
@@ -173,6 +210,7 @@ files:
173
210
  - lib/dynamics_crm/xml/fetch_expression.rb
174
211
  - lib/dynamics_crm/xml/message_builder.rb
175
212
  - lib/dynamics_crm/xml/message_parser.rb
213
+ - lib/dynamics_crm/xml/money.rb
176
214
  - lib/dynamics_crm/xml/orders.rb
177
215
  - lib/dynamics_crm/xml/page_info.rb
178
216
  - lib/dynamics_crm/xml/query.rb
@@ -192,6 +230,7 @@ files:
192
230
  - spec/fixtures/retrieve_attribute_response.xml
193
231
  - spec/fixtures/retrieve_entity_relationships_response.xml
194
232
  - spec/fixtures/retrieve_entity_response.xml
233
+ - spec/fixtures/retrieve_metadata_changes_response.xml
195
234
  - spec/fixtures/retrieve_multiple_result.xml
196
235
  - spec/fixtures/sender_fault.xml
197
236
  - spec/fixtures/update_response.xml
@@ -199,10 +238,14 @@ files:
199
238
  - spec/fixtures/win_opportunity_response.xml
200
239
  - spec/lib/client_spec.rb
201
240
  - spec/lib/fetch_xml/builder_spec.rb
241
+ - spec/lib/metadata/attribute_query_expression_spec.rb
202
242
  - spec/lib/metadata/entity_metadata_spec.rb
243
+ - spec/lib/metadata/filter_expression_spec.rb
244
+ - spec/lib/metadata/properties_expression_spec.rb
203
245
  - spec/lib/metadata/retrieve_all_entities_response_spec.rb
204
246
  - spec/lib/metadata/retrieve_attribute_response_spec.rb
205
247
  - spec/lib/metadata/retrieve_entity_response_spec.rb
248
+ - spec/lib/metadata/retrieve_metadata_changes_response_spec.rb
206
249
  - spec/lib/model/opportunity_spec.rb
207
250
  - spec/lib/response/execute_result_spec.rb
208
251
  - spec/lib/response/retrieve_multiple_spec.rb
@@ -213,6 +256,7 @@ files:
213
256
  - spec/lib/xml/entity_spec.rb
214
257
  - spec/lib/xml/fault_spec.rb
215
258
  - spec/lib/xml/message_builder_spec.rb
259
+ - spec/lib/xml/money_spec.rb
216
260
  - spec/lib/xml/query_spec.rb
217
261
  - spec/spec_helper.rb
218
262
  - spec/support/fixture_helpers.rb
@@ -226,17 +270,17 @@ require_paths:
226
270
  - lib
227
271
  required_ruby_version: !ruby/object:Gem::Requirement
228
272
  requirements:
229
- - - '>='
273
+ - - ">="
230
274
  - !ruby/object:Gem::Version
231
275
  version: '0'
232
276
  required_rubygems_version: !ruby/object:Gem::Requirement
233
277
  requirements:
234
- - - '>='
278
+ - - ">="
235
279
  - !ruby/object:Gem::Version
236
280
  version: '0'
237
281
  requirements: []
238
282
  rubyforge_project:
239
- rubygems_version: 2.4.5
283
+ rubygems_version: 2.4.8
240
284
  signing_key:
241
285
  specification_version: 4
242
286
  summary: Ruby gem for integrating with MS Dynamics 2011/2013 SOAP API
@@ -257,6 +301,7 @@ test_files:
257
301
  - spec/fixtures/retrieve_attribute_response.xml
258
302
  - spec/fixtures/retrieve_entity_relationships_response.xml
259
303
  - spec/fixtures/retrieve_entity_response.xml
304
+ - spec/fixtures/retrieve_metadata_changes_response.xml
260
305
  - spec/fixtures/retrieve_multiple_result.xml
261
306
  - spec/fixtures/sender_fault.xml
262
307
  - spec/fixtures/update_response.xml
@@ -264,10 +309,14 @@ test_files:
264
309
  - spec/fixtures/win_opportunity_response.xml
265
310
  - spec/lib/client_spec.rb
266
311
  - spec/lib/fetch_xml/builder_spec.rb
312
+ - spec/lib/metadata/attribute_query_expression_spec.rb
267
313
  - spec/lib/metadata/entity_metadata_spec.rb
314
+ - spec/lib/metadata/filter_expression_spec.rb
315
+ - spec/lib/metadata/properties_expression_spec.rb
268
316
  - spec/lib/metadata/retrieve_all_entities_response_spec.rb
269
317
  - spec/lib/metadata/retrieve_attribute_response_spec.rb
270
318
  - spec/lib/metadata/retrieve_entity_response_spec.rb
319
+ - spec/lib/metadata/retrieve_metadata_changes_response_spec.rb
271
320
  - spec/lib/model/opportunity_spec.rb
272
321
  - spec/lib/response/execute_result_spec.rb
273
322
  - spec/lib/response/retrieve_multiple_spec.rb
@@ -278,6 +327,7 @@ test_files:
278
327
  - spec/lib/xml/entity_spec.rb
279
328
  - spec/lib/xml/fault_spec.rb
280
329
  - spec/lib/xml/message_builder_spec.rb
330
+ - spec/lib/xml/money_spec.rb
281
331
  - spec/lib/xml/query_spec.rb
282
332
  - spec/spec_helper.rb
283
333
  - spec/support/fixture_helpers.rb