dynamics_crm 0.6.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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