frodo 0.10.5 → 0.10.6
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.
- checksums.yaml +5 -5
- data/lib/frodo/schema.rb +6 -0
- data/lib/frodo/service.rb +7 -2
- data/lib/frodo/version.rb +1 -1
- data/spec/fixtures/files/metadata_dynamics.xml +72 -0
- data/spec/frodo/schema_spec.rb +29 -0
- data/spec/frodo/service_spec.rb +8 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 794d51d038cdd0d394f220be58870ff62595e44f51192dde8cf949871dcec4fb
|
4
|
+
data.tar.gz: 61c94e9234206c8ecd8a21ed5a4969f203b968ffcb7d3fb4a6e89699c4cecb73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2f0f0fad989d9453752412a9c478ed58719fdb84ed11abc35ed2a2c115066c9b7e035523ddda55c8d7916d876e864e78c528f05c13ff359cf15e4e8ecb65fbc8
|
7
|
+
data.tar.gz: 426d6d42b6877f4b85a3e69a3263d064a7a66c96d3ffffc574262e8c21464e7cab20122da32df4131b689fcf17833bcfead2af4dce571601ee32cdfc494fda5e
|
data/lib/frodo/schema.rb
CHANGED
@@ -23,6 +23,12 @@ module Frodo
|
|
23
23
|
@namespace ||= metadata.attributes['Namespace'].value
|
24
24
|
end
|
25
25
|
|
26
|
+
# Returns the schema's `Alias` attribute.
|
27
|
+
# @return [String]
|
28
|
+
def alias
|
29
|
+
@alias ||= metadata.attributes['Alias']&.value
|
30
|
+
end
|
31
|
+
|
26
32
|
# Returns a list of actions defined by the schema.
|
27
33
|
# @return [Array<String>]
|
28
34
|
def actions
|
data/lib/frodo/service.rb
CHANGED
@@ -94,9 +94,14 @@ module Frodo
|
|
94
94
|
# @return [Hash<String, Frodo::Schema::ComplexType>]
|
95
95
|
def complex_types
|
96
96
|
@complex_types ||= schemas.map do |namespace, schema|
|
97
|
+
schema_hash = {}
|
97
98
|
schema.complex_types.map do |name, complex_type|
|
98
|
-
[
|
99
|
-
|
99
|
+
schema_hash["#{namespace}.#{name}"] = complex_type
|
100
|
+
if schema.alias
|
101
|
+
schema_hash["#{schema.alias}.#{name}"] = complex_type
|
102
|
+
end
|
103
|
+
end
|
104
|
+
schema_hash
|
100
105
|
end.reduce({}, :merge)
|
101
106
|
end
|
102
107
|
|
data/lib/frodo/version.rb
CHANGED
@@ -339,6 +339,78 @@
|
|
339
339
|
<NavigationProperty Name="contact_activity_parties" Type="Collection(mscrm.activityparty)" Partner="partyid_contact"/>
|
340
340
|
<NavigationProperty Name="Contact_Letters" Type="Collection(mscrm.letter)" Partner="regardingobjectid_contact_letter"/>
|
341
341
|
</EntityType>
|
342
|
+
<EntityType Name="role" BaseType="mscrm.crmbaseentity">
|
343
|
+
<Key>
|
344
|
+
<PropertyRef Name="roleid"/>
|
345
|
+
</Key>
|
346
|
+
<Property Name="importsequencenumber" Type="Edm.Int32"/>
|
347
|
+
<Property Name="componentstate" Type="Edm.Int32"/>
|
348
|
+
<Property Name="solutionid" Type="Edm.Guid"/>
|
349
|
+
<Property Name="_roletemplateid_value" Type="Edm.Guid"/>
|
350
|
+
<Property Name="modifiedon" Type="Edm.DateTimeOffset"/>
|
351
|
+
<Property Name="_modifiedby_value" Type="Edm.Guid"/>
|
352
|
+
<Property Name="_modifiedonbehalfby_value" Type="Edm.Guid"/>
|
353
|
+
<Property Name="organizationid" Type="Edm.Guid"/>
|
354
|
+
<Property Name="name" Type="Edm.String" Unicode="false"/>
|
355
|
+
<Property Name="canbedeleted" Type="mscrm.BooleanManagedProperty"/>
|
356
|
+
<Property Name="_createdonbehalfby_value" Type="Edm.Guid"/>
|
357
|
+
<Property Name="_createdby_value" Type="Edm.Guid"/>
|
358
|
+
<Property Name="_businessunitid_value" Type="Edm.Guid"/>
|
359
|
+
<Property Name="roleid" Type="Edm.Guid"/>
|
360
|
+
<Property Name="overwritetime" Type="Edm.DateTimeOffset"/>
|
361
|
+
<Property Name="ismanaged" Type="Edm.Boolean"/>
|
362
|
+
<Property Name="iscustomizable" Type="mscrm.BooleanManagedProperty"/>
|
363
|
+
<Property Name="_parentrootroleid_value" Type="Edm.Guid"/>
|
364
|
+
<Property Name="roleidunique" Type="Edm.Guid"/>
|
365
|
+
<Property Name="_parentroleid_value" Type="Edm.Guid"/>
|
366
|
+
<Property Name="overriddencreatedon" Type="Edm.DateTimeOffset"/>
|
367
|
+
<Property Name="createdon" Type="Edm.DateTimeOffset"/>
|
368
|
+
<Property Name="versionnumber" Type="Edm.Int64"/>
|
369
|
+
<NavigationProperty Name="systemuserroles_association" Type="Collection(mscrm.systemuser)" Partner="systemuserroles_association"/>
|
370
|
+
<NavigationProperty Name="roleprivileges_association" Type="Collection(mscrm.privilege)" Partner="roleprivileges_association"/>
|
371
|
+
<NavigationProperty Name="appmoduleroles_association" Type="Collection(mscrm.appmodule)" Partner="appmoduleroles_association"/>
|
372
|
+
<NavigationProperty Name="createdonbehalfby" Type="mscrm.systemuser" Nullable="false" Partner="lk_role_createdonbehalfby">
|
373
|
+
<ReferentialConstraint Property="_createdonbehalfby_value" ReferencedProperty="systemuserid"/>
|
374
|
+
</NavigationProperty>
|
375
|
+
<NavigationProperty Name="modifiedby" Type="mscrm.systemuser" Nullable="false" Partner="lk_rolebase_modifiedby">
|
376
|
+
<ReferentialConstraint Property="_modifiedby_value" ReferencedProperty="systemuserid"/>
|
377
|
+
</NavigationProperty>
|
378
|
+
<NavigationProperty Name="modifiedonbehalfby" Type="mscrm.systemuser" Nullable="false" Partner="lk_role_modifiedonbehalfby">
|
379
|
+
<ReferentialConstraint Property="_modifiedonbehalfby_value" ReferencedProperty="systemuserid"/>
|
380
|
+
</NavigationProperty>
|
381
|
+
<NavigationProperty Name="parentroleid" Type="mscrm.role" Nullable="false" Partner="role_parent_role">
|
382
|
+
<ReferentialConstraint Property="_parentroleid_value" ReferencedProperty="roleid"/>
|
383
|
+
</NavigationProperty>
|
384
|
+
<NavigationProperty Name="role_parent_role" Type="Collection(mscrm.role)" Partner="parentroleid"/>
|
385
|
+
<NavigationProperty Name="businessunitid" Type="mscrm.businessunit" Nullable="false" Partner="business_unit_roles">
|
386
|
+
<ReferentialConstraint Property="_businessunitid_value" ReferencedProperty="businessunitid"/>
|
387
|
+
</NavigationProperty>
|
388
|
+
<NavigationProperty Name="roletemplateid" Type="mscrm.roletemplate" Nullable="false" Partner="role_template_roles">
|
389
|
+
<ReferentialConstraint Property="_roletemplateid_value" ReferencedProperty="roletemplateid"/>
|
390
|
+
</NavigationProperty>
|
391
|
+
<NavigationProperty Name="Role_AsyncOperations" Type="Collection(mscrm.asyncoperation)" Partner="regardingobjectid_role"/>
|
392
|
+
<NavigationProperty Name="Role_BulkDeleteFailures" Type="Collection(mscrm.bulkdeletefailure)" Partner="regardingobjectid_role"/>
|
393
|
+
<NavigationProperty Name="organizationid_organization" Type="mscrm.organization" Nullable="false" Partner="organization_roles">
|
394
|
+
<ReferentialConstraint Property="organizationid" ReferencedProperty="organizationid"/>
|
395
|
+
</NavigationProperty>
|
396
|
+
<NavigationProperty Name="createdby" Type="mscrm.systemuser" Nullable="false" Partner="lk_rolebase_createdby">
|
397
|
+
<ReferentialConstraint Property="_createdby_value" ReferencedProperty="systemuserid"/>
|
398
|
+
</NavigationProperty>
|
399
|
+
<NavigationProperty Name="solution_role" Type="mscrm.solution" Nullable="false" Partner="solution_role">
|
400
|
+
<ReferentialConstraint Property="solutionid" ReferencedProperty="solutionid"/>
|
401
|
+
</NavigationProperty>
|
402
|
+
<NavigationProperty Name="teamroles_association" Type="Collection(mscrm.team)" Partner="teamroles_association"/>
|
403
|
+
<NavigationProperty Name="parentrootroleid" Type="mscrm.role" Nullable="false" Partner="role_parent_root_role">
|
404
|
+
<ReferentialConstraint Property="_parentrootroleid_value" ReferencedProperty="roleid"/>
|
405
|
+
</NavigationProperty>
|
406
|
+
<NavigationProperty Name="role_parent_root_role" Type="Collection(mscrm.role)" Partner="parentrootroleid"/>
|
407
|
+
<NavigationProperty Name="Role_SyncErrors" Type="Collection(mscrm.syncerror)" Partner="regardingobjectid_role_syncerror"/>
|
408
|
+
</EntityType>
|
409
|
+
<ComplexType Name="BooleanManagedProperty">
|
410
|
+
<Property Name="Value" Type="Edm.Boolean"/>
|
411
|
+
<Property Name="CanBeChanged" Type="Edm.Boolean"/>
|
412
|
+
<Property Name="ManagedPropertyLogicalName" Type="Edm.String" Unicode="false"/>
|
413
|
+
</ComplexType>
|
342
414
|
<EntityContainer Name="System">
|
343
415
|
<EntitySet Name="contacts" EntityType="Microsoft.Dynamics.CRM.contact">
|
344
416
|
<NavigationPropertyBinding Path="lead_customer_contacts" Target="leads"/>
|
data/spec/frodo/schema_spec.rb
CHANGED
@@ -117,5 +117,34 @@ describe Frodo::Schema do
|
|
117
117
|
subject.properties_for_entity('Error')
|
118
118
|
}.to raise_error(/Does.Not.Exist/)
|
119
119
|
end
|
120
|
+
|
121
|
+
context "with namespace-aliased complex types" do
|
122
|
+
let(:metadata_file) { 'spec/fixtures/files/metadata_dynamics.xml' }
|
123
|
+
it { expect(subject.properties_for_entity('role').keys).to eq(%w[
|
124
|
+
importsequencenumber
|
125
|
+
componentstate
|
126
|
+
solutionid
|
127
|
+
_roletemplateid_value
|
128
|
+
modifiedon
|
129
|
+
_modifiedby_value
|
130
|
+
_modifiedonbehalfby_value
|
131
|
+
organizationid
|
132
|
+
name
|
133
|
+
canbedeleted
|
134
|
+
_createdonbehalfby_value
|
135
|
+
_createdby_value
|
136
|
+
_businessunitid_value
|
137
|
+
roleid
|
138
|
+
overwritetime
|
139
|
+
ismanaged
|
140
|
+
iscustomizable
|
141
|
+
_parentrootroleid_value
|
142
|
+
roleidunique
|
143
|
+
_parentroleid_value
|
144
|
+
overriddencreatedon
|
145
|
+
createdon
|
146
|
+
versionnumber
|
147
|
+
]) }
|
148
|
+
end
|
120
149
|
end
|
121
150
|
end
|
data/spec/frodo/service_spec.rb
CHANGED
@@ -26,6 +26,14 @@ describe Frodo::Service do
|
|
26
26
|
service = Frodo::Service.new(service_url, metadata_file: metadata_file, logger: logger)
|
27
27
|
expect(service.logger).to eq(logger)
|
28
28
|
end
|
29
|
+
|
30
|
+
context "with complex type referenced by namespace alias" do
|
31
|
+
let(:metadata_file) { 'spec/fixtures/files/metadata_dynamics.xml' }
|
32
|
+
it 'registers custom types on creation' do
|
33
|
+
subject
|
34
|
+
expect(Frodo::PropertyRegistry['mscrm.BooleanManagedProperty']).to be_a(Class)
|
35
|
+
end
|
36
|
+
end
|
29
37
|
end
|
30
38
|
|
31
39
|
describe '#logger' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: frodo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Emmanuel Pinault
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-06-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -404,7 +404,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
404
404
|
version: '0'
|
405
405
|
requirements: []
|
406
406
|
rubyforge_project:
|
407
|
-
rubygems_version: 2.6.
|
407
|
+
rubygems_version: 2.7.6.2
|
408
408
|
signing_key:
|
409
409
|
specification_version: 4
|
410
410
|
summary: Simple OData library
|