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.
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
-