believer 0.2.5 → 0.2.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/README.md +29 -2
  2. data/lib/believer.rb +5 -0
  3. data/lib/believer/base.rb +16 -4
  4. data/lib/believer/column.rb +74 -9
  5. data/lib/believer/columns.rb +18 -1
  6. data/lib/believer/command.rb +12 -1
  7. data/lib/believer/counter.rb +60 -0
  8. data/lib/believer/counting.rb +29 -0
  9. data/lib/believer/cql_helper.rb +22 -0
  10. data/lib/believer/create_table.rb +24 -0
  11. data/lib/believer/ddl.rb +2 -31
  12. data/lib/believer/drop_table.rb +9 -0
  13. data/lib/believer/environment/base_env.rb +5 -0
  14. data/lib/believer/insert.rb +3 -1
  15. data/lib/believer/persistence.rb +18 -2
  16. data/lib/believer/update.rb +52 -0
  17. data/lib/believer/values.rb +67 -0
  18. data/lib/believer/version.rb +1 -1
  19. data/spec/believer/base_spec.rb +9 -2
  20. data/spec/believer/callback_spec.rb +1 -1
  21. data/spec/believer/collection_columns_spec.rb +95 -0
  22. data/spec/believer/columns_spec.rb +21 -0
  23. data/spec/believer/counter_spec.rb +46 -0
  24. data/spec/believer/counting_spec.rb +31 -0
  25. data/spec/believer/delete_spec.rb +1 -1
  26. data/spec/believer/environment_spec.rb +4 -4
  27. data/spec/believer/finder_methods_spec.rb +9 -9
  28. data/spec/believer/insert_spec.rb +1 -1
  29. data/spec/believer/limit_spec.rb +1 -1
  30. data/spec/believer/order_by_spec.rb +2 -2
  31. data/spec/believer/query_spec.rb +2 -2
  32. data/spec/believer/querying_spec.rb +1 -1
  33. data/spec/believer/relation_spec.rb +6 -6
  34. data/spec/believer/test_run_life_cycle_spec.rb +2 -2
  35. data/spec/believer/time_series_spec.rb +23 -3
  36. data/spec/believer/update_spec.rb +71 -0
  37. data/spec/believer/where_spec.rb +4 -4
  38. data/spec/spec_helper.rb +6 -2
  39. data/spec/support/setup_database.rb +8 -8
  40. data/spec/support/test_classes.rb +22 -5
  41. metadata +17 -19
  42. 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.5
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-28 00:00:00.000000000 Z
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
-