odata 0.0.4 → 0.0.5
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 +4 -4
- data/.ruby-version +1 -0
- data/README.md +30 -1
- data/lib/odata.rb +7 -2
- data/lib/odata/model.rb +55 -0
- data/lib/odata/service.rb +20 -1
- data/lib/odata/version.rb +1 -1
- data/odata.gemspec +2 -0
- data/spec/examples/product_model.rb +13 -0
- data/spec/fixtures/sample_service/metadata.xml +193 -1
- data/spec/fixtures/sample_service/products.xml +378 -0
- data/spec/odata/model_spec.rb +25 -0
- data/spec/odata/service_spec.rb +13 -9
- data/spec/spec_helper.rb +3 -0
- metadata +38 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e6981ed111f758f019824c0616927692584ad31a
|
4
|
+
data.tar.gz: 2f187e5ea95313d48ce325f752e59787624bb9a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e49a84b9757a07d297ac25606a0f92a0760bac242d07a2de0e0d404006382d93c256e08e5e983a72119c28d1f57322d541ee2fabd3e7d4c3a69e07d3d48f61b5
|
7
|
+
data.tar.gz: 4a55c19eba6a3e609ffae47a24e737148992f98ab433fab36bdd9d285f876eb0c8b88bab54d94bd7cd881b88cd80fe7f2c434236c7b1b3ce8a3b5d63a48b656e
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.1.2
|
data/README.md
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
[](https://travis-ci.org/plainprogrammer/odata)
|
4
4
|
[](https://codeclimate.com/github/plainprogrammer/odata)
|
5
5
|
[](https://codeclimate.com/github/plainprogrammer/odata)
|
6
|
+
[](http://badge.fury.io/rb/odata)
|
6
7
|
|
7
8
|
The OData gem provides a simple wrapper around the OData API protocol. It has
|
8
9
|
the ability to automatically inspect compliant APIs and expose the relevant
|
@@ -25,7 +26,35 @@ Or install it yourself as:
|
|
25
26
|
|
26
27
|
## Usage
|
27
28
|
|
28
|
-
|
29
|
+
The OData gem provides a number of core classes, the two most basic ones are
|
30
|
+
the OData::Service and the OData::ServiceRegistry. The only time you will need
|
31
|
+
to worry about the OData::ServiceRegistry is when you have multiple OData
|
32
|
+
services you are interacting with that you want to keep straight easily. The
|
33
|
+
nice thing about OData::Service is that it automatically registers with the
|
34
|
+
registry on creation, so there is no manual interaction with the registry
|
35
|
+
necessary.
|
36
|
+
|
37
|
+
To create an OData::Service simply provide the location of a service endpoint
|
38
|
+
to it like this:
|
39
|
+
|
40
|
+
OData::Service.open('http://services.odata.org/OData/OData.svc')
|
41
|
+
|
42
|
+
This one call will setup the service and allow for the discovery of everything
|
43
|
+
the other parts of the OData gem need to function. The two methods you will
|
44
|
+
want to remember from OData::Service are `#service_url` and `#namespace`. Both
|
45
|
+
of these methods are available on instances and will allow for lookup in the
|
46
|
+
OData::ServiceRegistry, should you need it.
|
47
|
+
|
48
|
+
Using either the service URL or the namespace provided by a service's CSDL
|
49
|
+
schema will allow for quick lookup in the OData::ServiceRegistry like such:
|
50
|
+
|
51
|
+
OData::ServiceRegistry['http://services.odata.org/OData/OData.svc']
|
52
|
+
OData::ServiceRegistry['ODataDemo']
|
53
|
+
|
54
|
+
Both of the above calls would retrieve the same service from the registry. At
|
55
|
+
the moment there is no protection against namespace collisions provided in
|
56
|
+
OData::ServiceRegistry. So, looking up services by their service URL is the
|
57
|
+
most exact method, but lookup by namespace is provided for convenience.
|
29
58
|
|
30
59
|
## Contributing
|
31
60
|
|
data/lib/odata.rb
CHANGED
@@ -1,11 +1,16 @@
|
|
1
1
|
require 'nokogiri'
|
2
|
-
require '
|
2
|
+
require 'typhoeus'
|
3
|
+
|
4
|
+
require 'active_support'
|
5
|
+
require 'active_support/core_ext'
|
6
|
+
require 'active_support/concern'
|
3
7
|
|
4
8
|
require 'odata/version'
|
5
9
|
require 'odata/service'
|
6
10
|
require 'odata/service_registry'
|
11
|
+
require 'odata/model'
|
7
12
|
|
8
|
-
require 'odata/railtie' if defined?(Rails)
|
13
|
+
require 'odata/railtie' if defined?(::Rails)
|
9
14
|
|
10
15
|
module OData
|
11
16
|
# Your code goes here...
|
data/lib/odata/model.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
module OData
|
2
|
+
module Model
|
3
|
+
extend ::ActiveSupport::Concern
|
4
|
+
include ::ActiveModel::Model if defined?(::Rails) && defined?(::ActiveModel::Model)
|
5
|
+
|
6
|
+
included do
|
7
|
+
cattr_accessor :registered_properties
|
8
|
+
cattr_accessor :primary_key
|
9
|
+
|
10
|
+
self.class_eval <<-EOS
|
11
|
+
@@registered_properties = {}
|
12
|
+
@@primary_key = nil
|
13
|
+
EOS
|
14
|
+
end
|
15
|
+
|
16
|
+
module ClassMethods
|
17
|
+
def model_name
|
18
|
+
self.to_s.demodulize
|
19
|
+
end
|
20
|
+
|
21
|
+
def odata_name
|
22
|
+
model_name.pluralize
|
23
|
+
end
|
24
|
+
|
25
|
+
def property(name, options = {})
|
26
|
+
register_property(name.to_s.underscore, options.merge(literal_name: name))
|
27
|
+
create_accessors(name.to_s.underscore, options)
|
28
|
+
register_primary_key(name.to_s.underscore) if options[:primary_key]
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def register_property(name, options)
|
34
|
+
new_registered_properties = registered_properties
|
35
|
+
new_registered_properties[name.to_sym] = options
|
36
|
+
registered_properties = new_registered_properties
|
37
|
+
end
|
38
|
+
|
39
|
+
def create_accessors(name, options)
|
40
|
+
self.class_eval do
|
41
|
+
define_method(name) { @properties[name.to_sym] || nil }
|
42
|
+
define_method("#{name}=") {|value| @properties[name.to_sym] = value}
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def register_primary_key(name)
|
47
|
+
if primary_key.nil?
|
48
|
+
self.class_eval <<-EOS
|
49
|
+
@@primary_key = :#{name}
|
50
|
+
EOS
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
data/lib/odata/service.rb
CHANGED
@@ -28,10 +28,29 @@ module OData
|
|
28
28
|
"#<#{self.class.name}:#{self.object_id} namespace='#{self.namespace}' service_url='#{self.service_url}'>"
|
29
29
|
end
|
30
30
|
|
31
|
+
def get(model)
|
32
|
+
request = ::Typhoeus::Request.new(
|
33
|
+
"#{service_url}/#{model.odata_name}",
|
34
|
+
method: :get
|
35
|
+
)
|
36
|
+
request.run
|
37
|
+
response = request.response
|
38
|
+
feed = ::Nokogiri::XML(response.body).remove_namespaces!
|
39
|
+
feed.xpath('//entry')
|
40
|
+
end
|
41
|
+
|
31
42
|
private
|
32
43
|
|
33
44
|
def metadata
|
34
|
-
@metadata ||=
|
45
|
+
@metadata ||= lambda {
|
46
|
+
request = ::Typhoeus::Request.new(
|
47
|
+
"#{service_url}/$metadata",
|
48
|
+
method: :get
|
49
|
+
)
|
50
|
+
request.run
|
51
|
+
response = request.response
|
52
|
+
::Nokogiri::XML(response.body).remove_namespaces!
|
53
|
+
}.call
|
35
54
|
end
|
36
55
|
end
|
37
56
|
end
|
data/lib/odata/version.rb
CHANGED
data/odata.gemspec
CHANGED
@@ -1 +1,193 @@
|
|
1
|
-
<?xml version="1.0" encoding="utf-8"?><edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx"><edmx:DataServices m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"><Schema Namespace="ODataDemo" xmlns="http://schemas.microsoft.com/ado/2009/11/edm"><EntityType Name="Product"><Key><PropertyRef Name="ID" /></Key><Property Name="ID" Type="Edm.Int32" Nullable="false" /><Property Name="Name" Type="Edm.String" m:FC_TargetPath="SyndicationTitle" m:FC_ContentKind="text" m:FC_KeepInContent="false" /><Property Name="Description" Type="Edm.String" m:FC_TargetPath="SyndicationSummary" m:FC_ContentKind="text" m:FC_KeepInContent="false" /><Property Name="ReleaseDate" Type="Edm.DateTime" Nullable="false" /><Property Name="DiscontinuedDate" Type="Edm.DateTime" /><Property Name="Rating" Type="Edm.Int16" Nullable="false" /><Property Name="Price" Type="Edm.Double" Nullable="false" /><NavigationProperty Name="Categories" Relationship="ODataDemo.Product_Categories_Category_Products" ToRole="Category_Products" FromRole="Product_Categories" /><NavigationProperty Name="Supplier" Relationship="ODataDemo.Product_Supplier_Supplier_Products" ToRole="Supplier_Products" FromRole="Product_Supplier" /><NavigationProperty Name="ProductDetail" Relationship="ODataDemo.Product_ProductDetail_ProductDetail_Product" ToRole="ProductDetail_Product" FromRole="Product_ProductDetail" /></EntityType><EntityType Name="FeaturedProduct" BaseType="ODataDemo.Product"><NavigationProperty Name="Advertisement" Relationship="ODataDemo.FeaturedProduct_Advertisement_Advertisement_FeaturedProduct" ToRole="Advertisement_FeaturedProduct" FromRole="FeaturedProduct_Advertisement" /></EntityType><EntityType Name="ProductDetail"><Key><PropertyRef Name="ProductID" /></Key><Property Name="ProductID" Type="Edm.Int32" Nullable="false" /><Property Name="Details" Type="Edm.String" /><NavigationProperty Name="Product" Relationship="ODataDemo.Product_ProductDetail_ProductDetail_Product" ToRole="Product_ProductDetail" FromRole="ProductDetail_Product" /></EntityType><EntityType Name="Category" OpenType="true"><Key><PropertyRef Name="ID" /></Key><Property Name="ID" Type="Edm.Int32" Nullable="false" /><Property Name="Name" Type="Edm.String" m:FC_TargetPath="SyndicationTitle" m:FC_ContentKind="text" m:FC_KeepInContent="true" /><NavigationProperty Name="Products" Relationship="ODataDemo.Product_Categories_Category_Products" ToRole="Product_Categories" FromRole="Category_Products" /></EntityType><EntityType Name="Supplier"><Key><PropertyRef Name="ID" /></Key><Property Name="ID" Type="Edm.Int32" Nullable="false" /><Property Name="Name" Type="Edm.String" m:FC_TargetPath="SyndicationTitle" m:FC_ContentKind="text" m:FC_KeepInContent="true" /><Property Name="Address" Type="ODataDemo.Address" /><Property Name="Location" Type="Edm.GeographyPoint" SRID="Variable" /><Property Name="Concurrency" Type="Edm.Int32" ConcurrencyMode="Fixed" Nullable="false" /><NavigationProperty Name="Products" Relationship="ODataDemo.Product_Supplier_Supplier_Products" ToRole="Product_Supplier" FromRole="Supplier_Products" /></EntityType><ComplexType Name="Address"><Property Name="Street" Type="Edm.String" /><Property Name="City" Type="Edm.String" /><Property Name="State" Type="Edm.String" /><Property Name="ZipCode" Type="Edm.String" /><Property Name="Country" Type="Edm.String" /></ComplexType><EntityType Name="Person"><Key><PropertyRef Name="ID" /></Key><Property Name="ID" Type="Edm.Int32" Nullable="false" /><Property Name="Name" Type="Edm.String" /><NavigationProperty Name="PersonDetail" Relationship="ODataDemo.Person_PersonDetail_PersonDetail_Person" ToRole="PersonDetail_Person" FromRole="Person_PersonDetail" /></EntityType><EntityType Name="Customer" BaseType="ODataDemo.Person"><Property Name="TotalExpense" Type="Edm.Decimal" Nullable="false" /></EntityType><EntityType Name="Employee" BaseType="ODataDemo.Person"><Property Name="EmployeeID" Type="Edm.Int64" Nullable="false" /><Property Name="HireDate" Type="Edm.DateTime" Nullable="false" /><Property Name="Salary" Type="Edm.Single" Nullable="false" /></EntityType><EntityType Name="PersonDetail"><Key><PropertyRef Name="PersonID" /></Key><Property Name="PersonID" Type="Edm.Int32" Nullable="false" /><Property Name="Age" Type="Edm.Byte" Nullable="false" /><Property Name="Gender" Type="Edm.Boolean" Nullable="false" /><Property Name="Phone" Type="Edm.String" /><Property Name="Address" Type="ODataDemo.Address" /><Property Name="Photo" Type="Edm.Stream" Nullable="false" /><NavigationProperty Name="Person" Relationship="ODataDemo.Person_PersonDetail_PersonDetail_Person" ToRole="Person_PersonDetail" FromRole="PersonDetail_Person" /></EntityType><EntityType Name="Advertisement" m:HasStream="true"><Key><PropertyRef Name="ID" /></Key><Property Name="ID" Type="Edm.Guid" Nullable="false" /><Property Name="Name" Type="Edm.String" /><Property Name="AirDate" Type="Edm.DateTime" Nullable="false" /><NavigationProperty Name="FeaturedProduct" Relationship="ODataDemo.FeaturedProduct_Advertisement_Advertisement_FeaturedProduct" ToRole="FeaturedProduct_Advertisement" FromRole="Advertisement_FeaturedProduct" /></EntityType><Association Name="Product_Categories_Category_Products"><End Type="ODataDemo.Category" Role="Category_Products" Multiplicity="*" /><End Type="ODataDemo.Product" Role="Product_Categories" Multiplicity="*" /></Association><Association Name="Product_Supplier_Supplier_Products"><End Type="ODataDemo.Supplier" Role="Supplier_Products" Multiplicity="0..1" /><End Type="ODataDemo.Product" Role="Product_Supplier" Multiplicity="*" /></Association><Association Name="Product_ProductDetail_ProductDetail_Product"><End Type="ODataDemo.ProductDetail" Role="ProductDetail_Product" Multiplicity="0..1" /><End Type="ODataDemo.Product" Role="Product_ProductDetail" Multiplicity="0..1" /></Association><Association Name="FeaturedProduct_Advertisement_Advertisement_FeaturedProduct"><End Type="ODataDemo.Advertisement" Role="Advertisement_FeaturedProduct" Multiplicity="0..1" /><End Type="ODataDemo.FeaturedProduct" Role="FeaturedProduct_Advertisement" Multiplicity="0..1" /></Association><Association Name="Person_PersonDetail_PersonDetail_Person"><End Type="ODataDemo.PersonDetail" Role="PersonDetail_Person" Multiplicity="0..1" /><End Type="ODataDemo.Person" Role="Person_PersonDetail" Multiplicity="0..1" /></Association><EntityContainer Name="DemoService" m:IsDefaultEntityContainer="true"><EntitySet Name="Products" EntityType="ODataDemo.Product" /><EntitySet Name="ProductDetails" EntityType="ODataDemo.ProductDetail" /><EntitySet Name="Categories" EntityType="ODataDemo.Category" /><EntitySet Name="Suppliers" EntityType="ODataDemo.Supplier" /><EntitySet Name="Persons" EntityType="ODataDemo.Person" /><EntitySet Name="PersonDetails" EntityType="ODataDemo.PersonDetail" /><EntitySet Name="Advertisements" EntityType="ODataDemo.Advertisement" /><FunctionImport Name="GetProductsByRating" ReturnType="Collection(ODataDemo.Product)" EntitySet="Products" m:HttpMethod="GET"><Parameter Name="rating" Type="Edm.Int16" Nullable="false" /></FunctionImport><AssociationSet Name="Products_Advertisement_Advertisements" Association="ODataDemo.FeaturedProduct_Advertisement_Advertisement_FeaturedProduct"><End Role="FeaturedProduct_Advertisement" EntitySet="Products" /><End Role="Advertisement_FeaturedProduct" EntitySet="Advertisements" /></AssociationSet><AssociationSet Name="Products_Categories_Categories" Association="ODataDemo.Product_Categories_Category_Products"><End Role="Product_Categories" EntitySet="Products" /><End Role="Category_Products" EntitySet="Categories" /></AssociationSet><AssociationSet Name="Products_Supplier_Suppliers" Association="ODataDemo.Product_Supplier_Supplier_Products"><End Role="Product_Supplier" EntitySet="Products" /><End Role="Supplier_Products" EntitySet="Suppliers" /></AssociationSet><AssociationSet Name="Products_ProductDetail_ProductDetails" Association="ODataDemo.Product_ProductDetail_ProductDetail_Product"><End Role="Product_ProductDetail" EntitySet="Products" /><End Role="ProductDetail_Product" EntitySet="ProductDetails" /></AssociationSet><AssociationSet Name="Persons_PersonDetail_PersonDetails" Association="ODataDemo.Person_PersonDetail_PersonDetail_Person"><End Role="Person_PersonDetail" EntitySet="Persons" /><End Role="PersonDetail_Person" EntitySet="PersonDetails" /></AssociationSet></EntityContainer><Annotations Target="ODataDemo.DemoService"><ValueAnnotation Term="Org.OData.Display.V1.Description" String="This is a sample OData service with vocabularies" /></Annotations><Annotations Target="ODataDemo.Product"><ValueAnnotation Term="Org.OData.Display.V1.Description" String="All Products available in the online store" /></Annotations><Annotations Target="ODataDemo.Product/Name"><ValueAnnotation Term="Org.OData.Display.V1.DisplayName" String="Product Name" /></Annotations><Annotations Target="ODataDemo.DemoService/Suppliers"><ValueAnnotation Term="Org.OData.Publication.V1.PublisherName" String="Microsoft Corp." /><ValueAnnotation Term="Org.OData.Publication.V1.PublisherId" String="MSFT" /><ValueAnnotation Term="Org.OData.Publication.V1.Keywords" String="Inventory, Supplier, Advertisers, Sales, Finance" /><ValueAnnotation Term="Org.OData.Publication.V1.AttributionUrl" String="http://www.odata.org/" /><ValueAnnotation Term="Org.OData.Publication.V1.AttributionDescription" String="All rights reserved" /><ValueAnnotation Term="Org.OData.Publication.V1.DocumentationUrl " String="http://www.odata.org/" /><ValueAnnotation Term="Org.OData.Publication.V1.TermsOfUseUrl" String="All rights reserved" /><ValueAnnotation Term="Org.OData.Publication.V1.PrivacyPolicyUrl" String="http://www.odata.org/" /><ValueAnnotation Term="Org.OData.Publication.V1.LastModified" String="4/2/2013" /><ValueAnnotation Term="Org.OData.Publication.V1.ImageUrl " String="http://www.odata.org/" /></Annotations></Schema></edmx:DataServices></edmx:Edmx>
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<edmx:Edmx Version="1.0" xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx">
|
3
|
+
<edmx:DataServices m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0"
|
4
|
+
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata">
|
5
|
+
<Schema Namespace="ODataDemo" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
|
6
|
+
<EntityType Name="Product">
|
7
|
+
<Key>
|
8
|
+
<PropertyRef Name="ID"/>
|
9
|
+
</Key>
|
10
|
+
<Property Name="ID" Type="Edm.Int32" Nullable="false"/>
|
11
|
+
<Property Name="Name" Type="Edm.String" m:FC_TargetPath="SyndicationTitle" m:FC_ContentKind="text"
|
12
|
+
m:FC_KeepInContent="false"/>
|
13
|
+
<Property Name="Description" Type="Edm.String" m:FC_TargetPath="SyndicationSummary" m:FC_ContentKind="text"
|
14
|
+
m:FC_KeepInContent="false"/>
|
15
|
+
<Property Name="ReleaseDate" Type="Edm.DateTime" Nullable="false"/>
|
16
|
+
<Property Name="DiscontinuedDate" Type="Edm.DateTime"/>
|
17
|
+
<Property Name="Rating" Type="Edm.Int16" Nullable="false"/>
|
18
|
+
<Property Name="Price" Type="Edm.Double" Nullable="false"/>
|
19
|
+
<NavigationProperty Name="Categories" Relationship="ODataDemo.Product_Categories_Category_Products"
|
20
|
+
ToRole="Category_Products" FromRole="Product_Categories"/>
|
21
|
+
<NavigationProperty Name="Supplier" Relationship="ODataDemo.Product_Supplier_Supplier_Products"
|
22
|
+
ToRole="Supplier_Products" FromRole="Product_Supplier"/>
|
23
|
+
<NavigationProperty Name="ProductDetail" Relationship="ODataDemo.Product_ProductDetail_ProductDetail_Product"
|
24
|
+
ToRole="ProductDetail_Product" FromRole="Product_ProductDetail"/>
|
25
|
+
</EntityType>
|
26
|
+
<EntityType Name="FeaturedProduct" BaseType="ODataDemo.Product">
|
27
|
+
<NavigationProperty Name="Advertisement"
|
28
|
+
Relationship="ODataDemo.FeaturedProduct_Advertisement_Advertisement_FeaturedProduct"
|
29
|
+
ToRole="Advertisement_FeaturedProduct" FromRole="FeaturedProduct_Advertisement"/>
|
30
|
+
</EntityType>
|
31
|
+
<EntityType Name="ProductDetail">
|
32
|
+
<Key>
|
33
|
+
<PropertyRef Name="ProductID"/>
|
34
|
+
</Key>
|
35
|
+
<Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
|
36
|
+
<Property Name="Details" Type="Edm.String"/>
|
37
|
+
<NavigationProperty Name="Product" Relationship="ODataDemo.Product_ProductDetail_ProductDetail_Product"
|
38
|
+
ToRole="Product_ProductDetail" FromRole="ProductDetail_Product"/>
|
39
|
+
</EntityType>
|
40
|
+
<EntityType Name="Category" OpenType="true">
|
41
|
+
<Key>
|
42
|
+
<PropertyRef Name="ID"/>
|
43
|
+
</Key>
|
44
|
+
<Property Name="ID" Type="Edm.Int32" Nullable="false"/>
|
45
|
+
<Property Name="Name" Type="Edm.String" m:FC_TargetPath="SyndicationTitle" m:FC_ContentKind="text"
|
46
|
+
m:FC_KeepInContent="true"/>
|
47
|
+
<NavigationProperty Name="Products" Relationship="ODataDemo.Product_Categories_Category_Products"
|
48
|
+
ToRole="Product_Categories" FromRole="Category_Products"/>
|
49
|
+
</EntityType>
|
50
|
+
<EntityType Name="Supplier">
|
51
|
+
<Key>
|
52
|
+
<PropertyRef Name="ID"/>
|
53
|
+
</Key>
|
54
|
+
<Property Name="ID" Type="Edm.Int32" Nullable="false"/>
|
55
|
+
<Property Name="Name" Type="Edm.String" m:FC_TargetPath="SyndicationTitle" m:FC_ContentKind="text"
|
56
|
+
m:FC_KeepInContent="true"/>
|
57
|
+
<Property Name="Address" Type="ODataDemo.Address"/>
|
58
|
+
<Property Name="Location" Type="Edm.GeographyPoint" SRID="Variable"/>
|
59
|
+
<Property Name="Concurrency" Type="Edm.Int32" ConcurrencyMode="Fixed" Nullable="false"/>
|
60
|
+
<NavigationProperty Name="Products" Relationship="ODataDemo.Product_Supplier_Supplier_Products"
|
61
|
+
ToRole="Product_Supplier" FromRole="Supplier_Products"/>
|
62
|
+
</EntityType>
|
63
|
+
<ComplexType Name="Address">
|
64
|
+
<Property Name="Street" Type="Edm.String"/>
|
65
|
+
<Property Name="City" Type="Edm.String"/>
|
66
|
+
<Property Name="State" Type="Edm.String"/>
|
67
|
+
<Property Name="ZipCode" Type="Edm.String"/>
|
68
|
+
<Property Name="Country" Type="Edm.String"/>
|
69
|
+
</ComplexType>
|
70
|
+
<EntityType Name="Person">
|
71
|
+
<Key>
|
72
|
+
<PropertyRef Name="ID"/>
|
73
|
+
</Key>
|
74
|
+
<Property Name="ID" Type="Edm.Int32" Nullable="false"/>
|
75
|
+
<Property Name="Name" Type="Edm.String"/>
|
76
|
+
<NavigationProperty Name="PersonDetail" Relationship="ODataDemo.Person_PersonDetail_PersonDetail_Person"
|
77
|
+
ToRole="PersonDetail_Person" FromRole="Person_PersonDetail"/>
|
78
|
+
</EntityType>
|
79
|
+
<EntityType Name="Customer" BaseType="ODataDemo.Person">
|
80
|
+
<Property Name="TotalExpense" Type="Edm.Decimal" Nullable="false"/>
|
81
|
+
</EntityType>
|
82
|
+
<EntityType Name="Employee" BaseType="ODataDemo.Person">
|
83
|
+
<Property Name="EmployeeID" Type="Edm.Int64" Nullable="false"/>
|
84
|
+
<Property Name="HireDate" Type="Edm.DateTime" Nullable="false"/>
|
85
|
+
<Property Name="Salary" Type="Edm.Single" Nullable="false"/>
|
86
|
+
</EntityType>
|
87
|
+
<EntityType Name="PersonDetail">
|
88
|
+
<Key>
|
89
|
+
<PropertyRef Name="PersonID"/>
|
90
|
+
</Key>
|
91
|
+
<Property Name="PersonID" Type="Edm.Int32" Nullable="false"/>
|
92
|
+
<Property Name="Age" Type="Edm.Byte" Nullable="false"/>
|
93
|
+
<Property Name="Gender" Type="Edm.Boolean" Nullable="false"/>
|
94
|
+
<Property Name="Phone" Type="Edm.String"/>
|
95
|
+
<Property Name="Address" Type="ODataDemo.Address"/>
|
96
|
+
<Property Name="Photo" Type="Edm.Stream" Nullable="false"/>
|
97
|
+
<NavigationProperty Name="Person" Relationship="ODataDemo.Person_PersonDetail_PersonDetail_Person"
|
98
|
+
ToRole="Person_PersonDetail" FromRole="PersonDetail_Person"/>
|
99
|
+
</EntityType>
|
100
|
+
<EntityType Name="Advertisement" m:HasStream="true">
|
101
|
+
<Key>
|
102
|
+
<PropertyRef Name="ID"/>
|
103
|
+
</Key>
|
104
|
+
<Property Name="ID" Type="Edm.Guid" Nullable="false"/>
|
105
|
+
<Property Name="Name" Type="Edm.String"/>
|
106
|
+
<Property Name="AirDate" Type="Edm.DateTime" Nullable="false"/>
|
107
|
+
<NavigationProperty Name="FeaturedProduct"
|
108
|
+
Relationship="ODataDemo.FeaturedProduct_Advertisement_Advertisement_FeaturedProduct"
|
109
|
+
ToRole="FeaturedProduct_Advertisement" FromRole="Advertisement_FeaturedProduct"/>
|
110
|
+
</EntityType>
|
111
|
+
<Association Name="Product_Categories_Category_Products">
|
112
|
+
<End Type="ODataDemo.Category" Role="Category_Products" Multiplicity="*"/>
|
113
|
+
<End Type="ODataDemo.Product" Role="Product_Categories" Multiplicity="*"/>
|
114
|
+
</Association>
|
115
|
+
<Association Name="Product_Supplier_Supplier_Products">
|
116
|
+
<End Type="ODataDemo.Supplier" Role="Supplier_Products" Multiplicity="0..1"/>
|
117
|
+
<End Type="ODataDemo.Product" Role="Product_Supplier" Multiplicity="*"/>
|
118
|
+
</Association>
|
119
|
+
<Association Name="Product_ProductDetail_ProductDetail_Product">
|
120
|
+
<End Type="ODataDemo.ProductDetail" Role="ProductDetail_Product" Multiplicity="0..1"/>
|
121
|
+
<End Type="ODataDemo.Product" Role="Product_ProductDetail" Multiplicity="0..1"/>
|
122
|
+
</Association>
|
123
|
+
<Association Name="FeaturedProduct_Advertisement_Advertisement_FeaturedProduct">
|
124
|
+
<End Type="ODataDemo.Advertisement" Role="Advertisement_FeaturedProduct" Multiplicity="0..1"/>
|
125
|
+
<End Type="ODataDemo.FeaturedProduct" Role="FeaturedProduct_Advertisement" Multiplicity="0..1"/>
|
126
|
+
</Association>
|
127
|
+
<Association Name="Person_PersonDetail_PersonDetail_Person">
|
128
|
+
<End Type="ODataDemo.PersonDetail" Role="PersonDetail_Person" Multiplicity="0..1"/>
|
129
|
+
<End Type="ODataDemo.Person" Role="Person_PersonDetail" Multiplicity="0..1"/>
|
130
|
+
</Association>
|
131
|
+
<EntityContainer Name="DemoService" m:IsDefaultEntityContainer="true">
|
132
|
+
<EntitySet Name="Products" EntityType="ODataDemo.Product"/>
|
133
|
+
<EntitySet Name="ProductDetails" EntityType="ODataDemo.ProductDetail"/>
|
134
|
+
<EntitySet Name="Categories" EntityType="ODataDemo.Category"/>
|
135
|
+
<EntitySet Name="Suppliers" EntityType="ODataDemo.Supplier"/>
|
136
|
+
<EntitySet Name="Persons" EntityType="ODataDemo.Person"/>
|
137
|
+
<EntitySet Name="PersonDetails" EntityType="ODataDemo.PersonDetail"/>
|
138
|
+
<EntitySet Name="Advertisements" EntityType="ODataDemo.Advertisement"/>
|
139
|
+
<FunctionImport Name="GetProductsByRating" ReturnType="Collection(ODataDemo.Product)" EntitySet="Products"
|
140
|
+
m:HttpMethod="GET">
|
141
|
+
<Parameter Name="rating" Type="Edm.Int16" Nullable="false"/>
|
142
|
+
</FunctionImport>
|
143
|
+
<AssociationSet Name="Products_Advertisement_Advertisements"
|
144
|
+
Association="ODataDemo.FeaturedProduct_Advertisement_Advertisement_FeaturedProduct">
|
145
|
+
<End Role="FeaturedProduct_Advertisement" EntitySet="Products"/>
|
146
|
+
<End Role="Advertisement_FeaturedProduct" EntitySet="Advertisements"/>
|
147
|
+
</AssociationSet>
|
148
|
+
<AssociationSet Name="Products_Categories_Categories"
|
149
|
+
Association="ODataDemo.Product_Categories_Category_Products">
|
150
|
+
<End Role="Product_Categories" EntitySet="Products"/>
|
151
|
+
<End Role="Category_Products" EntitySet="Categories"/>
|
152
|
+
</AssociationSet>
|
153
|
+
<AssociationSet Name="Products_Supplier_Suppliers" Association="ODataDemo.Product_Supplier_Supplier_Products">
|
154
|
+
<End Role="Product_Supplier" EntitySet="Products"/>
|
155
|
+
<End Role="Supplier_Products" EntitySet="Suppliers"/>
|
156
|
+
</AssociationSet>
|
157
|
+
<AssociationSet Name="Products_ProductDetail_ProductDetails"
|
158
|
+
Association="ODataDemo.Product_ProductDetail_ProductDetail_Product">
|
159
|
+
<End Role="Product_ProductDetail" EntitySet="Products"/>
|
160
|
+
<End Role="ProductDetail_Product" EntitySet="ProductDetails"/>
|
161
|
+
</AssociationSet>
|
162
|
+
<AssociationSet Name="Persons_PersonDetail_PersonDetails"
|
163
|
+
Association="ODataDemo.Person_PersonDetail_PersonDetail_Person">
|
164
|
+
<End Role="Person_PersonDetail" EntitySet="Persons"/>
|
165
|
+
<End Role="PersonDetail_Person" EntitySet="PersonDetails"/>
|
166
|
+
</AssociationSet>
|
167
|
+
</EntityContainer>
|
168
|
+
<Annotations Target="ODataDemo.DemoService">
|
169
|
+
<ValueAnnotation Term="Org.OData.Display.V1.Description"
|
170
|
+
String="This is a sample OData service with vocabularies"/>
|
171
|
+
</Annotations>
|
172
|
+
<Annotations Target="ODataDemo.Product">
|
173
|
+
<ValueAnnotation Term="Org.OData.Display.V1.Description" String="All Products available in the online store"/>
|
174
|
+
</Annotations>
|
175
|
+
<Annotations Target="ODataDemo.Product/Name">
|
176
|
+
<ValueAnnotation Term="Org.OData.Display.V1.DisplayName" String="Product Name"/>
|
177
|
+
</Annotations>
|
178
|
+
<Annotations Target="ODataDemo.DemoService/Suppliers">
|
179
|
+
<ValueAnnotation Term="Org.OData.Publication.V1.PublisherName" String="Microsoft Corp."/>
|
180
|
+
<ValueAnnotation Term="Org.OData.Publication.V1.PublisherId" String="MSFT"/>
|
181
|
+
<ValueAnnotation Term="Org.OData.Publication.V1.Keywords"
|
182
|
+
String="Inventory, Supplier, Advertisers, Sales, Finance"/>
|
183
|
+
<ValueAnnotation Term="Org.OData.Publication.V1.AttributionUrl" String="http://www.odata.org/"/>
|
184
|
+
<ValueAnnotation Term="Org.OData.Publication.V1.AttributionDescription" String="All rights reserved"/>
|
185
|
+
<ValueAnnotation Term="Org.OData.Publication.V1.DocumentationUrl " String="http://www.odata.org/"/>
|
186
|
+
<ValueAnnotation Term="Org.OData.Publication.V1.TermsOfUseUrl" String="All rights reserved"/>
|
187
|
+
<ValueAnnotation Term="Org.OData.Publication.V1.PrivacyPolicyUrl" String="http://www.odata.org/"/>
|
188
|
+
<ValueAnnotation Term="Org.OData.Publication.V1.LastModified" String="4/2/2013"/>
|
189
|
+
<ValueAnnotation Term="Org.OData.Publication.V1.ImageUrl " String="http://www.odata.org/"/>
|
190
|
+
</Annotations>
|
191
|
+
</Schema>
|
192
|
+
</edmx:DataServices>
|
193
|
+
</edmx:Edmx>
|
@@ -0,0 +1,378 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<feed xml:base="http://services.odata.org/OData/OData.svc/" xmlns="http://www.w3.org/2005/Atom"
|
3
|
+
xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices"
|
4
|
+
xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"
|
5
|
+
xmlns:georss="http://www.georss.org/georss" xmlns:gml="http://www.opengis.net/gml">
|
6
|
+
<id>http://services.odata.org/OData/OData.svc/Products</id>
|
7
|
+
<title type="text">Products</title>
|
8
|
+
<updated>2014-06-20T06:22:58Z</updated>
|
9
|
+
<link rel="self" title="Products" href="Products"/>
|
10
|
+
<entry>
|
11
|
+
<id>http://services.odata.org/OData/OData.svc/Products(0)</id>
|
12
|
+
<category term="ODataDemo.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
|
13
|
+
<link rel="edit" title="Product" href="Products(0)"/>
|
14
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories"
|
15
|
+
type="application/atom+xml;type=feed" title="Categories" href="Products(0)/Categories"/>
|
16
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier"
|
17
|
+
type="application/atom+xml;type=entry" title="Supplier" href="Products(0)/Supplier"/>
|
18
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail"
|
19
|
+
type="application/atom+xml;type=entry" title="ProductDetail" href="Products(0)/ProductDetail"/>
|
20
|
+
<title type="text">Bread</title>
|
21
|
+
<summary type="text">Whole grain bread</summary>
|
22
|
+
<updated>2014-06-20T06:22:58Z</updated>
|
23
|
+
<author>
|
24
|
+
<name/>
|
25
|
+
</author>
|
26
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml"
|
27
|
+
title="Categories" href="Products(0)/$links/Categories"/>
|
28
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml"
|
29
|
+
title="Supplier" href="Products(0)/$links/Supplier"/>
|
30
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml"
|
31
|
+
title="ProductDetail" href="Products(0)/$links/ProductDetail"/>
|
32
|
+
<content type="application/xml">
|
33
|
+
<m:properties>
|
34
|
+
<d:ID m:type="Edm.Int32">0</d:ID>
|
35
|
+
<d:ReleaseDate m:type="Edm.DateTime">1992-01-01T00:00:00</d:ReleaseDate>
|
36
|
+
<d:DiscontinuedDate m:null="true"/>
|
37
|
+
<d:Rating m:type="Edm.Int16">4</d:Rating>
|
38
|
+
<d:Price m:type="Edm.Double">2.5</d:Price>
|
39
|
+
</m:properties>
|
40
|
+
</content>
|
41
|
+
</entry>
|
42
|
+
<entry>
|
43
|
+
<id>http://services.odata.org/OData/OData.svc/Products(1)</id>
|
44
|
+
<category term="ODataDemo.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
|
45
|
+
<link rel="edit" title="Product" href="Products(1)"/>
|
46
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories"
|
47
|
+
type="application/atom+xml;type=feed" title="Categories" href="Products(1)/Categories"/>
|
48
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier"
|
49
|
+
type="application/atom+xml;type=entry" title="Supplier" href="Products(1)/Supplier"/>
|
50
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail"
|
51
|
+
type="application/atom+xml;type=entry" title="ProductDetail" href="Products(1)/ProductDetail"/>
|
52
|
+
<title type="text">Milk</title>
|
53
|
+
<summary type="text">Low fat milk</summary>
|
54
|
+
<updated>2014-06-20T06:22:58Z</updated>
|
55
|
+
<author>
|
56
|
+
<name/>
|
57
|
+
</author>
|
58
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml"
|
59
|
+
title="Categories" href="Products(1)/$links/Categories"/>
|
60
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml"
|
61
|
+
title="Supplier" href="Products(1)/$links/Supplier"/>
|
62
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml"
|
63
|
+
title="ProductDetail" href="Products(1)/$links/ProductDetail"/>
|
64
|
+
<content type="application/xml">
|
65
|
+
<m:properties>
|
66
|
+
<d:ID m:type="Edm.Int32">1</d:ID>
|
67
|
+
<d:ReleaseDate m:type="Edm.DateTime">1995-10-01T00:00:00</d:ReleaseDate>
|
68
|
+
<d:DiscontinuedDate m:null="true"/>
|
69
|
+
<d:Rating m:type="Edm.Int16">3</d:Rating>
|
70
|
+
<d:Price m:type="Edm.Double">3.5</d:Price>
|
71
|
+
</m:properties>
|
72
|
+
</content>
|
73
|
+
</entry>
|
74
|
+
<entry>
|
75
|
+
<id>http://services.odata.org/OData/OData.svc/Products(2)</id>
|
76
|
+
<category term="ODataDemo.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
|
77
|
+
<link rel="edit" title="Product" href="Products(2)"/>
|
78
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories"
|
79
|
+
type="application/atom+xml;type=feed" title="Categories" href="Products(2)/Categories"/>
|
80
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier"
|
81
|
+
type="application/atom+xml;type=entry" title="Supplier" href="Products(2)/Supplier"/>
|
82
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail"
|
83
|
+
type="application/atom+xml;type=entry" title="ProductDetail" href="Products(2)/ProductDetail"/>
|
84
|
+
<title type="text">Vint soda</title>
|
85
|
+
<summary type="text">Americana Variety - Mix of 6 flavors</summary>
|
86
|
+
<updated>2014-06-20T06:22:58Z</updated>
|
87
|
+
<author>
|
88
|
+
<name/>
|
89
|
+
</author>
|
90
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml"
|
91
|
+
title="Categories" href="Products(2)/$links/Categories"/>
|
92
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml"
|
93
|
+
title="Supplier" href="Products(2)/$links/Supplier"/>
|
94
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml"
|
95
|
+
title="ProductDetail" href="Products(2)/$links/ProductDetail"/>
|
96
|
+
<content type="application/xml">
|
97
|
+
<m:properties>
|
98
|
+
<d:ID m:type="Edm.Int32">2</d:ID>
|
99
|
+
<d:ReleaseDate m:type="Edm.DateTime">2000-10-01T00:00:00</d:ReleaseDate>
|
100
|
+
<d:DiscontinuedDate m:null="true"/>
|
101
|
+
<d:Rating m:type="Edm.Int16">3</d:Rating>
|
102
|
+
<d:Price m:type="Edm.Double">20.9</d:Price>
|
103
|
+
</m:properties>
|
104
|
+
</content>
|
105
|
+
</entry>
|
106
|
+
<entry>
|
107
|
+
<id>http://services.odata.org/OData/OData.svc/Products(3)</id>
|
108
|
+
<category term="ODataDemo.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
|
109
|
+
<link rel="edit" title="Product" href="Products(3)"/>
|
110
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories"
|
111
|
+
type="application/atom+xml;type=feed" title="Categories" href="Products(3)/Categories"/>
|
112
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier"
|
113
|
+
type="application/atom+xml;type=entry" title="Supplier" href="Products(3)/Supplier"/>
|
114
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail"
|
115
|
+
type="application/atom+xml;type=entry" title="ProductDetail" href="Products(3)/ProductDetail"/>
|
116
|
+
<title type="text">Havina Cola</title>
|
117
|
+
<summary type="text">The Original Key Lime Cola</summary>
|
118
|
+
<updated>2014-06-20T06:22:58Z</updated>
|
119
|
+
<author>
|
120
|
+
<name/>
|
121
|
+
</author>
|
122
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml"
|
123
|
+
title="Categories" href="Products(3)/$links/Categories"/>
|
124
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml"
|
125
|
+
title="Supplier" href="Products(3)/$links/Supplier"/>
|
126
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml"
|
127
|
+
title="ProductDetail" href="Products(3)/$links/ProductDetail"/>
|
128
|
+
<content type="application/xml">
|
129
|
+
<m:properties>
|
130
|
+
<d:ID m:type="Edm.Int32">3</d:ID>
|
131
|
+
<d:ReleaseDate m:type="Edm.DateTime">2005-10-01T00:00:00</d:ReleaseDate>
|
132
|
+
<d:DiscontinuedDate m:type="Edm.DateTime">2006-10-01T00:00:00</d:DiscontinuedDate>
|
133
|
+
<d:Rating m:type="Edm.Int16">3</d:Rating>
|
134
|
+
<d:Price m:type="Edm.Double">19.9</d:Price>
|
135
|
+
</m:properties>
|
136
|
+
</content>
|
137
|
+
</entry>
|
138
|
+
<entry>
|
139
|
+
<id>http://services.odata.org/OData/OData.svc/Products(4)</id>
|
140
|
+
<category term="ODataDemo.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
|
141
|
+
<link rel="edit" title="Product" href="Products(4)"/>
|
142
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories"
|
143
|
+
type="application/atom+xml;type=feed" title="Categories" href="Products(4)/Categories"/>
|
144
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier"
|
145
|
+
type="application/atom+xml;type=entry" title="Supplier" href="Products(4)/Supplier"/>
|
146
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail"
|
147
|
+
type="application/atom+xml;type=entry" title="ProductDetail" href="Products(4)/ProductDetail"/>
|
148
|
+
<title type="text">Fruit Punch</title>
|
149
|
+
<summary type="text">Mango flavor, 8.3 Ounce Cans (Pack of 24)</summary>
|
150
|
+
<updated>2014-06-20T06:22:58Z</updated>
|
151
|
+
<author>
|
152
|
+
<name/>
|
153
|
+
</author>
|
154
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml"
|
155
|
+
title="Categories" href="Products(4)/$links/Categories"/>
|
156
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml"
|
157
|
+
title="Supplier" href="Products(4)/$links/Supplier"/>
|
158
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml"
|
159
|
+
title="ProductDetail" href="Products(4)/$links/ProductDetail"/>
|
160
|
+
<content type="application/xml">
|
161
|
+
<m:properties>
|
162
|
+
<d:ID m:type="Edm.Int32">4</d:ID>
|
163
|
+
<d:ReleaseDate m:type="Edm.DateTime">2003-01-05T00:00:00</d:ReleaseDate>
|
164
|
+
<d:DiscontinuedDate m:null="true"/>
|
165
|
+
<d:Rating m:type="Edm.Int16">3</d:Rating>
|
166
|
+
<d:Price m:type="Edm.Double">22.99</d:Price>
|
167
|
+
</m:properties>
|
168
|
+
</content>
|
169
|
+
</entry>
|
170
|
+
<entry>
|
171
|
+
<id>http://services.odata.org/OData/OData.svc/Products(5)</id>
|
172
|
+
<category term="ODataDemo.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
|
173
|
+
<link rel="edit" title="Product" href="Products(5)"/>
|
174
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories"
|
175
|
+
type="application/atom+xml;type=feed" title="Categories" href="Products(5)/Categories"/>
|
176
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier"
|
177
|
+
type="application/atom+xml;type=entry" title="Supplier" href="Products(5)/Supplier"/>
|
178
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail"
|
179
|
+
type="application/atom+xml;type=entry" title="ProductDetail" href="Products(5)/ProductDetail"/>
|
180
|
+
<title type="text">Cranberry Juice</title>
|
181
|
+
<summary type="text">16-Ounce Plastic Bottles (Pack of 12)</summary>
|
182
|
+
<updated>2014-06-20T06:22:58Z</updated>
|
183
|
+
<author>
|
184
|
+
<name/>
|
185
|
+
</author>
|
186
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml"
|
187
|
+
title="Categories" href="Products(5)/$links/Categories"/>
|
188
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml"
|
189
|
+
title="Supplier" href="Products(5)/$links/Supplier"/>
|
190
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml"
|
191
|
+
title="ProductDetail" href="Products(5)/$links/ProductDetail"/>
|
192
|
+
<content type="application/xml">
|
193
|
+
<m:properties>
|
194
|
+
<d:ID m:type="Edm.Int32">5</d:ID>
|
195
|
+
<d:ReleaseDate m:type="Edm.DateTime">2006-08-04T00:00:00</d:ReleaseDate>
|
196
|
+
<d:DiscontinuedDate m:null="true"/>
|
197
|
+
<d:Rating m:type="Edm.Int16">3</d:Rating>
|
198
|
+
<d:Price m:type="Edm.Double">22.8</d:Price>
|
199
|
+
</m:properties>
|
200
|
+
</content>
|
201
|
+
</entry>
|
202
|
+
<entry>
|
203
|
+
<id>http://services.odata.org/OData/OData.svc/Products(6)</id>
|
204
|
+
<category term="ODataDemo.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
|
205
|
+
<link rel="edit" title="Product" href="Products(6)"/>
|
206
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories"
|
207
|
+
type="application/atom+xml;type=feed" title="Categories" href="Products(6)/Categories"/>
|
208
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier"
|
209
|
+
type="application/atom+xml;type=entry" title="Supplier" href="Products(6)/Supplier"/>
|
210
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail"
|
211
|
+
type="application/atom+xml;type=entry" title="ProductDetail" href="Products(6)/ProductDetail"/>
|
212
|
+
<title type="text">Pink Lemonade</title>
|
213
|
+
<summary type="text">36 Ounce Cans (Pack of 3)</summary>
|
214
|
+
<updated>2014-06-20T06:22:58Z</updated>
|
215
|
+
<author>
|
216
|
+
<name/>
|
217
|
+
</author>
|
218
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml"
|
219
|
+
title="Categories" href="Products(6)/$links/Categories"/>
|
220
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml"
|
221
|
+
title="Supplier" href="Products(6)/$links/Supplier"/>
|
222
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml"
|
223
|
+
title="ProductDetail" href="Products(6)/$links/ProductDetail"/>
|
224
|
+
<content type="application/xml">
|
225
|
+
<m:properties>
|
226
|
+
<d:ID m:type="Edm.Int32">6</d:ID>
|
227
|
+
<d:ReleaseDate m:type="Edm.DateTime">2006-11-05T00:00:00</d:ReleaseDate>
|
228
|
+
<d:DiscontinuedDate m:null="true"/>
|
229
|
+
<d:Rating m:type="Edm.Int16">3</d:Rating>
|
230
|
+
<d:Price m:type="Edm.Double">18.8</d:Price>
|
231
|
+
</m:properties>
|
232
|
+
</content>
|
233
|
+
</entry>
|
234
|
+
<entry>
|
235
|
+
<id>http://services.odata.org/OData/OData.svc/Products(7)</id>
|
236
|
+
<category term="ODataDemo.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
|
237
|
+
<link rel="edit" title="Product" href="Products(7)"/>
|
238
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories"
|
239
|
+
type="application/atom+xml;type=feed" title="Categories" href="Products(7)/Categories"/>
|
240
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier"
|
241
|
+
type="application/atom+xml;type=entry" title="Supplier" href="Products(7)/Supplier"/>
|
242
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail"
|
243
|
+
type="application/atom+xml;type=entry" title="ProductDetail" href="Products(7)/ProductDetail"/>
|
244
|
+
<title type="text">DVD Player</title>
|
245
|
+
<summary type="text">1080P Upconversion DVD Player</summary>
|
246
|
+
<updated>2014-06-20T06:22:58Z</updated>
|
247
|
+
<author>
|
248
|
+
<name/>
|
249
|
+
</author>
|
250
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml"
|
251
|
+
title="Categories" href="Products(7)/$links/Categories"/>
|
252
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml"
|
253
|
+
title="Supplier" href="Products(7)/$links/Supplier"/>
|
254
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml"
|
255
|
+
title="ProductDetail" href="Products(7)/$links/ProductDetail"/>
|
256
|
+
<content type="application/xml">
|
257
|
+
<m:properties>
|
258
|
+
<d:ID m:type="Edm.Int32">7</d:ID>
|
259
|
+
<d:ReleaseDate m:type="Edm.DateTime">2006-11-15T00:00:00</d:ReleaseDate>
|
260
|
+
<d:DiscontinuedDate m:null="true"/>
|
261
|
+
<d:Rating m:type="Edm.Int16">5</d:Rating>
|
262
|
+
<d:Price m:type="Edm.Double">35.88</d:Price>
|
263
|
+
</m:properties>
|
264
|
+
</content>
|
265
|
+
</entry>
|
266
|
+
<entry>
|
267
|
+
<id>http://services.odata.org/OData/OData.svc/Products(8)</id>
|
268
|
+
<category term="ODataDemo.Product" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
|
269
|
+
<link rel="edit" title="Product" href="Products(8)"/>
|
270
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories"
|
271
|
+
type="application/atom+xml;type=feed" title="Categories" href="Products(8)/Categories"/>
|
272
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier"
|
273
|
+
type="application/atom+xml;type=entry" title="Supplier" href="Products(8)/Supplier"/>
|
274
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail"
|
275
|
+
type="application/atom+xml;type=entry" title="ProductDetail" href="Products(8)/ProductDetail"/>
|
276
|
+
<title type="text">LCD HDTV</title>
|
277
|
+
<summary type="text">42 inch 1080p LCD with Built-in Blu-ray Disc Player</summary>
|
278
|
+
<updated>2014-06-20T06:22:58Z</updated>
|
279
|
+
<author>
|
280
|
+
<name/>
|
281
|
+
</author>
|
282
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml"
|
283
|
+
title="Categories" href="Products(8)/$links/Categories"/>
|
284
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml"
|
285
|
+
title="Supplier" href="Products(8)/$links/Supplier"/>
|
286
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml"
|
287
|
+
title="ProductDetail" href="Products(8)/$links/ProductDetail"/>
|
288
|
+
<content type="application/xml">
|
289
|
+
<m:properties>
|
290
|
+
<d:ID m:type="Edm.Int32">8</d:ID>
|
291
|
+
<d:ReleaseDate m:type="Edm.DateTime">2008-05-08T00:00:00</d:ReleaseDate>
|
292
|
+
<d:DiscontinuedDate m:null="true"/>
|
293
|
+
<d:Rating m:type="Edm.Int16">3</d:Rating>
|
294
|
+
<d:Price m:type="Edm.Double">1088.8</d:Price>
|
295
|
+
</m:properties>
|
296
|
+
</content>
|
297
|
+
</entry>
|
298
|
+
<entry>
|
299
|
+
<id>http://services.odata.org/OData/OData.svc/Products(9)</id>
|
300
|
+
<category term="ODataDemo.FeaturedProduct" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
|
301
|
+
<link rel="edit" title="Product" href="Products(9)/ODataDemo.FeaturedProduct"/>
|
302
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories"
|
303
|
+
type="application/atom+xml;type=feed" title="Categories"
|
304
|
+
href="Products(9)/ODataDemo.FeaturedProduct/Categories"/>
|
305
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier"
|
306
|
+
type="application/atom+xml;type=entry" title="Supplier"
|
307
|
+
href="Products(9)/ODataDemo.FeaturedProduct/Supplier"/>
|
308
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail"
|
309
|
+
type="application/atom+xml;type=entry" title="ProductDetail"
|
310
|
+
href="Products(9)/ODataDemo.FeaturedProduct/ProductDetail"/>
|
311
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Advertisement"
|
312
|
+
type="application/atom+xml;type=entry" title="Advertisement"
|
313
|
+
href="Products(9)/ODataDemo.FeaturedProduct/Advertisement"/>
|
314
|
+
<title type="text">Lemonade</title>
|
315
|
+
<summary type="text">Classic, refreshing lemonade (Single bottle)</summary>
|
316
|
+
<updated>2014-06-20T06:22:58Z</updated>
|
317
|
+
<author>
|
318
|
+
<name/>
|
319
|
+
</author>
|
320
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml"
|
321
|
+
title="Categories" href="Products(9)/ODataDemo.FeaturedProduct/$links/Categories"/>
|
322
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml"
|
323
|
+
title="Supplier" href="Products(9)/ODataDemo.FeaturedProduct/$links/Supplier"/>
|
324
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml"
|
325
|
+
title="ProductDetail" href="Products(9)/ODataDemo.FeaturedProduct/$links/ProductDetail"/>
|
326
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Advertisement" type="application/xml"
|
327
|
+
title="Advertisement" href="Products(9)/ODataDemo.FeaturedProduct/$links/Advertisement"/>
|
328
|
+
<content type="application/xml">
|
329
|
+
<m:properties>
|
330
|
+
<d:ID m:type="Edm.Int32">9</d:ID>
|
331
|
+
<d:ReleaseDate m:type="Edm.DateTime">1970-01-01T00:00:00</d:ReleaseDate>
|
332
|
+
<d:DiscontinuedDate m:null="true"/>
|
333
|
+
<d:Rating m:type="Edm.Int16">7</d:Rating>
|
334
|
+
<d:Price m:type="Edm.Double">1.01</d:Price>
|
335
|
+
</m:properties>
|
336
|
+
</content>
|
337
|
+
</entry>
|
338
|
+
<entry>
|
339
|
+
<id>http://services.odata.org/OData/OData.svc/Products(10)</id>
|
340
|
+
<category term="ODataDemo.FeaturedProduct" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
|
341
|
+
<link rel="edit" title="Product" href="Products(10)/ODataDemo.FeaturedProduct"/>
|
342
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Categories"
|
343
|
+
type="application/atom+xml;type=feed" title="Categories"
|
344
|
+
href="Products(10)/ODataDemo.FeaturedProduct/Categories"/>
|
345
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Supplier"
|
346
|
+
type="application/atom+xml;type=entry" title="Supplier"
|
347
|
+
href="Products(10)/ODataDemo.FeaturedProduct/Supplier"/>
|
348
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ProductDetail"
|
349
|
+
type="application/atom+xml;type=entry" title="ProductDetail"
|
350
|
+
href="Products(10)/ODataDemo.FeaturedProduct/ProductDetail"/>
|
351
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Advertisement"
|
352
|
+
type="application/atom+xml;type=entry" title="Advertisement"
|
353
|
+
href="Products(10)/ODataDemo.FeaturedProduct/Advertisement"/>
|
354
|
+
<title type="text">Coffee</title>
|
355
|
+
<summary type="text">Bulk size can of instant coffee</summary>
|
356
|
+
<updated>2014-06-20T06:22:58Z</updated>
|
357
|
+
<author>
|
358
|
+
<name/>
|
359
|
+
</author>
|
360
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Categories" type="application/xml"
|
361
|
+
title="Categories" href="Products(10)/ODataDemo.FeaturedProduct/$links/Categories"/>
|
362
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Supplier" type="application/xml"
|
363
|
+
title="Supplier" href="Products(10)/ODataDemo.FeaturedProduct/$links/Supplier"/>
|
364
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/ProductDetail" type="application/xml"
|
365
|
+
title="ProductDetail" href="Products(10)/ODataDemo.FeaturedProduct/$links/ProductDetail"/>
|
366
|
+
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/relatedlinks/Advertisement" type="application/xml"
|
367
|
+
title="Advertisement" href="Products(10)/ODataDemo.FeaturedProduct/$links/Advertisement"/>
|
368
|
+
<content type="application/xml">
|
369
|
+
<m:properties>
|
370
|
+
<d:ID m:type="Edm.Int32">10</d:ID>
|
371
|
+
<d:ReleaseDate m:type="Edm.DateTime">1982-12-31T00:00:00</d:ReleaseDate>
|
372
|
+
<d:DiscontinuedDate m:null="true"/>
|
373
|
+
<d:Rating m:type="Edm.Int16">1</d:Rating>
|
374
|
+
<d:Price m:type="Edm.Double">6.99</d:Price>
|
375
|
+
</m:properties>
|
376
|
+
</content>
|
377
|
+
</entry>
|
378
|
+
</feed>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'examples/product_model'
|
3
|
+
|
4
|
+
describe OData::Model do
|
5
|
+
describe 'class methods' do
|
6
|
+
it { expect(::Examples::Product).to respond_to(:model_name) }
|
7
|
+
it { expect(::Examples::Product.model_name).to eq('Product') }
|
8
|
+
it { expect(::Examples::Product.odata_name).to eq('Products') }
|
9
|
+
end
|
10
|
+
|
11
|
+
describe 'defining properties' do
|
12
|
+
let(:subject) { ::Examples::Product.new }
|
13
|
+
|
14
|
+
it { expect(subject).to respond_to(:id) }
|
15
|
+
it { expect(subject).to respond_to(:name) }
|
16
|
+
it { expect(subject).to respond_to(:description) }
|
17
|
+
it { expect(subject).to respond_to(:release_date) }
|
18
|
+
it { expect(subject).to respond_to(:discontinued_date) }
|
19
|
+
it { expect(subject).to respond_to(:rating) }
|
20
|
+
it { expect(subject).to respond_to(:price) }
|
21
|
+
|
22
|
+
it { expect(::Examples::Product).to respond_to(:primary_key) }
|
23
|
+
it { expect(::Examples::Product.primary_key).to eq(:id)}
|
24
|
+
end
|
25
|
+
end
|
data/spec/odata/service_spec.rb
CHANGED
@@ -11,10 +11,20 @@ describe OData::Service do
|
|
11
11
|
OData::ServiceRegistry.instance.send(:flush)
|
12
12
|
end
|
13
13
|
|
14
|
-
describe '
|
14
|
+
describe '.open' do
|
15
15
|
it { expect(OData::Service).to respond_to(:open) }
|
16
16
|
end
|
17
17
|
|
18
|
+
it 'adds itself to OData::ServiceRegistry on creation' do
|
19
|
+
expect(OData::ServiceRegistry['ODataDemo']).to be_nil
|
20
|
+
expect(OData::ServiceRegistry['http://services.odata.org/OData/OData.svc']).to be_nil
|
21
|
+
|
22
|
+
service = OData::Service.open('http://services.odata.org/OData/OData.svc')
|
23
|
+
|
24
|
+
expect(OData::ServiceRegistry['ODataDemo']).to eq(service)
|
25
|
+
expect(OData::ServiceRegistry['http://services.odata.org/OData/OData.svc']).to eq(service)
|
26
|
+
end
|
27
|
+
|
18
28
|
describe 'instance methods' do
|
19
29
|
it { expect(subject).to respond_to(:service_url) }
|
20
30
|
it { expect(subject).to respond_to(:entities) }
|
@@ -40,13 +50,7 @@ describe OData::Service do
|
|
40
50
|
it { expect(subject.namespace).to eq('ODataDemo') }
|
41
51
|
end
|
42
52
|
|
43
|
-
|
44
|
-
expect(
|
45
|
-
expect(OData::ServiceRegistry['http://services.odata.org/OData/OData.svc']).to be_nil
|
46
|
-
|
47
|
-
service = OData::Service.open('http://services.odata.org/OData/OData.svc')
|
48
|
-
|
49
|
-
expect(OData::ServiceRegistry['ODataDemo']).to eq(service)
|
50
|
-
expect(OData::ServiceRegistry['http://services.odata.org/OData/OData.svc']).to eq(service)
|
53
|
+
describe '#get' do
|
54
|
+
it { expect(subject.get(::Examples::Product).size).to eq(11) }
|
51
55
|
end
|
52
56
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -34,5 +34,8 @@ RSpec.configure do |config|
|
|
34
34
|
config.before(:example) do
|
35
35
|
WebMock.stub_request(:get, 'http://services.odata.org/OData/OData.svc/$metadata').
|
36
36
|
to_return(status: 200, body: File.open('spec/fixtures/sample_service/metadata.xml'))
|
37
|
+
|
38
|
+
WebMock.stub_request(:get, 'http://services.odata.org/OData/OData.svc/Products').
|
39
|
+
to_return(status: 200, body: File.open('spec/fixtures/sample_service/products.xml'))
|
37
40
|
end
|
38
41
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: odata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Thompson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -108,6 +108,34 @@ dependencies:
|
|
108
108
|
- - "~>"
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: 1.6.2
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: activesupport
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 3.0.0
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 3.0.0
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: typhoeus
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.6.8
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: 0.6.8
|
111
139
|
description: Provides a simple interface for working with OData APIs.
|
112
140
|
email:
|
113
141
|
- james@plainprograms.com
|
@@ -117,18 +145,23 @@ extra_rdoc_files: []
|
|
117
145
|
files:
|
118
146
|
- ".gitignore"
|
119
147
|
- ".rspec"
|
148
|
+
- ".ruby-version"
|
120
149
|
- ".travis.yml"
|
121
150
|
- Gemfile
|
122
151
|
- LICENSE.txt
|
123
152
|
- README.md
|
124
153
|
- Rakefile
|
125
154
|
- lib/odata.rb
|
155
|
+
- lib/odata/model.rb
|
126
156
|
- lib/odata/railtie.rb
|
127
157
|
- lib/odata/service.rb
|
128
158
|
- lib/odata/service_registry.rb
|
129
159
|
- lib/odata/version.rb
|
130
160
|
- odata.gemspec
|
161
|
+
- spec/examples/product_model.rb
|
131
162
|
- spec/fixtures/sample_service/metadata.xml
|
163
|
+
- spec/fixtures/sample_service/products.xml
|
164
|
+
- spec/odata/model_spec.rb
|
132
165
|
- spec/odata/service_registry_spec.rb
|
133
166
|
- spec/odata/service_spec.rb
|
134
167
|
- spec/spec_helper.rb
|
@@ -157,7 +190,10 @@ signing_key:
|
|
157
190
|
specification_version: 4
|
158
191
|
summary: Simple OData library
|
159
192
|
test_files:
|
193
|
+
- spec/examples/product_model.rb
|
160
194
|
- spec/fixtures/sample_service/metadata.xml
|
195
|
+
- spec/fixtures/sample_service/products.xml
|
196
|
+
- spec/odata/model_spec.rb
|
161
197
|
- spec/odata/service_registry_spec.rb
|
162
198
|
- spec/odata/service_spec.rb
|
163
199
|
- spec/spec_helper.rb
|