sequel_core 1.5.0 → 1.5.1
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/CHANGELOG +5 -1
- data/Rakefile +5 -3
- data/lib/sequel_core/object_graph.rb +15 -3
- data/spec/object_graph_spec.rb +25 -1
- metadata +2 -2
data/CHANGELOG
CHANGED
@@ -1,4 +1,8 @@
|
|
1
|
-
===
|
1
|
+
=== 1.5.1 (2008-04-30)
|
2
|
+
|
3
|
+
* Have Dataset#graph give a nil value instead of a hash with all nil values if no matching rows exist in the graphed table (jeremyevans)
|
4
|
+
|
5
|
+
=== 1.5.0 (2008-04-29)
|
2
6
|
|
3
7
|
* Set a timeout in the Sqlite adapter, default to 5 seconds (hrvoje.marjanovic) (#218)
|
4
8
|
|
data/Rakefile
CHANGED
@@ -9,15 +9,13 @@ include FileUtils
|
|
9
9
|
# Configuration
|
10
10
|
##############################################################################
|
11
11
|
NAME = "sequel_core"
|
12
|
-
VERS = "1.5.
|
12
|
+
VERS = "1.5.1"
|
13
13
|
CLEAN.include ["**/.*.sw?", "pkg/*", ".config", "doc/*", "coverage/*"]
|
14
14
|
RDOC_OPTS = ["--quiet", "--line-numbers", "--inline-source"]
|
15
15
|
|
16
16
|
##############################################################################
|
17
17
|
# RDoc
|
18
18
|
##############################################################################
|
19
|
-
task :doc => [:rdoc]
|
20
|
-
|
21
19
|
Rake::RDocTask.new do |rdoc|
|
22
20
|
rdoc.rdoc_dir = "doc/rdoc"
|
23
21
|
rdoc.options += RDOC_OPTS
|
@@ -71,16 +69,19 @@ end
|
|
71
69
|
##############################################################################
|
72
70
|
# installation & removal
|
73
71
|
##############################################################################
|
72
|
+
desc "Install sequel_core gem"
|
74
73
|
task :install do
|
75
74
|
sh %{rake package}
|
76
75
|
sh %{sudo gem install pkg/#{NAME}-#{VERS}}
|
77
76
|
end
|
78
77
|
|
78
|
+
desc "Install sequel_core gem without docs"
|
79
79
|
task :install_no_docs do
|
80
80
|
sh %{rake package}
|
81
81
|
sh %{sudo gem install pkg/#{NAME}-#{VERS} --no-rdoc --no-ri}
|
82
82
|
end
|
83
83
|
|
84
|
+
desc "Uninstall sequel_core gem"
|
84
85
|
task :uninstall => [:clean] do
|
85
86
|
sh %{sudo gem uninstall #{NAME}}
|
86
87
|
end
|
@@ -88,6 +89,7 @@ end
|
|
88
89
|
##############################################################################
|
89
90
|
# gem and rdoc release
|
90
91
|
##############################################################################
|
92
|
+
desc "Upload sequel_core gem to rubyforge"
|
91
93
|
task :release => [:package] do
|
92
94
|
sh %{rubyforge login}
|
93
95
|
sh %{rubyforge add_release sequel #{NAME} #{VERS} pkg/#{NAME}-#{VERS}.tgz}
|
@@ -20,6 +20,14 @@ module Sequel
|
|
20
20
|
# any row_proc or transform attributes of the current dataset and the datasets
|
21
21
|
# you use with graph.
|
22
22
|
#
|
23
|
+
# If you are graphing a table and all columns for that table are nil, this
|
24
|
+
# indicates that no matching rows existed in the table, so graph will return nil
|
25
|
+
# instead of a hash with all nil values:
|
26
|
+
#
|
27
|
+
# # If the artist doesn't have any albums
|
28
|
+
# DB[:artists].graph(:albums, :artist_id=>:id).first
|
29
|
+
# => {:artists=>{:id=>artists.id, :name=>artists.name}, :albums=>nil}
|
30
|
+
#
|
23
31
|
# Arguments:
|
24
32
|
# * dataset - Can be a symbol (specifying a table), another dataset,
|
25
33
|
# or an object that responds to .dataset and yields a symbol or a dataset
|
@@ -186,9 +194,13 @@ module Sequel
|
|
186
194
|
# row_proc if applicable
|
187
195
|
datasets.each do |ta,ds,tr,rp|
|
188
196
|
g = graph[ta]
|
189
|
-
|
190
|
-
|
191
|
-
|
197
|
+
graph[ta] = if g.values.any?
|
198
|
+
g = ds.transform_load(g) if tr
|
199
|
+
g = rp[g] if rp
|
200
|
+
g
|
201
|
+
else
|
202
|
+
nil
|
203
|
+
end
|
192
204
|
end
|
193
205
|
|
194
206
|
yield graph
|
data/spec/object_graph_spec.rb
CHANGED
@@ -152,6 +152,30 @@ describe Sequel::Dataset, " graphing" do
|
|
152
152
|
results.first.should == {:points=>{:id=>1, :x=>2, :y=>3}, :lines=>{:id=>4, :x=>5, :y=>6, :graph_id=>7}, :graph=>{:id=>8, :x=>9, :y=>10, :graph_id=>11}}
|
153
153
|
end
|
154
154
|
|
155
|
+
it "#graph_each should give a nil value instead of a hash when all values for a table are nil" do
|
156
|
+
ds = @ds1.graph(@ds2, :x=>:id)
|
157
|
+
def ds.fetch_rows(sql, &block)
|
158
|
+
yield({:id=>1,:x=>2,:y=>3,:lines_id=>nil,:lines_x=>nil,:lines_y=>nil,:graph_id=>nil})
|
159
|
+
end
|
160
|
+
results = ds.all
|
161
|
+
results.length.should == 1
|
162
|
+
results.first.should == {:points=>{:id=>1, :x=>2, :y=>3}, :lines=>nil}
|
163
|
+
|
164
|
+
ds = @ds1.graph(@ds2, :x=>:id).graph(@ds3, :id=>:graph_id)
|
165
|
+
def ds.fetch_rows(sql, &block)
|
166
|
+
yield({:id=>1,:x=>2,:y=>3,:lines_id=>4,:lines_x=>5,:lines_y=>6,:graph_id=>7, :graphs_id=>nil, :name=>nil, :graphs_x=>nil, :graphs_y=>nil, :graphs_lines_x=>nil})
|
167
|
+
yield({:id=>2,:x=>4,:y=>5,:lines_id=>nil,:lines_x=>nil,:lines_y=>nil,:graph_id=>nil, :graphs_id=>nil, :name=>nil, :graphs_x=>nil, :graphs_y=>nil, :graphs_lines_x=>nil})
|
168
|
+
yield({:id=>3,:x=>5,:y=>6,:lines_id=>4,:lines_x=>5,:lines_y=>6,:graph_id=>7, :graphs_id=>7, :name=>8, :graphs_x=>9, :graphs_y=>10, :graphs_lines_x=>11})
|
169
|
+
yield({:id=>3,:x=>5,:y=>6,:lines_id=>7,:lines_x=>5,:lines_y=>8,:graph_id=>9, :graphs_id=>9, :name=>10, :graphs_x=>10, :graphs_y=>11, :graphs_lines_x=>12})
|
170
|
+
end
|
171
|
+
results = ds.all
|
172
|
+
results.length.should == 4
|
173
|
+
results[0].should == {:points=>{:id=>1, :x=>2, :y=>3}, :lines=>{:id=>4, :x=>5, :y=>6, :graph_id=>7}, :graphs=>nil}
|
174
|
+
results[1].should == {:points=>{:id=>2, :x=>4, :y=>5}, :lines=>nil, :graphs=>nil}
|
175
|
+
results[2].should == {:points=>{:id=>3, :x=>5, :y=>6}, :lines=>{:id=>4, :x=>5, :y=>6, :graph_id=>7}, :graphs=>{:id=>7, :name=>8, :x=>9, :y=>10, :lines_x=>11}}
|
176
|
+
results[3].should == {:points=>{:id=>3, :x=>5, :y=>6}, :lines=>{:id=>7, :x=>5, :y=>8, :graph_id=>9}, :graphs=>{:id=>9, :name=>10, :x=>10, :y=>11, :lines_x=>12}}
|
177
|
+
end
|
178
|
+
|
155
179
|
it "#graph_each should not included tables graphed with the :select option in the result set" do
|
156
180
|
ds = @ds1.graph(:lines, {:x=>:id}, :select=>false).graph(:graphs, :id=>:graph_id)
|
157
181
|
def ds.fetch_rows(sql, &block)
|
@@ -177,7 +201,7 @@ describe Sequel::Dataset, " graphing" do
|
|
177
201
|
end
|
178
202
|
results = ds.all
|
179
203
|
results.length.should == 1
|
180
|
-
results.first.should == {:points=>{:x=>2}, :lines=>
|
204
|
+
results.first.should == {:points=>{:x=>2}, :lines=>nil}
|
181
205
|
end
|
182
206
|
|
183
207
|
it "#graph_each should run the row_proc and transform for graphed datasets" do
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: sequel_core
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 1.5.
|
7
|
-
date: 2008-04-
|
6
|
+
version: 1.5.1
|
7
|
+
date: 2008-04-30 00:00:00 -07:00
|
8
8
|
summary: "The Database Toolkit for Ruby: Core Library and Adapters"
|
9
9
|
require_paths:
|
10
10
|
- lib
|