diametric 0.1.1-java → 0.1.2-java

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.
@@ -21,7 +21,7 @@ describe Diametric::Persistence::Peer, :jruby do
21
21
  author.update(:books => [book])
22
22
  result = Diametric::Persistence::Peer.q("[:find ?e ?name ?books :in $ :where [?e :author/name ?name] [?e :author/books ?books]]", @conn.db)
23
23
  boo_dbid = result.first[2]
24
- boo = Author.from_dbid_or_entity(boo_dbid, @conn)
24
+ boo = Author.reify(boo_dbid, @conn)
25
25
  boo.title.should == "Candy"
26
26
  end
27
27
 
@@ -35,11 +35,12 @@ describe Diametric::Persistence::Peer, :jruby do
35
35
  author.update(:books => [book1, book2])
36
36
  result = Diametric::Persistence::Peer.q("[:find ?e ?name ?books :in $ :where [?e :author/name ?name] [?e :author/books ?books]]", @conn.db)
37
37
  result.size.should == 2
38
- boo_dbid = result[0][2]
39
- boo = Book.from_dbid_or_entity(boo_dbid, @conn)
38
+ result_in_array = result.to_a
39
+ boo_dbid = result_in_array[0][2]
40
+ boo = Book.reify(boo_dbid, @conn)
40
41
  boo.title.should match(/Honey|Chips/)
41
- foo_dbid = result[1][2]
42
- foo = Book.from_dbid_or_entity(boo_dbid, @conn)
42
+ foo_dbid = result_in_array[1][2]
43
+ foo = Book.reify(boo_dbid, @conn)
43
44
  foo.title.should match(/Honey|Chips/)
44
45
  end
45
46
 
@@ -58,19 +59,19 @@ describe Diametric::Persistence::Peer, :jruby do
58
59
  result = Diametric::Persistence::Peer.q("[:find ?e :in $ [?name] :where [?e :author/name ?name]]", @conn.db, ["Ms. Wilber"])
59
60
  result.size.should == 1
60
61
  result.first.first.to_s.should == author1.dbid.to_s
61
- a = Author.from_dbid_or_entity(result.first.first, @conn)
62
+ a = Author.reify(result.first.first, @conn)
62
63
  a.books.size.should == 2
63
64
  a.books.each do |b|
64
- Author.from_dbid_or_entity(b, @conn).title.should match(/Pie|Donuts/)
65
+ Author.reify(b, @conn).title.should match(/Pie|Donuts/)
65
66
  end
66
67
 
67
68
  result = Diametric::Persistence::Peer.q("[:find ?e :in $ [?title] :where [?e :book/title ?title]]", @conn.db, ["Pie"])
68
69
  result.size.should == 1
69
70
  result.first.first.to_s.should == book1.dbid.to_s
70
- b = Book.from_dbid_or_entity(result.first.first, @conn)
71
+ b = Book.reify(result.first.first, @conn)
71
72
  b.authors.size.should == 2
72
73
  b.authors.each do |a|
73
- Book.from_dbid_or_entity(a, @conn).name.should match(/Ms\.\sWilber|Mr\.\sSmith/)
74
+ Book.reify(a, @conn).name.should match(/Ms\.\sWilber|Mr\.\sSmith/)
74
75
  end
75
76
  end
76
77
  end
@@ -5,7 +5,9 @@ class Somebody
5
5
  include Diametric::Persistence::Peer
6
6
 
7
7
  attribute :name, String
8
- attribute :parent, Ref, :cardinality => :one
8
+ attribute :mom, Ref, :cardinality => :one
9
+ attribute :dad, Ref, :cardinality => :one
10
+ attribute :kids, Ref, :cardinality => :many
9
11
  end
10
12
 
11
13
  describe "RailsConf 2013", :jruby => true do
@@ -13,30 +15,33 @@ describe "RailsConf 2013", :jruby => true do
13
15
  before(:all) do
14
16
  datomic_uri = "datomic:mem://somebody-#{SecureRandom.uuid}"
15
17
  @conn = Diametric::Persistence::Peer.connect(datomic_uri)
18
+ Somebody.create_schema(@conn).get
16
19
  end
20
+
17
21
  after(:all) do
18
22
  @conn.release
19
23
  end
20
24
 
21
- it "should create schema" do
22
- binding.pry
23
- Sombody.create_schema(@conn)
24
- end
25
-
26
25
  it "should create instances" do
27
- alice = Somebody.new
28
- alice.name = "Alice Wonderland"
29
- alice.parent = ""
30
- yoko.save
26
+ mom = Somebody.new(name: "Snow White")
27
+ mom.save(@conn)
28
+ dad = Somebody.new(name: "Prince Brave")
29
+ dad.save(@conn)
31
30
  binding.pry
