believer 0.2.5 → 0.2.6
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/README.md +29 -2
- data/lib/believer.rb +5 -0
- data/lib/believer/base.rb +16 -4
- data/lib/believer/column.rb +74 -9
- data/lib/believer/columns.rb +18 -1
- data/lib/believer/command.rb +12 -1
- data/lib/believer/counter.rb +60 -0
- data/lib/believer/counting.rb +29 -0
- data/lib/believer/cql_helper.rb +22 -0
- data/lib/believer/create_table.rb +24 -0
- data/lib/believer/ddl.rb +2 -31
- data/lib/believer/drop_table.rb +9 -0
- data/lib/believer/environment/base_env.rb +5 -0
- data/lib/believer/insert.rb +3 -1
- data/lib/believer/persistence.rb +18 -2
- data/lib/believer/update.rb +52 -0
- data/lib/believer/values.rb +67 -0
- data/lib/believer/version.rb +1 -1
- data/spec/believer/base_spec.rb +9 -2
- data/spec/believer/callback_spec.rb +1 -1
- data/spec/believer/collection_columns_spec.rb +95 -0
- data/spec/believer/columns_spec.rb +21 -0
- data/spec/believer/counter_spec.rb +46 -0
- data/spec/believer/counting_spec.rb +31 -0
- data/spec/believer/delete_spec.rb +1 -1
- data/spec/believer/environment_spec.rb +4 -4
- data/spec/believer/finder_methods_spec.rb +9 -9
- data/spec/believer/insert_spec.rb +1 -1
- data/spec/believer/limit_spec.rb +1 -1
- data/spec/believer/order_by_spec.rb +2 -2
- data/spec/believer/query_spec.rb +2 -2
- data/spec/believer/querying_spec.rb +1 -1
- data/spec/believer/relation_spec.rb +6 -6
- data/spec/believer/test_run_life_cycle_spec.rb +2 -2
- data/spec/believer/time_series_spec.rb +23 -3
- data/spec/believer/update_spec.rb +71 -0
- data/spec/believer/where_spec.rb +4 -4
- data/spec/spec_helper.rb +6 -2
- data/spec/support/setup_database.rb +8 -8
- data/spec/support/test_classes.rb +22 -5
- metadata +17 -19
- data/lib/believer/extensions/will_paginate.rb +0 -173
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: believer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-10-
|
12
|
+
date: 2013-10-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activemodel
|
@@ -107,22 +107,6 @@ dependencies:
|
|
107
107
|
- - '='
|
108
108
|
- !ruby/object:Gem::Version
|
109
109
|
version: 0.7.1
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: will_paginate
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
|
-
requirements:
|
115
|
-
- - ! '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :development
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ! '>='
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
126
110
|
description: ! 'An Object Relational Mapping library for CQL3 '
|
127
111
|
email:
|
128
112
|
- jerphaes@gmail.com
|
@@ -138,16 +122,19 @@ files:
|
|
138
122
|
- lib/believer/columns.rb
|
139
123
|
- lib/believer/command.rb
|
140
124
|
- lib/believer/connection.rb
|
125
|
+
- lib/believer/counter.rb
|
126
|
+
- lib/believer/counting.rb
|
141
127
|
- lib/believer/cql_helper.rb
|
128
|
+
- lib/believer/create_table.rb
|
142
129
|
- lib/believer/ddl.rb
|
143
130
|
- lib/believer/delete.rb
|
131
|
+
- lib/believer/drop_table.rb
|
144
132
|
- lib/believer/empty_result.rb
|
145
133
|
- lib/believer/environment/base_env.rb
|
146
134
|
- lib/believer/environment/merb_env.rb
|
147
135
|
- lib/believer/environment/rails_env.rb
|
148
136
|
- lib/believer/environment.rb
|
149
137
|
- lib/believer/extending.rb
|
150
|
-
- lib/believer/extensions/will_paginate.rb
|
151
138
|
- lib/believer/filter_command.rb
|
152
139
|
- lib/believer/finder_methods.rb
|
153
140
|
- lib/believer/insert.rb
|
@@ -162,6 +149,7 @@ files:
|
|
162
149
|
- lib/believer/relation.rb
|
163
150
|
- lib/believer/scoping.rb
|
164
151
|
- lib/believer/test/test_run_life_cycle.rb
|
152
|
+
- lib/believer/update.rb
|
165
153
|
- lib/believer/values.rb
|
166
154
|
- lib/believer/version.rb
|
167
155
|
- lib/believer/where_clause.rb
|
@@ -169,6 +157,10 @@ files:
|
|
169
157
|
- README.md
|
170
158
|
- spec/believer/base_spec.rb
|
171
159
|
- spec/believer/callback_spec.rb
|
160
|
+
- spec/believer/collection_columns_spec.rb
|
161
|
+
- spec/believer/columns_spec.rb
|
162
|
+
- spec/believer/counter_spec.rb
|
163
|
+
- spec/believer/counting_spec.rb
|
172
164
|
- spec/believer/delete_spec.rb
|
173
165
|
- spec/believer/empty_result_spec.rb
|
174
166
|
- spec/believer/environment_spec.rb
|
@@ -182,6 +174,7 @@ files:
|
|
182
174
|
- spec/believer/relation_spec.rb
|
183
175
|
- spec/believer/test_run_life_cycle_spec.rb
|
184
176
|
- spec/believer/time_series_spec.rb
|
177
|
+
- spec/believer/update_spec.rb
|
185
178
|
- spec/believer/where_spec.rb
|
186
179
|
- spec/spec_helper.rb
|
187
180
|
- spec/support/setup_database.rb
|
@@ -214,6 +207,10 @@ summary: CQL3 ORM
|
|
214
207
|
test_files:
|
215
208
|
- spec/believer/base_spec.rb
|
216
209
|
- spec/believer/callback_spec.rb
|
210
|
+
- spec/believer/collection_columns_spec.rb
|
211
|
+
- spec/believer/columns_spec.rb
|
212
|
+
- spec/believer/counter_spec.rb
|
213
|
+
- spec/believer/counting_spec.rb
|
217
214
|
- spec/believer/delete_spec.rb
|
218
215
|
- spec/believer/empty_result_spec.rb
|
219
216
|
- spec/believer/environment_spec.rb
|
@@ -227,6 +224,7 @@ test_files:
|
|
227
224
|
- spec/believer/relation_spec.rb
|
228
225
|
- spec/believer/test_run_life_cycle_spec.rb
|
229
226
|
- spec/believer/time_series_spec.rb
|
227
|
+
- spec/believer/update_spec.rb
|
230
228
|
- spec/believer/where_spec.rb
|
231
229
|
- spec/spec_helper.rb
|
232
230
|
- spec/support/setup_database.rb
|
@@ -1,173 +0,0 @@
|
|
1
|
-
require 'will_paginate/per_page'
|
2
|
-
require 'will_paginate/page_number'
|
3
|
-
require 'will_paginate/collection'
|
4
|
-
require 'believer'
|
5
|
-
|
6
|
-
module Believer
|
7
|
-
module Extensions
|
8
|
-
# = Paginating finders for Believer models
|
9
|
-
#
|
10
|
-
# WillPaginate adds +paginate+, +per_page+ and other methods to
|
11
|
-
# Believer::Base class methods and associations.
|
12
|
-
#
|
13
|
-
# In short, paginating finders are equivalent to ActiveRecord finders; the
|
14
|
-
# only difference is that we start with "paginate" instead of "find" and
|
15
|
-
# that <tt>:page</tt> is required parameter:
|
16
|
-
#
|
17
|
-
# @posts = Post.paginate :all, :page => params[:page], :order => 'created_at DESC'
|
18
|
-
#
|
19
|
-
module WillPaginate
|
20
|
-
# makes a Relation look like WillPaginate::Collection
|
21
|
-
module RelationMethods
|
22
|
-
include ::WillPaginate::CollectionMethods
|
23
|
-
|
24
|
-
attr_accessor :current_page
|
25
|
-
attr_writer :total_entries, :wp_count_options
|
26
|
-
|
27
|
-
def per_page(value = nil)
|
28
|
-
if value.nil? then
|
29
|
-
limit_value
|
30
|
-
else
|
31
|
-
limit(value)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# TODO: solve with less relation clones and code dups
|
36
|
-
def limit(num)
|
37
|
-
rel = super
|
38
|
-
if rel.current_page
|
39
|
-
rel.offset rel.current_page.to_offset(rel.limit_value).to_i
|
40
|
-
else
|
41
|
-
rel
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
def offset(value = nil)
|
46
|
-
if value.nil? then
|
47
|
-
offset_value
|
48
|
-
else
|
49
|
-
super(value)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
def total_entries
|
54
|
-
@total_entries ||= begin
|
55
|
-
if loaded? and size < limit_value and (current_page == 1 or size > 0)
|
56
|
-
offset_value + size
|
57
|
-
else
|
58
|
-
@total_entries_queried = true
|
59
|
-
result = count
|
60
|
-
result = result.size if result.respond_to?(:size) and !result.is_a?(Integer)
|
61
|
-
result
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
def count
|
67
|
-
if limit_value
|
68
|
-
excluded = [:order, :limit, :offset]
|
69
|
-
excluded << :includes unless eager_loading?
|
70
|
-
rel = self.except(*excluded)
|
71
|
-
# TODO: hack. decide whether to keep
|
72
|
-
rel = rel.apply_finder_options(@wp_count_options) if defined? @wp_count_options
|
73
|
-
rel.count
|
74
|
-
else
|
75
|
-
super
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
# workaround for Active Record 3.0
|
80
|
-
def size
|
81
|
-
if !loaded? and limit_value and group_values.empty?
|
82
|
-
[super, limit_value].min
|
83
|
-
else
|
84
|
-
super
|
85
|
-
end
|
86
|
-
end
|
87
|
-
|
88
|
-
# overloaded to be pagination-aware
|
89
|
-
def empty?
|
90
|
-
if !loaded? and offset_value
|
91
|
-
result = count
|
92
|
-
result = result.size if result.respond_to?(:size) and !result.is_a?(Integer)
|
93
|
-
result <= offset_value
|
94
|
-
else
|
95
|
-
super
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
def clone
|
100
|
-
copy_will_paginate_data super
|
101
|
-
end
|
102
|
-
|
103
|
-
# workaround for Active Record 3.0
|
104
|
-
def scoped(options = nil)
|
105
|
-
copy_will_paginate_data super
|
106
|
-
end
|
107
|
-
|
108
|
-
def to_a
|
109
|
-
if current_page.nil? then
|
110
|
-
super # workaround for Active Record 3.0
|
111
|
-
else
|
112
|
-
::WillPaginate::Collection.create(current_page, limit_value) do |col|
|
113
|
-
col.replace super
|
114
|
-
col.total_entries ||= total_entries
|
115
|
-
end
|
116
|
-
end
|
117
|
-
end
|
118
|
-
|
119
|
-
private
|
120
|
-
|
121
|
-
def copy_will_paginate_data(other)
|
122
|
-
other.current_page = current_page unless other.current_page
|
123
|
-
other.total_entries = nil if defined? @total_entries_queried
|
124
|
-
other.wp_count_options = @wp_count_options if defined? @wp_count_options
|
125
|
-
other
|
126
|
-
end
|
127
|
-
end
|
128
|
-
|
129
|
-
module Pagination
|
130
|
-
def paginate(options)
|
131
|
-
options = options.dup
|
132
|
-
pagenum = options.fetch(:page) { raise ArgumentError, ":page parameter required" }
|
133
|
-
per_page = options.delete(:per_page) || self.per_page
|
134
|
-
total = options.delete(:total_entries)
|
135
|
-
|
136
|
-
count_options = options.delete(:count)
|
137
|
-
options.delete(:page)
|
138
|
-
|
139
|
-
rel = limit(per_page.to_i).page(pagenum)
|
140
|
-
rel = rel.apply_finder_options(options) if options.any?
|
141
|
-
rel.wp_count_options = count_options if count_options
|
142
|
-
rel.total_entries = total.to_i unless total.blank?
|
143
|
-
rel
|
144
|
-
end
|
145
|
-
|
146
|
-
def page(num)
|
147
|
-
rel = scoped.extending(RelationMethods)
|
148
|
-
pagenum = ::WillPaginate::PageNumber(num.nil? ? 1 : num)
|
149
|
-
per_page = rel.limit_value || self.per_page
|
150
|
-
rel = rel.offset(pagenum.to_offset(per_page).to_i)
|
151
|
-
rel = rel.limit(per_page) unless rel.limit_value
|
152
|
-
rel.current_page = pagenum
|
153
|
-
rel
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
module BaseMethods
|
158
|
-
|
159
|
-
end
|
160
|
-
|
161
|
-
# mix everything into Believer
|
162
|
-
::Believer::Base.extend ::WillPaginate::PerPage
|
163
|
-
::Believer::Base.extend Pagination
|
164
|
-
#::Believer::Base.extend BaseMethods
|
165
|
-
|
166
|
-
klasses = [::Believer::Relation]
|
167
|
-
|
168
|
-
# support pagination on associations and scopes
|
169
|
-
klasses.each { |klass| klass.send(:include, Pagination) }
|
170
|
-
end
|
171
|
-
end
|
172
|
-
end
|
173
|
-
|