believer 0.2.5 → 0.2.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
-
|