32
-
33
- clinton = Developer.new(:name => "Clinton N. Dreisbach", :friends => [yoko])
34
- clinton.save
31
+ Somebody.new(name: "Alice Wonderland", mom: mom, dad: dad).save(@conn)
35
32
  binding.pry
36
-
37
- ryan = Developer.new(:name => "Ryan Neufeld", :friends => [clinton, yoko])
38
- ryan.save
33
+ me = Diametric::Query.new(Somebody, @conn, true).where(name: "Alice Wonderland").first
34
+ binding.pry
35
+ puts "me: #{me.name}, me's mom: #{me.mom.name}, me's dad: #{me.dad.name}"
36
+ mario = Somebody.new(name: "Mario", mom: me)
37
+ mario.save
38
+ luigi = Somebody.new(name: "Luigi", mom: me)
39
+ luigi.save
40
+ me.update_attributes(kids: [mario, luigi])
41
+ me = Diametric::Query.new(Somebody, @conn, true).where(name: "Alice Wonderland").first
42
+ puts me.kids.inspect
39
43
  binding.pry
44
+ puts Somebody.reify(me.kids.first.mom).name
40
45
  end
41
46
  end
42
47
  end
@@ -18,28 +18,62 @@ describe Diametric::Entity, :integration => true, :jruby => true do
18
18
  end
19
19
 
20
20
  let(:query) { Diametric::Query.new(Penguin, @conn, true) }
21
+
21
22
  it "should update entity" do
22
- penguin = Penguin.new(:name => "Mary", :age => 2)
23
+ bday = DateTime.parse('2005-01-01')
24
+ penguin = Penguin.new(:name => "Mary", :age => 2, :birthday => bday)
23
25
  penguin.save(@conn)
24
26
  penguin.update(:age => 3)
25
27
  penguin.name.should == "Mary"
26
28
  penguin.age.should == 3
29
+ penguin.birthday.should == bday
27
30
  end
28
31
 
29
32
  it "should search upadated attributes" do
30
- penguin = query.where(:name => "Mary").first
31
- penguin.name.should == "Mary"
32
- penguin.age.should == 3
33
+ bday = DateTime.parse('1900-02-02')
34
+ penguin = Penguin.new(:name => "Mary J.", :age => 200, :birthday => bday)
35
+ penguin.save(@conn)
36
+ penguin = query.where(:name => "Mary J.").first
37
+ penguin.name.should == "Mary J."
38
+ penguin.age.should == 200
39
+ penguin.birthday == bday
33
40
  end
34
41
 
35
42
  it "should destroy entity" do
36
- penguin = Penguin.new(:name => "Mary", :age => 2)
43
+ penguin = Penguin.new(:name => "Mary Jo.", :age => 2)
37
44
  penguin.save(@conn)
38
45
  number_of_penguins = Penguin.all.size
39
46
  number_of_penguins.should >= 1
40
47
  penguin.destroy
41
48
  Penguin.all.size.should == (number_of_penguins -1)
42
49
  end
50
+
51
+ it "should find by where query" do
52
+ Penguin.new(name: "Mary Jo.", birthday: DateTime.parse('1900-12-31')).save
53
+ Penguin.new(name: "Mary Jen.", birthday: DateTime.parse('1999-12-31')).save
54
+ Penguin.new(name: "Mary Jr.", birthday: DateTime.parse('2013-01-01')).save
55
+ Penguin.new(name: "Mary Jay.", birthday: DateTime.parse('2011-01-01')).save
56
+ query = Penguin.where(birthday: DateTime.parse('1999-12-31'))
57
+ query.each do |entity|
58
+ entity.birthday.should == DateTime.parse('1999-12-31')
59
+ end
60
+ end
61
+
62
+ it "should find by filter query" do
63
+ Penguin.new(name: "Mary Jo.", birthday: DateTime.parse('1890-12-31'), awesomeness: true).save
64
+ Penguin.new(name: "Mary Jen.", birthday: DateTime.parse('1999-12-31'), awesomeness: true).save
65
+ Penguin.new(name: "Mary Jr.", birthday: DateTime.parse('2013-01-01'), awesomeness: false).save
66
+ Penguin.new(name: "Mary Jay.", birthday: DateTime.parse('1850-02-22'), awesomeness: false).save
67
+ query = Penguin.filter(:<, :birthday, DateTime.parse('1900-01-01'))
68
+ result = query.all
69
+ result.size.should == 2
70
+ result.collect(&:name).should =~ ["Mary Jay.", "Mary Jo."]
71
+
72
+ query = Penguin.where(awesomeness: true).filter(:<, :birthday, DateTime.parse('1900-01-01'))
73
+ result = query.all
74
+ result.size.should == 1
75
+ result.first.name.should == "Mary Jo."
76
+ end
43
77
  end
44
78
 
45
79
  context Choice do
