appengine-utils 0.0.0 → 0.1.0
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/Gemfile +2 -0
- data/Gemfile.lock +3 -0
- data/VERSION +1 -1
- data/appengine-utils.gemspec +86 -0
- data/lib/appengine-utils/model/relationship.rb +83 -0
- data/lib/appengine-utils/model.rb +15 -13
- data/lib/appengine-utils.rb +3 -1
- data/spec/appengine-utils/relationship_spec.rb +126 -0
- data/spec/spec_helper.rb +4 -1
- metadata +41 -23
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -12,6 +12,8 @@ GEM
|
|
12
12
|
dm-core (1.0.2)
|
13
13
|
addressable (~> 2.2)
|
14
14
|
extlib (~> 0.9.15)
|
15
|
+
dm-validations (1.0.2)
|
16
|
+
dm-core (~> 1.0.2)
|
15
17
|
extlib (0.9.15)
|
16
18
|
git (1.2.5)
|
17
19
|
jeweler (1.5.1)
|
@@ -35,6 +37,7 @@ DEPENDENCIES
|
|
35
37
|
appengine-sdk (= 1.4.0)
|
36
38
|
bundler (~> 1.0.0)
|
37
39
|
dm-core (= 1.0.2)
|
40
|
+
dm-validations (= 1.0.2)
|
38
41
|
jeweler (~> 1.5.1)
|
39
42
|
rcov
|
40
43
|
rspec (= 1.3.0)
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.1.0
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{appengine-utils}
|
8
|
+
s.version = "0.1.0"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Marcel Schlimper"]
|
12
|
+
s.date = %q{2011-02-08}
|
13
|
+
s.description = %q{some helper and util stuff for the jruby wrapper for the google app engine to make life easy}
|
14
|
+
s.email = %q{mschlimp@googlemail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE.txt",
|
17
|
+
"README",
|
18
|
+
"README.rdoc"
|
19
|
+
]
|
20
|
+
s.files = [
|
21
|
+
"Gemfile",
|
22
|
+
"Gemfile.lock",
|
23
|
+
"LICENSE.txt",
|
24
|
+
"README",
|
25
|
+
"README.rdoc",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"appengine-utils.gemspec",
|
29
|
+
"lib/appengine-utils.rb",
|
30
|
+
"lib/appengine-utils/datastore/blob.rb",
|
31
|
+
"lib/appengine-utils/model.rb",
|
32
|
+
"lib/appengine-utils/model/relationship.rb",
|
33
|
+
"spec/appengine-utils/datastore/blob_spec.rb",
|
34
|
+
"spec/appengine-utils/model_spec.rb",
|
35
|
+
"spec/appengine-utils/relationship_spec.rb",
|
36
|
+
"spec/appengine-utils_spec.rb",
|
37
|
+
"spec/spec_helper.rb"
|
38
|
+
]
|
39
|
+
s.homepage = %q{http://github.com/mschlimp/appengine-utils}
|
40
|
+
s.licenses = ["MIT"]
|
41
|
+
s.require_paths = ["lib"]
|
42
|
+
s.rubygems_version = %q{1.3.6}
|
43
|
+
s.summary = %q{some helper and util stuff for the jruby wrapper for the google app engine}
|
44
|
+
s.test_files = [
|
45
|
+
"spec/appengine-utils/datastore/blob_spec.rb",
|
46
|
+
"spec/appengine-utils/model_spec.rb",
|
47
|
+
"spec/appengine-utils/relationship_spec.rb",
|
48
|
+
"spec/appengine-utils_spec.rb",
|
49
|
+
"spec/spec_helper.rb"
|
50
|
+
]
|
51
|
+
|
52
|
+
if s.respond_to? :specification_version then
|
53
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
54
|
+
s.specification_version = 3
|
55
|
+
|
56
|
+
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
57
|
+
s.add_runtime_dependency(%q<dm-core>, ["= 1.0.2"])
|
58
|
+
s.add_runtime_dependency(%q<dm-validations>, ["= 1.0.2"])
|
59
|
+
s.add_runtime_dependency(%q<appengine-sdk>, ["= 1.4.0"])
|
60
|
+
s.add_runtime_dependency(%q<appengine-apis>, ["= 0.0.22"])
|
61
|
+
s.add_development_dependency(%q<rspec>, ["= 1.3.0"])
|
62
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
63
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.5.1"])
|
64
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
65
|
+
else
|
66
|
+
s.add_dependency(%q<dm-core>, ["= 1.0.2"])
|
67
|
+
s.add_dependency(%q<dm-validations>, ["= 1.0.2"])
|
68
|
+
s.add_dependency(%q<appengine-sdk>, ["= 1.4.0"])
|
69
|
+
s.add_dependency(%q<appengine-apis>, ["= 0.0.22"])
|
70
|
+
s.add_dependency(%q<rspec>, ["= 1.3.0"])
|
71
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
72
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
73
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
74
|
+
end
|
75
|
+
else
|
76
|
+
s.add_dependency(%q<dm-core>, ["= 1.0.2"])
|
77
|
+
s.add_dependency(%q<dm-validations>, ["= 1.0.2"])
|
78
|
+
s.add_dependency(%q<appengine-sdk>, ["= 1.4.0"])
|
79
|
+
s.add_dependency(%q<appengine-apis>, ["= 0.0.22"])
|
80
|
+
s.add_dependency(%q<rspec>, ["= 1.3.0"])
|
81
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
82
|
+
s.add_dependency(%q<jeweler>, ["~> 1.5.1"])
|
83
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
@@ -0,0 +1,83 @@
|
|
1
|
+
module DataMapper
|
2
|
+
module Model
|
3
|
+
module Relationship
|
4
|
+
def blob(name)
|
5
|
+
add_relation_property(name)
|
6
|
+
add_model_reader(name)
|
7
|
+
add_model_writer(name)
|
8
|
+
|
9
|
+
add_before_save_method(name)
|
10
|
+
add_before_destroy_method(name)
|
11
|
+
|
12
|
+
add_filter_methods(name)
|
13
|
+
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def add_model_reader(name)
|
19
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
20
|
+
chainable do
|
21
|
+
def #{name}
|
22
|
+
if self.#{name}_id && !@#{name}
|
23
|
+
@#{name} = AppEngineUtils::Datastore::Blob.new.read(self.#{name}_id)
|
24
|
+
end
|
25
|
+
@#{name}
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
RUBY
|
30
|
+
end
|
31
|
+
|
32
|
+
#TODO: add model_writer
|
33
|
+
def add_model_writer(name)
|
34
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
35
|
+
chainable do
|
36
|
+
def #{name}=(value)
|
37
|
+
@#{name}=value
|
38
|
+
end
|
39
|
+
end
|
40
|
+
RUBY
|
41
|
+
end
|
42
|
+
|
43
|
+
def add_relation_property(name)
|
44
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
45
|
+
property :#{name}_id, String
|
46
|
+
RUBY
|
47
|
+
end
|
48
|
+
|
49
|
+
def add_filter_methods(name)
|
50
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
51
|
+
before :save, :before_save_#{name}
|
52
|
+
before :destroy, :before_destroy_#{name}
|
53
|
+
RUBY
|
54
|
+
end
|
55
|
+
|
56
|
+
def add_before_save_method(name)
|
57
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
58
|
+
def before_save_#{name}
|
59
|
+
if self.#{name}_id
|
60
|
+
blob = AppEngineUtils::Datastore::Blob.new
|
61
|
+
blob.destroy(self.#{name}_id)
|
62
|
+
end
|
63
|
+
if #{name}
|
64
|
+
blob = AppEngineUtils::Datastore::Blob.new
|
65
|
+
key = blob.create(#{name})
|
66
|
+
self.#{name}_id= key
|
67
|
+
end
|
68
|
+
end
|
69
|
+
RUBY
|
70
|
+
end
|
71
|
+
|
72
|
+
def add_before_destroy_method(name)
|
73
|
+
class_eval <<-RUBY, __FILE__, __LINE__ + 1
|
74
|
+
def before_destroy_#{name}
|
75
|
+
#if valid?
|
76
|
+
#end
|
77
|
+
end
|
78
|
+
RUBY
|
79
|
+
end
|
80
|
+
|
81
|
+
end
|
82
|
+
end
|
83
|
+
end
|
@@ -1,30 +1,32 @@
|
|
1
1
|
module DataMapper
|
2
2
|
module Model
|
3
|
-
|
3
|
+
|
4
|
+
include Relationship
|
5
|
+
#
|
4
6
|
#TODO: implementation of first_like
|
5
|
-
def first_like(*args)
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
#def first_like(*args)
|
8
|
+
# first_arg = args.first
|
9
|
+
# last_args= args[1..args.last]
|
10
|
+
# first_arg_array = first_args.split(" ")
|
9
11
|
|
10
12
|
#TODO: first_like: splite the column test
|
11
13
|
#TODO: get the ids from the single values
|
12
14
|
#TODO: prepair the find first
|
13
15
|
#TODO: run the statement
|
14
16
|
#TODO: return the result
|
15
|
-
|
17
|
+
#end
|
16
18
|
|
17
|
-
|
18
|
-
|
19
|
+
#def all_like(*args)
|
20
|
+
#end
|
19
21
|
|
20
|
-
private
|
22
|
+
#private
|
21
23
|
|
22
|
-
def all_for_token(tokens)
|
23
|
-
|
24
|
+
#def all_for_token(tokens)
|
25
|
+
# tokens.each do |token|
|
24
26
|
#TODO: find all relations for the token in the special table
|
25
27
|
#TODO: like_model_name_table
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
+
# end
|
30
|
+
#end
|
29
31
|
end
|
30
32
|
end
|
data/lib/appengine-utils.rb
CHANGED
@@ -0,0 +1,126 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
2
|
+
require 'appengine-utils/model/relationship'
|
3
|
+
require 'dm-core'
|
4
|
+
require 'dm-validations'
|
5
|
+
require 'dm-serializer'
|
6
|
+
|
7
|
+
DataMapper.setup(:default, "appengine://auto")
|
8
|
+
DataMapper.repository.adapter.singular_naming_convention!
|
9
|
+
|
10
|
+
|
11
|
+
describe DataMapper::Model::Relationship do
|
12
|
+
|
13
|
+
it 'should create a DM Model with a blob attribute' do
|
14
|
+
model = FixtureModel.new
|
15
|
+
model.methods.include?("test_blob").should be_true
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should create a DM Model with a blob relation property' do
|
19
|
+
model = FixtureModel.new
|
20
|
+
model.methods.include?("test_blob_id").should be_true
|
21
|
+
model.methods.include?("test_blob_id=").should be_true
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "filter methods" do
|
25
|
+
|
26
|
+
it 'should have a filter method for save' do
|
27
|
+
model = FixtureModel.new
|
28
|
+
model.methods.include?("before_save_test_blob").should be_true
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should have a filter method for destroy' do
|
32
|
+
model = FixtureModel.new
|
33
|
+
model.methods.include?("before_destroy_test_blob").should be_true
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
describe "call the filter methods" do
|
38
|
+
it 'should call the before save method' do
|
39
|
+
model = FixtureModel.new(:name => "test model")
|
40
|
+
model.should_receive(:before_save_test_blob).should be_true
|
41
|
+
model.save
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should call the before destroy method' do
|
45
|
+
model = FixtureModel.new(:name => "test model")
|
46
|
+
model.should_receive(:before_destroy_test_blob).should be_true
|
47
|
+
model.save
|
48
|
+
model.destroy
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "add a blob entity to the model" do
|
53
|
+
it 'should have a blob_test_id attribute' do
|
54
|
+
dataset = "\1" * 10
|
55
|
+
|
56
|
+
model = FixtureModel.new(:name => "test model")
|
57
|
+
model.test_blob=dataset
|
58
|
+
model.save.should be_true
|
59
|
+
model.test_blob_id.should_not be_nil
|
60
|
+
|
61
|
+
end
|
62
|
+
it 'should have a blob relation' do
|
63
|
+
dataset = "\1" * 10
|
64
|
+
|
65
|
+
model = FixtureModel.new(:name=> "test model")
|
66
|
+
model.test_blob= dataset
|
67
|
+
model.save
|
68
|
+
model.test_blob.should_not be_nil
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe "update a blob entity to the model" do
|
73
|
+
it 'should update a blob_test_id attribute' do
|
74
|
+
dataset = "\1" * 10
|
75
|
+
|
76
|
+
model = FixtureModel.new(:name => "test model")
|
77
|
+
model.test_blob= dataset
|
78
|
+
model.save
|
79
|
+
|
80
|
+
update_dataset = "\1" * 100
|
81
|
+
model.test_blob= update_dataset
|
82
|
+
#TODO: update without before :save???
|
83
|
+
model.save
|
84
|
+
|
85
|
+
model.test_blob.size.should == 100
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
describe "destroy a blob entity with the model" do
|
91
|
+
it 'should not have a blob_entity with the given key' do
|
92
|
+
dataset = "\1" * 10
|
93
|
+
|
94
|
+
model = FixtureModel.new(:name => "test model")
|
95
|
+
model.test_blob= dataset
|
96
|
+
model.save
|
97
|
+
|
98
|
+
key = model.test_blob_id
|
99
|
+
|
100
|
+
@entity = AppEngineUtils::Datastore::Blob.new
|
101
|
+
@entity.read(key).should_not be_nil
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
describe "read a blob entity with the model" do
|
106
|
+
it 'should read a blob_entity with the given key' do
|
107
|
+
dataset = "\1" * 10
|
108
|
+
|
109
|
+
model = FixtureModel.new(:name => "test model last")
|
110
|
+
model.test_blob= dataset
|
111
|
+
model.save
|
112
|
+
read_model = FixtureModel.first(:name => "test model last")
|
113
|
+
read_model.test_blob.should_not be_nil
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
|
119
|
+
class FixtureModel
|
120
|
+
include DataMapper::Resource
|
121
|
+
|
122
|
+
property :id, Serial
|
123
|
+
property :name, String
|
124
|
+
|
125
|
+
blob :test_blob
|
126
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
+
- 1
|
7
8
|
- 0
|
8
|
-
|
9
|
-
version: 0.0.0
|
9
|
+
version: 0.1.0
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Marcel Schlimper
|
@@ -14,13 +14,26 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-
|
17
|
+
date: 2011-02-08 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: dm-core
|
22
|
+
version_requirements: &id001 !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
segments:
|
27
|
+
- 1
|
28
|
+
- 0
|
29
|
+
- 2
|
30
|
+
version: 1.0.2
|
31
|
+
requirement: *id001
|
22
32
|
prerelease: false
|
23
|
-
|
33
|
+
type: :runtime
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: dm-validations
|
36
|
+
version_requirements: &id002 !ruby/object:Gem::Requirement
|
24
37
|
requirements:
|
25
38
|
- - "="
|
26
39
|
- !ruby/object:Gem::Version
|
@@ -29,12 +42,12 @@ dependencies:
|
|
29
42
|
- 0
|
30
43
|
- 2
|
31
44
|
version: 1.0.2
|
45
|
+
requirement: *id002
|
46
|
+
prerelease: false
|
32
47
|
type: :runtime
|
33
|
-
version_requirements: *id001
|
34
48
|
- !ruby/object:Gem::Dependency
|
35
49
|
name: appengine-sdk
|
36
|
-
|
37
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
50
|
+
version_requirements: &id003 !ruby/object:Gem::Requirement
|
38
51
|
requirements:
|
39
52
|
- - "="
|
40
53
|
- !ruby/object:Gem::Version
|
@@ -43,12 +56,12 @@ dependencies:
|
|
43
56
|
- 4
|
44
57
|
- 0
|
45
58
|
version: 1.4.0
|
59
|
+
requirement: *id003
|
60
|
+
prerelease: false
|
46
61
|
type: :runtime
|
47
|
-
version_requirements: *id002
|
48
62
|
- !ruby/object:Gem::Dependency
|
49
63
|
name: appengine-apis
|
50
|
-
|
51
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
64
|
+
version_requirements: &id004 !ruby/object:Gem::Requirement
|
52
65
|
requirements:
|
53
66
|
- - "="
|
54
67
|
- !ruby/object:Gem::Version
|
@@ -57,12 +70,12 @@ dependencies:
|
|
57
70
|
- 0
|
58
71
|
- 22
|
59
72
|
version: 0.0.22
|
73
|
+
requirement: *id004
|
74
|
+
prerelease: false
|
60
75
|
type: :runtime
|
61
|
-
version_requirements: *id003
|
62
76
|
- !ruby/object:Gem::Dependency
|
63
77
|
name: rspec
|
64
|
-
|
65
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
78
|
+
version_requirements: &id005 !ruby/object:Gem::Requirement
|
66
79
|
requirements:
|
67
80
|
- - "="
|
68
81
|
- !ruby/object:Gem::Version
|
@@ -71,12 +84,12 @@ dependencies:
|
|
71
84
|
- 3
|
72
85
|
- 0
|
73
86
|
version: 1.3.0
|
87
|
+
requirement: *id005
|
88
|
+
prerelease: false
|
74
89
|
type: :development
|
75
|
-
version_requirements: *id004
|
76
90
|
- !ruby/object:Gem::Dependency
|
77
91
|
name: bundler
|
78
|
-
|
79
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
92
|
+
version_requirements: &id006 !ruby/object:Gem::Requirement
|
80
93
|
requirements:
|
81
94
|
- - ~>
|
82
95
|
- !ruby/object:Gem::Version
|
@@ -85,12 +98,12 @@ dependencies:
|
|
85
98
|
- 0
|
86
99
|
- 0
|
87
100
|
version: 1.0.0
|
101
|
+
requirement: *id006
|
102
|
+
prerelease: false
|
88
103
|
type: :development
|
89
|
-
version_requirements: *id005
|
90
104
|
- !ruby/object:Gem::Dependency
|
91
105
|
name: jeweler
|
92
|
-
|
93
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
106
|
+
version_requirements: &id007 !ruby/object:Gem::Requirement
|
94
107
|
requirements:
|
95
108
|
- - ~>
|
96
109
|
- !ruby/object:Gem::Version
|
@@ -99,20 +112,21 @@ dependencies:
|
|
99
112
|
- 5
|
100
113
|
- 1
|
101
114
|
version: 1.5.1
|
115
|
+
requirement: *id007
|
116
|
+
prerelease: false
|
102
117
|
type: :development
|
103
|
-
version_requirements: *id006
|
104
118
|
- !ruby/object:Gem::Dependency
|
105
119
|
name: rcov
|
106
|
-
|
107
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
120
|
+
version_requirements: &id008 !ruby/object:Gem::Requirement
|
108
121
|
requirements:
|
109
122
|
- - ">="
|
110
123
|
- !ruby/object:Gem::Version
|
111
124
|
segments:
|
112
125
|
- 0
|
113
126
|
version: "0"
|
127
|
+
requirement: *id008
|
128
|
+
prerelease: false
|
114
129
|
type: :development
|
115
|
-
version_requirements: *id007
|
116
130
|
description: some helper and util stuff for the jruby wrapper for the google app engine to make life easy
|
117
131
|
email: mschlimp@googlemail.com
|
118
132
|
executables: []
|
@@ -131,11 +145,14 @@ files:
|
|
131
145
|
- README.rdoc
|
132
146
|
- Rakefile
|
133
147
|
- VERSION
|
148
|
+
- appengine-utils.gemspec
|
134
149
|
- lib/appengine-utils.rb
|
135
150
|
- lib/appengine-utils/datastore/blob.rb
|
136
151
|
- lib/appengine-utils/model.rb
|
152
|
+
- lib/appengine-utils/model/relationship.rb
|
137
153
|
- spec/appengine-utils/datastore/blob_spec.rb
|
138
154
|
- spec/appengine-utils/model_spec.rb
|
155
|
+
- spec/appengine-utils/relationship_spec.rb
|
139
156
|
- spec/appengine-utils_spec.rb
|
140
157
|
- spec/spec_helper.rb
|
141
158
|
has_rdoc: true
|
@@ -171,5 +188,6 @@ summary: some helper and util stuff for the jruby wrapper for the google app eng
|
|
171
188
|
test_files:
|
172
189
|
- spec/appengine-utils/datastore/blob_spec.rb
|
173
190
|
- spec/appengine-utils/model_spec.rb
|
191
|
+
- spec/appengine-utils/relationship_spec.rb
|
174
192
|
- spec/appengine-utils_spec.rb
|
175
193
|
- spec/spec_helper.rb
|