ruby_odata 0.0.7 → 0.0.8
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.
- data/.gitignore +5 -1
- data/CHANGELOG.rdoc +46 -38
- data/Gemfile +4 -0
- data/LICENSE +24 -24
- data/README.rdoc +179 -153
- data/Rakefile +10 -28
- data/features/basic_auth.feature +24 -0
- data/features/batch_request.feature +94 -94
- data/features/complex_types.feature +52 -52
- data/features/query_builder.feature +153 -153
- data/features/service.feature +49 -49
- data/features/service_manage.feature +54 -44
- data/features/step_definitions/service_steps.rb +255 -243
- data/features/support/env.rb +14 -4
- data/features/support/hooks.rb +3 -3
- data/features/type_conversion.feature +53 -45
- data/lib/ruby_odata.rb +17 -17
- data/lib/ruby_odata/class_builder.rb +117 -109
- data/lib/ruby_odata/operation.rb +17 -17
- data/lib/ruby_odata/query_builder.rb +106 -106
- data/lib/ruby_odata/service.rb +359 -339
- data/lib/ruby_odata/version.rb +3 -0
- data/ruby_odata.gemspec +24 -78
- data/test/SampleService/App_Code/Entities.cs +105 -2
- data/test/SampleService/App_Code/Model.Designer.cs +24 -0
- data/test/SampleService/App_Code/Model.edmx +3 -0
- data/test/SampleService/App_Data/_TestDB.mdf +0 -0
- data/test/SampleService/App_Data/_TestDB_Log.ldf +0 -0
- data/test/SampleService/BasicAuth/Entities.svc +1 -0
- data/test/SampleService/web.config +11 -1
- data/test/blueprints.rb +20 -20
- data/test/iisExpress x64.bat +1 -0
- data/test/iisExpress x86.bat +1 -0
- metadata +88 -14
- data/VERSION +0 -1
data/ruby_odata.gemspec
CHANGED
@@ -1,85 +1,31 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in rakefile, and run the gemspec command
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "ruby_odata/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
9
|
-
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
s.
|
6
|
+
s.name = "ruby_odata"
|
7
|
+
s.version = OData::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Damien White"]
|
10
|
+
s.email = ["damien.white@visoftinc.com"]
|
11
|
+
s.homepage = %q{http://github.com/visoft/ruby_odata}
|
12
|
+
s.summary = %q{Ruby consumer of OData services.}
|
13
13
|
s.description = %q{An OData Client Library for Ruby. Use this to interact with OData services}
|
14
|
-
s.email = %q{damien.white@visoftinc.com}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"CHANGELOG.rdoc",
|
17
|
-
"LICENSE",
|
18
|
-
"README.rdoc"
|
19
|
-
]
|
20
|
-
s.files = [
|
21
|
-
".gitignore",
|
22
|
-
"CHANGELOG.rdoc",
|
23
|
-
"LICENSE",
|
24
|
-
"README.rdoc",
|
25
|
-
"Rakefile",
|
26
|
-
"VERSION",
|
27
|
-
"config/cucumber.yml",
|
28
|
-
"features/batch_request.feature",
|
29
|
-
"features/complex_types.feature",
|
30
|
-
"features/query_builder.feature",
|
31
|
-
"features/service.feature",
|
32
|
-
"features/service_manage.feature",
|
33
|
-
"features/step_definitions/service_steps.rb",
|
34
|
-
"features/support/env.rb",
|
35
|
-
"features/support/hooks.rb",
|
36
|
-
"features/type_conversion.feature",
|
37
|
-
"lib/ruby_odata.rb",
|
38
|
-
"lib/ruby_odata/class_builder.rb",
|
39
|
-
"lib/ruby_odata/operation.rb",
|
40
|
-
"lib/ruby_odata/query_builder.rb",
|
41
|
-
"lib/ruby_odata/service.rb",
|
42
|
-
"ruby_odata.gemspec",
|
43
|
-
"test/Cassini x64.bat",
|
44
|
-
"test/Cassini x86.bat",
|
45
|
-
"test/SampleService/App_Code/AuditFields.cs",
|
46
|
-
"test/SampleService/App_Code/Entities.cs",
|
47
|
-
"test/SampleService/App_Code/Model.Designer.cs",
|
48
|
-
"test/SampleService/App_Code/Model.edmx",
|
49
|
-
"test/SampleService/App_Code/ModelContainerExtended.cs",
|
50
|
-
"test/SampleService/App_Data/_TestDB.mdf",
|
51
|
-
"test/SampleService/App_Data/_TestDB_Log.ldf",
|
52
|
-
"test/SampleService/Entities.svc",
|
53
|
-
"test/SampleService/web.config",
|
54
|
-
"test/blueprints.rb"
|
55
|
-
]
|
56
|
-
s.homepage = %q{http://github.com/visoft/ruby_odata}
|
57
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
58
|
-
s.require_paths = ["lib"]
|
59
|
-
s.rubyforge_project = %q{ruby-odata}
|
60
|
-
s.rubygems_version = %q{1.3.7}
|
61
|
-
s.summary = %q{Ruby consumer of OData services.}
|
62
|
-
s.test_files = [
|
63
|
-
"test/blueprints.rb"
|
64
|
-
]
|
65
14
|
|
66
|
-
|
67
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
68
|
-
s.specification_version = 3
|
15
|
+
s.rubyforge_project = "ruby-odata"
|
69
16
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
else
|
80
|
-
s.add_dependency(%q<activesupport>, [">= 2.3.5"])
|
81
|
-
s.add_dependency(%q<rest-client>, [">= 1.5.1"])
|
82
|
-
s.add_dependency(%q<nokogiri>, [">= 1.4.2"])
|
83
|
-
end
|
84
|
-
end
|
17
|
+
s.add_dependency('activesupport', '>= 2.3.5')
|
18
|
+
s.add_dependency('rest-client', '>= 1.5.1')
|
19
|
+
s.add_dependency('nokogiri', '>= 1.4.2')
|
20
|
+
|
21
|
+
s.add_development_dependency('rspec')
|
22
|
+
s.add_development_dependency('cucumber')
|
23
|
+
s.add_development_dependency('sham')
|
24
|
+
s.add_development_dependency('faker')
|
25
|
+
s.add_development_dependency('machinist')
|
85
26
|
|
27
|
+
s.files = `git ls-files`.split("\n")
|
28
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
29
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
30
|
+
s.require_paths = ["lib"]
|
31
|
+
end
|
@@ -3,6 +3,10 @@ using System.Data.Services.Common;
|
|
3
3
|
using System.ServiceModel;
|
4
4
|
using System.ServiceModel.Web;
|
5
5
|
using System.Web;
|
6
|
+
using System;
|
7
|
+
using System.Linq;
|
8
|
+
using System.Security.Principal;
|
9
|
+
using System.Text;
|
6
10
|
using Model;
|
7
11
|
|
8
12
|
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
|
@@ -29,14 +33,113 @@ public class Entities : DataService< ModelContainer >
|
|
29
33
|
context.ExecuteStoreCommand("ALTER TABLE [dbo].[Products] ADD CONSTRAINT [FK_CategoryProduct] FOREIGN KEY ([Category_Id]) REFERENCES [dbo].[Categories]([Id])");
|
30
34
|
|
31
35
|
}
|
32
|
-
|
36
|
+
|
33
37
|
protected override void OnStartProcessingRequest(ProcessRequestArgs args)
|
34
38
|
{
|
35
39
|
base.OnStartProcessingRequest(args);
|
36
40
|
if (args.RequestUri.AbsoluteUri.ToLower().EndsWith("cleandatabasefortesting"))
|
37
41
|
{
|
38
|
-
|
42
|
+
var hostAddress = HttpContext.Current.Request.UserHostAddress;
|
43
|
+
if (hostAddress != "127.0.0.1" && hostAddress != "::1")
|
39
44
|
throw new DataServiceException(401, "Access Denied");
|
40
45
|
}
|
41
46
|
}
|
42
47
|
}
|
48
|
+
|
49
|
+
public class OurBasicAuthenticationModule: IHttpModule
|
50
|
+
{
|
51
|
+
public void Init(HttpApplication context)
|
52
|
+
{
|
53
|
+
context.AuthenticateRequest
|
54
|
+
+= new EventHandler(context_AuthenticateRequest);
|
55
|
+
}
|
56
|
+
|
57
|
+
void context_AuthenticateRequest(object sender, EventArgs e)
|
58
|
+
{
|
59
|
+
HttpApplication application = (HttpApplication)sender;
|
60
|
+
|
61
|
+
// Only require authentication if BasicAuth is in the URI path
|
62
|
+
if (( application.Context.Request.Url.AbsoluteUri.Contains("BasicAuth")) &&
|
63
|
+
(!CustomBasicAuthenticationProvider.Authenticate(application.Context)))
|
64
|
+
{
|
65
|
+
application.Context.Response.Status = "401 Unauthorized";
|
66
|
+
application.Context.Response.StatusCode = 401;
|
67
|
+
application.Context.Response.AddHeader("WWW-Authenticate", "Basic");
|
68
|
+
application.CompleteRequest();
|
69
|
+
}
|
70
|
+
}
|
71
|
+
|
72
|
+
public void Dispose() { }
|
73
|
+
|
74
|
+
} // class OurBasicAuthenticationModule: IHttpModule
|
75
|
+
|
76
|
+
public class CustomBasicAuthenticationProvider
|
77
|
+
{
|
78
|
+
public static bool Authenticate(HttpContext context)
|
79
|
+
{
|
80
|
+
if (!HttpContext.Current.Request.Headers.AllKeys.Contains("Authorization"))
|
81
|
+
return false;
|
82
|
+
|
83
|
+
string authHeader = HttpContext.Current.Request.Headers["Authorization"];
|
84
|
+
|
85
|
+
IPrincipal principal;
|
86
|
+
if (TryGetPrincipal(authHeader, out principal))
|
87
|
+
{
|
88
|
+
HttpContext.Current.User = principal;
|
89
|
+
return true;
|
90
|
+
}
|
91
|
+
return false;
|
92
|
+
}
|
93
|
+
|
94
|
+
private static bool TryGetPrincipal(string authHeader, out IPrincipal principal)
|
95
|
+
{
|
96
|
+
var creds = ParseAuthHeader(authHeader);
|
97
|
+
if (creds != null && TryGetPrincipal(creds, out principal))
|
98
|
+
return true;
|
99
|
+
|
100
|
+
principal = null;
|
101
|
+
return false;
|
102
|
+
}
|
103
|
+
|
104
|
+
private static bool TryGetPrincipal(string[] creds,out IPrincipal principal)
|
105
|
+
{
|
106
|
+
if (creds[0] == "admin" && creds[1] == "passwd")
|
107
|
+
{
|
108
|
+
principal = new GenericPrincipal(
|
109
|
+
new GenericIdentity("Administrator"),
|
110
|
+
new string[] {"Administrator", "User"}
|
111
|
+
);
|
112
|
+
return true;
|
113
|
+
}
|
114
|
+
else
|
115
|
+
{
|
116
|
+
principal = null;
|
117
|
+
return false;
|
118
|
+
}
|
119
|
+
}
|
120
|
+
|
121
|
+
private static string[] ParseAuthHeader(string authHeader)
|
122
|
+
{
|
123
|
+
// Check this is a Basic Auth header
|
124
|
+
if (
|
125
|
+
authHeader == null ||
|
126
|
+
authHeader.Length == 0 ||
|
127
|
+
!authHeader.StartsWith("Basic")
|
128
|
+
) return null;
|
129
|
+
|
130
|
+
// Pull out the Credentials with are seperated by ':' and Base64 encoded
|
131
|
+
// Won't handle password with : in it, but that's OK for these tests
|
132
|
+
string base64Credentials = authHeader.Substring(6);
|
133
|
+
string[] credentials = Encoding.ASCII.GetString(
|
134
|
+
Convert.FromBase64String(base64Credentials)
|
135
|
+
).Split(new char[] { ':' });
|
136
|
+
|
137
|
+
if (credentials.Length != 2 ||
|
138
|
+
string.IsNullOrEmpty(credentials[0]) ||
|
139
|
+
string.IsNullOrEmpty(credentials[0])
|
140
|
+
) return null;
|
141
|
+
|
142
|
+
return credentials;
|
143
|
+
}
|
144
|
+
|
145
|
+
} // class CustomBasicAuthenticationProvider
|
@@ -365,6 +365,30 @@ namespace Model
|
|
365
365
|
private global::System.Decimal _Price;
|
366
366
|
partial void OnPriceChanging(global::System.Decimal value);
|
367
367
|
partial void OnPriceChanged();
|
368
|
+
|
369
|
+
/// <summary>
|
370
|
+
/// No Metadata Documentation available.
|
371
|
+
/// </summary>
|
372
|
+
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
|
373
|
+
[DataMemberAttribute()]
|
374
|
+
public Nullable<global::System.DateTime> DiscontinuedDate
|
375
|
+
{
|
376
|
+
get
|
377
|
+
{
|
378
|
+
return _DiscontinuedDate;
|
379
|
+
}
|
380
|
+
set
|
381
|
+
{
|
382
|
+
OnDiscontinuedDateChanging(value);
|
383
|
+
ReportPropertyChanging("DiscontinuedDate");
|
384
|
+
_DiscontinuedDate = StructuralObject.SetValidValue(value);
|
385
|
+
ReportPropertyChanged("DiscontinuedDate");
|
386
|
+
OnDiscontinuedDateChanged();
|
387
|
+
}
|
388
|
+
}
|
389
|
+
private Nullable<global::System.DateTime> _DiscontinuedDate;
|
390
|
+
partial void OnDiscontinuedDateChanging(Nullable<global::System.DateTime> value);
|
391
|
+
partial void OnDiscontinuedDateChanged();
|
368
392
|
|
369
393
|
#endregion
|
370
394
|
#region Complex Properties
|
@@ -32,6 +32,7 @@
|
|
32
32
|
<Property Name="CreateDate" Type="datetime" Nullable="false" />
|
33
33
|
<Property Name="ModifiedDate" Type="datetime" Nullable="false" />
|
34
34
|
<Property Name="CreatedBy" Type="nvarchar" MaxLength="50" />
|
35
|
+
<Property Name="DiscontinuedDate" Type="datetime" />
|
35
36
|
</EntityType>
|
36
37
|
<Association Name="FK_CategoryProduct">
|
37
38
|
<End Role="Categories" Type="Model.Store.Categories" Multiplicity="1" />
|
@@ -67,6 +68,7 @@
|
|
67
68
|
<Property Type="Decimal" Name="Price" Nullable="false" />
|
68
69
|
<NavigationProperty Name="Category" Relationship="Model.CategoryProduct" FromRole="Product" ToRole="Category" />
|
69
70
|
<Property Name="AuditFields" Type="Model.AuditFields" Nullable="false" />
|
71
|
+
<Property Type="DateTime" Name="DiscontinuedDate" Nullable="true" />
|
70
72
|
</EntityType>
|
71
73
|
<EntityType Name="Category">
|
72
74
|
<Key>
|
@@ -94,6 +96,7 @@
|
|
94
96
|
<EntitySetMapping Name="Products">
|
95
97
|
<EntityTypeMapping TypeName="IsTypeOf(Model.Product)">
|
96
98
|
<MappingFragment StoreEntitySet="Products">
|
99
|
+
<ScalarProperty Name="DiscontinuedDate" ColumnName="DiscontinuedDate" />
|
97
100
|
<ScalarProperty Name="Id" ColumnName="Id" />
|
98
101
|
<ScalarProperty Name="Name" ColumnName="Name" />
|
99
102
|
<ScalarProperty Name="Description" ColumnName="Description" />
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
<%@ ServiceHost Language="C#" Factory="System.Data.Services.DataServiceHostFactory" Service="Entities" %>
|
@@ -4,6 +4,14 @@
|
|
4
4
|
http://go.microsoft.com/fwlink/?LinkId=169433
|
5
5
|
-->
|
6
6
|
<configuration>
|
7
|
+
|
8
|
+
<system.webServer>
|
9
|
+
<modules>
|
10
|
+
<add name="OurBasicAuthenticationModule"
|
11
|
+
type="OurBasicAuthenticationModule"/>
|
12
|
+
</modules>
|
13
|
+
</system.webServer>
|
14
|
+
|
7
15
|
<system.web>
|
8
16
|
<compilation debug="true" targetFramework="4.0">
|
9
17
|
<assemblies>
|
@@ -24,4 +32,6 @@
|
|
24
32
|
<system.serviceModel>
|
25
33
|
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
|
26
34
|
</system.serviceModel>
|
27
|
-
</configuration>
|
35
|
+
</configuration>
|
36
|
+
|
37
|
+
|
data/test/blueprints.rb
CHANGED
@@ -1,21 +1,21 @@
|
|
1
|
-
Sham.define do
|
2
|
-
category_name
|
3
|
-
product_name
|
4
|
-
price(:unique => false)
|
5
|
-
end
|
6
|
-
|
7
|
-
Product.blueprint do
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
end
|
14
|
-
|
15
|
-
Category.blueprint do
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
AuditFields.blueprint do
|
20
|
-
CreatedBy "Cucumber"
|
1
|
+
Sham.define do
|
2
|
+
category_name { |i| "Category #{i}" }
|
3
|
+
product_name { |i| "Widget #{i}" }
|
4
|
+
price(:unique => false) { ['5.00', '10.00', '20.00', '15.00' , '25.00', '7.50'].rand }
|
5
|
+
end
|
6
|
+
|
7
|
+
Product.blueprint do
|
8
|
+
Name { Sham.product_name }
|
9
|
+
Description "Test Widget"
|
10
|
+
Price { Sham.price }
|
11
|
+
Category { Category.make }
|
12
|
+
AuditFields { AuditFields.make }
|
13
|
+
end
|
14
|
+
|
15
|
+
Category.blueprint do
|
16
|
+
Name { Sham.category_name }
|
17
|
+
end
|
18
|
+
|
19
|
+
AuditFields.blueprint do
|
20
|
+
CreatedBy "Cucumber"
|
21
21
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
"%ProgramFiles(x86)%\iis express\iisexpress" /port:8888 /path:"%~dp0SampleService" /vpath:"/SampleService"
|
@@ -0,0 +1 @@
|
|
1
|
+
"%ProgramFiles%\iis express\iisexpress" /port:8888 /path:"%~dp0SampleService" /vpath:"/SampleService"
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_odata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 15
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 8
|
10
|
+
version: 0.0.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Damien White
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2011-03-12 23:00:00 -05:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -66,24 +66,94 @@ dependencies:
|
|
66
66
|
version: 1.4.2
|
67
67
|
type: :runtime
|
68
68
|
version_requirements: *id003
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
prerelease: false
|
72
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ">="
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
hash: 3
|
78
|
+
segments:
|
79
|
+
- 0
|
80
|
+
version: "0"
|
81
|
+
type: :development
|
82
|
+
version_requirements: *id004
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: cucumber
|
85
|
+
prerelease: false
|
86
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
hash: 3
|
92
|
+
segments:
|
93
|
+
- 0
|
94
|
+
version: "0"
|
95
|
+
type: :development
|
96
|
+
version_requirements: *id005
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: sham
|
99
|
+
prerelease: false
|
100
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
hash: 3
|
106
|
+
segments:
|
107
|
+
- 0
|
108
|
+
version: "0"
|
109
|
+
type: :development
|
110
|
+
version_requirements: *id006
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: faker
|
113
|
+
prerelease: false
|
114
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
115
|
+
none: false
|
116
|
+
requirements:
|
117
|
+
- - ">="
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
hash: 3
|
120
|
+
segments:
|
121
|
+
- 0
|
122
|
+
version: "0"
|
123
|
+
type: :development
|
124
|
+
version_requirements: *id007
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: machinist
|
127
|
+
prerelease: false
|
128
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ">="
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
hash: 3
|
134
|
+
segments:
|
135
|
+
- 0
|
136
|
+
version: "0"
|
137
|
+
type: :development
|
138
|
+
version_requirements: *id008
|
69
139
|
description: An OData Client Library for Ruby. Use this to interact with OData services
|
70
|
-
email:
|
140
|
+
email:
|
141
|
+
- damien.white@visoftinc.com
|
71
142
|
executables: []
|
72
143
|
|
73
144
|
extensions: []
|
74
145
|
|
75
|
-
extra_rdoc_files:
|
76
|
-
|
77
|
-
- LICENSE
|
78
|
-
- README.rdoc
|
146
|
+
extra_rdoc_files: []
|
147
|
+
|
79
148
|
files:
|
80
149
|
- .gitignore
|
81
150
|
- CHANGELOG.rdoc
|
151
|
+
- Gemfile
|
82
152
|
- LICENSE
|
83
153
|
- README.rdoc
|
84
154
|
- Rakefile
|
85
|
-
- VERSION
|
86
155
|
- config/cucumber.yml
|
156
|
+
- features/basic_auth.feature
|
87
157
|
- features/batch_request.feature
|
88
158
|
- features/complex_types.feature
|
89
159
|
- features/query_builder.feature
|
@@ -98,6 +168,7 @@ files:
|
|
98
168
|
- lib/ruby_odata/operation.rb
|
99
169
|
- lib/ruby_odata/query_builder.rb
|
100
170
|
- lib/ruby_odata/service.rb
|
171
|
+
- lib/ruby_odata/version.rb
|
101
172
|
- ruby_odata.gemspec
|
102
173
|
- test/Cassini x64.bat
|
103
174
|
- test/Cassini x86.bat
|
@@ -108,16 +179,19 @@ files:
|
|
108
179
|
- test/SampleService/App_Code/ModelContainerExtended.cs
|
109
180
|
- test/SampleService/App_Data/_TestDB.mdf
|
110
181
|
- test/SampleService/App_Data/_TestDB_Log.ldf
|
182
|
+
- test/SampleService/BasicAuth/Entities.svc
|
111
183
|
- test/SampleService/Entities.svc
|
112
184
|
- test/SampleService/web.config
|
113
185
|
- test/blueprints.rb
|
186
|
+
- test/iisExpress x64.bat
|
187
|
+
- test/iisExpress x86.bat
|
114
188
|
has_rdoc: true
|
115
189
|
homepage: http://github.com/visoft/ruby_odata
|
116
190
|
licenses: []
|
117
191
|
|
118
192
|
post_install_message:
|
119
|
-
rdoc_options:
|
120
|
-
|
193
|
+
rdoc_options: []
|
194
|
+
|
121
195
|
require_paths:
|
122
196
|
- lib
|
123
197
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -145,5 +219,5 @@ rubygems_version: 1.3.7
|
|
145
219
|
signing_key:
|
146
220
|
specification_version: 3
|
147
221
|
summary: Ruby consumer of OData services.
|
148
|
-
test_files:
|
149
|
-
|
222
|
+
test_files: []
|
223
|
+
|