@@ -57,7 +91,7 @@ describe Diametric::Entity, :integration => true, :jruby => true do
57
91
  choice = Choice.new(:item => "Boots", :checked => true)
58
92
  choice.save.should_not be_nil
59
93
  result = Diametric::Persistence::Peer.q("[:find ?e :in $ :where [?e :choice/checked]]", @conn2.db)
60
- choice = Choice.from_dbid_or_entity(result.first.first, @conn2.db)
94
+ choice = Choice.reify(result.first.first, @conn2.db)
61
95
  choice.checked.should be_true
62
96
  end
63
97
  end
@@ -78,7 +112,7 @@ describe Diametric::Entity, :integration => true, :jruby => true do
78
112
  customer = Customer.new(:name => "John Smith", :id => id)
79
113
  customer.save.should_not be_nil
80
114
  result = Diametric::Persistence::Peer.q("[:find ?e :in $ :where [?e :customer/name]]", @conn3.db)
81
- customer2 = Customer.from_dbid_or_entity(result.first.first, @conn3.db)
115
+ customer2 = Customer.reify(result.first.first, @conn3.db)
82
116
  customer2.name.should == "John Smith"
83
117
  customer2.id.to_s.should == id.to_s
84
118
  end
@@ -89,7 +123,7 @@ describe Diametric::Entity, :integration => true, :jruby => true do
89
123
  customer = Customer.new(:name => "Wilber Hoe", :id => id)
90
124
  customer.save.should_not be_nil
91
125
  result = Diametric::Persistence::Peer.q("[:find ?e :in $ [?name] :where [?e :customer/name ?name]]", @conn3.db, ["Wilber Hoe"])
92
- customer2 = Customer.from_dbid_or_entity(result.first.first, @conn3.db)
126
+ customer2 = Customer.reify(result.first.first, @conn3.db)
93
127
  customer2.name.should == "Wilber Hoe"
94
128
  customer2.id.to_s.should == id.to_s
95
129
  end
@@ -110,7 +144,7 @@ describe Diametric::Entity, :integration => true, :jruby => true do
110
144
  account = Account.new(:name => "This month's deposits", :deposit => [100.0, 200.0], :amount => 0.0)
111
145
  account.save.should_not be_nil
112
146
  result = Diametric::Persistence::Peer.q("[:find ?e :in $ :where [?e :account/name]]", @conn4.db)
113
- account2 = Customer.from_dbid_or_entity(result.first.first, @conn4.db)
147
+ account2 = Customer.reify(result.first.first, @conn4.db)
114
148
  account2.name.should == account.name
115
149
  account2.amount.should == 0.0
116
150
  account2.deposit.should include(100.0)
@@ -52,6 +52,8 @@ class Penguin
52
52
 
53
53
  attribute :name, String
54
54
  attribute :age, Integer
55
+ attribute :birthday, DateTime
56
+ attribute :awesomeness, Boolean
55
57
  end
56
58
 
57
59
  class Rat
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: diametric
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: java
6
6
  authors:
7
7
  - Clinton N. Dreisbach
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-09-10 00:00:00.000000000 Z
13
+ date: 2013-11-10 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  version_requirements: !ruby/object:Gem::Requirement
@@ -18,140 +18,140 @@ dependencies:
18
18
  - - ~>
19
19
  - !ruby/object:Gem::Version
20
20
  version: 1.0.2
21
- name: edn
22
21
  requirement: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - ~>
25
24
  - !ruby/object:Gem::Version
26
25
  version: 1.0.2
27
- type: :runtime
28
26
  prerelease: false
27
+ type: :runtime
28
+ name: edn
29
29
  - !ruby/object:Gem::Dependency
30
30
  version_requirements: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ~>
33
33
  - !ruby/object:Gem::Version
34
34
  version: 3.2.14
35
- name: activesupport
36
35
  requirement: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - ~>
39
38
  - !ruby/object:Gem::Version
40
39
  version: 3.2.14
41
- type: :runtime
42
40
  prerelease: false
41
+ type: :runtime
42
+ name: activesupport
43
43
  - !ruby/object:Gem::Dependency
44
44
  version_requirements: !ruby/object:Gem::Requirement
45
45
  requirements:
46
46
  - - ~>
47
47
  - !ruby/object:Gem::Version
48
48
  version: 3.2.14
49
- name: activemodel
50
49
  requirement: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - ~>
53
52
  - !ruby/object:Gem::Version
54
53
  version: 3.2.14
55
- type: :runtime
56
54
  prerelease: false
55
+ type: :runtime
56
+ name: activemodel
57
57
  - !ruby/object:Gem::Dependency
58
58
  version_requirements: !ruby/object:Gem::Requirement
59
59
  requirements:
60
60
  - - ~>
61
61
  - !ruby/object:Gem::Version
62
62
  version: 0.4.1
