jet_set 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/lib/jet_set/environment.rb +5 -5
- data/lib/jet_set/mixin/entity.rb +9 -9
- data/lib/jet_set/session.rb +7 -7
- data/lib/jet_set/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 17b8d9e477ca910f5c62582f4f8024cf1628b14e
|
4
|
+
data.tar.gz: 737fbb0dda2a9dab416dd410d72657b78a006ee0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5a039de49cae5e7a93b625ff64373ab945c883ec81ac74d60ea01c0c46da04865db2e97278a2db206a7b0a381c356b4de5f6059b620472e67eb14bb10b14595
|
7
|
+
data.tar.gz: fb2b0cfb842a13b63294da7b47c14e5094a4dc0045b75480e09ad32082df7564b925ef94f854738692e55feb8b689c669ced5da70ea97654de49123aa5126dee
|
data/README.md
CHANGED
@@ -1,4 +1,5 @@
|
|
1
|
-
# JetSet
|
1
|
+
# JetSet ![Build Status](https://travis-ci.org/cylon-v/jet_set.svg?branch=master)
|
2
|
+
|
2
3
|
|
3
4
|
Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/jet_set`. To experiment with that code, run `bin/console` for an interactive prompt.
|
4
5
|
|
data/lib/jet_set/environment.rb
CHANGED
@@ -33,7 +33,7 @@ module JetSet
|
|
33
33
|
# Parameters:
|
34
34
|
# +scope+:: a name of registered component which manages the session lifetime.
|
35
35
|
def register_session(scope = nil)
|
36
|
-
session_component = @container.register(JetSet::Session, :
|
36
|
+
session_component = @container.register(JetSet::Session, :jet_set)
|
37
37
|
dependency_graph_component = @container.register(JetSet::DependencyGraph, :dependency_graph)
|
38
38
|
|
39
39
|
if scope.nil?
|
@@ -50,14 +50,14 @@ module JetSet
|
|
50
50
|
|
51
51
|
# Creates JetSet session and registers it in Hypo container.
|
52
52
|
# Parameters:
|
53
|
-
# +
|
53
|
+
# +sequel+:: Sequel connection.
|
54
54
|
# +scope+:: a name of registered component which manages the session lifetime.
|
55
55
|
# Returns the session object.
|
56
|
-
def open_session(
|
57
|
-
@container.register_instance(
|
56
|
+
def open_session(sequel, scope = nil)
|
57
|
+
@container.register_instance(sequel, :sequel)
|
58
58
|
|
59
59
|
register_session(scope)
|
60
|
-
@container.resolve(:
|
60
|
+
@container.resolve(:jet_set)
|
61
61
|
end
|
62
62
|
|
63
63
|
|
data/lib/jet_set/mixin/entity.rb
CHANGED
@@ -75,10 +75,10 @@ module JetSet
|
|
75
75
|
|
76
76
|
# Flushes current state and saves a changes to the database.
|
77
77
|
# Parameters:
|
78
|
-
# +
|
79
|
-
def flush(
|
78
|
+
# +sequel+:: Sequel sequel
|
79
|
+
def flush(sequel)
|
80
80
|
table_name = self.class.name.underscore.pluralize.to_sym
|
81
|
-
table =
|
81
|
+
table = sequel[table_name]
|
82
82
|
entity_name = self.class.name.underscore.to_sym
|
83
83
|
my_column_name = self.class.name.underscore + '_id'
|
84
84
|
|
@@ -101,7 +101,7 @@ module JetSet
|
|
101
101
|
reference_id = value.instance_variable_get('@id')
|
102
102
|
if reference_id.nil?
|
103
103
|
@__factory.create(value)
|
104
|
-
value.flush(
|
104
|
+
value.flush(sequel)
|
105
105
|
end
|
106
106
|
set_reference!(key, value)
|
107
107
|
fields << "#{key}_id"
|
@@ -138,16 +138,16 @@ module JetSet
|
|
138
138
|
if entity.collections[name].using
|
139
139
|
foreign_column_name = name.to_s.singularize.underscore + '_id'
|
140
140
|
to_delete.each do |foreign_id|
|
141
|
-
|
141
|
+
sequel[entity.collections[name].using.to_sym].where(my_column_name => id, foreign_column_name => foreign_id).delete
|
142
142
|
end
|
143
143
|
else
|
144
|
-
|
144
|
+
sequel[name].where(id: to_delete).delete
|
145
145
|
end
|
146
146
|
end
|
147
147
|
|
148
148
|
to_insert.each do |item|
|
149
149
|
@__factory.create(item)
|
150
|
-
item.flush(
|
150
|
+
item.flush(sequel)
|
151
151
|
end
|
152
152
|
|
153
153
|
if entity.collections[name].using
|
@@ -161,11 +161,11 @@ module JetSet
|
|
161
161
|
to_association_insert.each do |item|
|
162
162
|
unless item.id
|
163
163
|
@__factory.create(item)
|
164
|
-
item.flush(
|
164
|
+
item.flush(sequel)
|
165
165
|
end
|
166
166
|
|
167
167
|
foreign_column_name = item.class.name.underscore + '_id'
|
168
|
-
|
168
|
+
sequel[relation_table].insert([my_column_name, foreign_column_name], [@id, item.id])
|
169
169
|
end
|
170
170
|
end
|
171
171
|
end
|
data/lib/jet_set/session.rb
CHANGED
@@ -4,11 +4,11 @@ module JetSet
|
|
4
4
|
class Session
|
5
5
|
# Initializes +Session+ object.
|
6
6
|
# Parameters:
|
7
|
-
# +
|
7
|
+
# +sequel+:: Sequel sequel object.
|
8
8
|
# +mapper+:: Sequel rows to Ruby objects mapper.
|
9
9
|
# +query_parser+:: a parser which evaluates JetSet extensions in SQL-expressions.
|
10
|
-
def initialize(
|
11
|
-
@
|
10
|
+
def initialize(sequel, mapper, query_parser, entity_builder, dependency_graph)
|
11
|
+
@sequel = sequel
|
12
12
|
@mapper = mapper
|
13
13
|
@objects = []
|
14
14
|
@query_parser = query_parser
|
@@ -32,7 +32,7 @@ module JetSet
|
|
32
32
|
raise MapperError, "The query doesn't contain \"AS ENTITY #{type.name.underscore}\" statement."
|
33
33
|
end
|
34
34
|
|
35
|
-
rows = @
|
35
|
+
rows = @sequel.fetch(query.sql, params).to_a
|
36
36
|
if rows.length == 0
|
37
37
|
result = nil
|
38
38
|
elsif rows.length == 1 && query.returns_single_item?
|
@@ -62,7 +62,7 @@ module JetSet
|
|
62
62
|
# +relation+:: an object reference or collection name defined in JetSet mapping for the +target+.
|
63
63
|
def preload(target, relation, query, params = {}, &block)
|
64
64
|
query = @query_parser.parse(query)
|
65
|
-
rows = @
|
65
|
+
rows = @sequel.fetch(query.sql, params).to_a
|
66
66
|
result = @mapper.map_association(target, relation, rows, self)
|
67
67
|
|
68
68
|
if block_given?
|
@@ -101,8 +101,8 @@ module JetSet
|
|
101
101
|
ordered_objects = @dependency_graph.order(dirty_objects)
|
102
102
|
|
103
103
|
if ordered_objects.length > 0
|
104
|
-
@
|
105
|
-
ordered_objects.each{|obj| obj.flush(@
|
104
|
+
@sequel.transaction do
|
105
|
+
ordered_objects.each{|obj| obj.flush(@sequel)}
|
106
106
|
end
|
107
107
|
end
|
108
108
|
end
|
data/lib/jet_set/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jet_set
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vladimir Kalinkin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sequel
|