63
- name: datomic-client
64
63
  requirement: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - ~>
67
66
  - !ruby/object:Gem::Version
68
67
  version: 0.4.1
69
- type: :runtime
70
68
  prerelease: false
69
+ type: :runtime
70
+ name: datomic-client
71
71
  - !ruby/object:Gem::Dependency
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
74
  - - ~>
75
75
  - !ruby/object:Gem::Version
76
76
  version: 0.9.9
77
- name: rubyzip
78
77
  requirement: !ruby/object:Gem::Requirement
79
78
  requirements:
80
79
  - - ~>
81
80
  - !ruby/object:Gem::Version
82
81
  version: 0.9.9
83
- type: :runtime
84
82
  prerelease: false
83
+ type: :runtime
84
+ name: rubyzip
85
85
  - !ruby/object:Gem::Dependency
86
86
  version_requirements: !ruby/object:Gem::Requirement
87
87
  requirements:
88
88
  - - ~>
89
89
  - !ruby/object:Gem::Version
90
90
  version: 0.7.5
91
- name: lock_jar
92
91
  requirement: !ruby/object:Gem::Requirement
93
92
  requirements:
94
93
  - - ~>
95
94
  - !ruby/object:Gem::Version
96
95
  version: 0.7.5
97
- type: :runtime
98
96
  prerelease: false
97
+ type: :runtime
98
+ name: lock_jar
99
99
  - !ruby/object:Gem::Dependency
100
100
  version_requirements: !ruby/object:Gem::Requirement
101
101
  requirements:
102
102
  - - ~>
103
103
  - !ruby/object:Gem::Version
104
104
  version: 0.8.8
105
- name: jruby-openssl
106
105
  requirement: !ruby/object:Gem::Requirement
107
106
  requirements:
108
107
  - - ~>
109
108
  - !ruby/object:Gem::Version
110
109
  version: 0.8.8
111
- type: :runtime
112
110
  prerelease: false
111
+ type: :runtime
112
+ name: jruby-openssl
113
113
  - !ruby/object:Gem::Dependency
114
114
  version_requirements: !ruby/object:Gem::Requirement
115
115
  requirements:
116
116
  - - ~>
117
117
  - !ruby/object:Gem::Version
118
118
  version: 2.3.7
119
- name: uuid
120
119
  requirement: !ruby/object:Gem::Requirement
121
120
  requirements:
122
121
  - - ~>
123
122
  - !ruby/object:Gem::Version
124
123
  version: 2.3.7
125
- type: :runtime
126
124
  prerelease: false
125
+ type: :runtime
126
+ name: uuid
127
127
  - !ruby/object:Gem::Dependency
128
128
  version_requirements: !ruby/object:Gem::Requirement
129
129
  requirements:
130
130
  - - ~>
131
131
  - !ruby/object:Gem::Version
132
132
  version: 2.14.1
133
- name: rspec
134
133
  requirement: !ruby/object:Gem::Requirement
135
134
  requirements:
136
135
  - - ~>
137
136
  - !ruby/object:Gem::Version
138
137
  version: 2.14.1
139
- type: :runtime
140
138
  prerelease: false
139
+ type: :runtime
140
+ name: rspec
141
141
  - !ruby/object:Gem::Dependency
142
142
  version_requirements: !ruby/object:Gem::Requirement
143
143
  requirements:
144
144
  - - ~>
145
145
  - !ruby/object:Gem::Version
146
146
  version: 0.9.1
147
- name: rake-compiler
148
147
  requirement: !ruby/object:Gem::Requirement
149
148
  requirements:
150
149
  - - ~>
151
150
  - !ruby/object:Gem::Version
152
151
  version: 0.9.1
153
- type: :runtime
154
152
  prerelease: false
153
+ type: :runtime
154
+ name: rake-compiler
155
155
  description: |
156
156
  Diametric is a library for building schemas, queries, and transactions
157
157
  for Datomic from Ruby objects. It is also used to map Ruby objects
@@ -196,6 +196,7 @@ files:
196
196
  - lib/tasks/create_schema.rb
197
197
  - lib/tasks/diametric_config.rb
198
198
  - ext/diametric/DiametricCollection.java
199
+ - ext/diametric/DiametricCommon.java
199
200
  - ext/diametric/DiametricConnection.java
200
201
  - ext/diametric/DiametricDatabase.java
201
202
  - ext/diametric/DiametricEntity.java
@@ -203,6 +204,7 @@ files:
203
204
  - ext/diametric/DiametricObject.java
204
205
  - ext/diametric/DiametricPeer.java
205
206
  - ext/diametric/DiametricService.java
207
+ - ext/diametric/DiametricSet.java
206
208
  - ext/diametric/DiametricUtils.java
207
209
  - ext/diametric/DiametricUUID.java
208
210
  - spec/conf_helper.rb