believer 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -131,11 +131,11 @@ Song.where(:artist => 'Pink Floyd').where(:album => 'Meddle').order(:track_numbe
131
131
  ```
132
132
 
133
133
  ### Configuration
134
- If using Rails, place a believer.yml file in the configuration directory of your application.
134
+ If using Rails or Merb, place a believer.yml file in the configuration directory of your application.
135
135
  The file structure starts with the the environment name, followed by the connection configuration.
136
136
  This is the client connection configuration passed to the cql-rb gem.
137
137
 
138
- ``` yaml
138
+ ``` yml
139
139
  development:
140
140
  host: 127.0.0.1
141
141
  port: 9042
@@ -244,4 +244,7 @@ causing you to 'manually' delete all the garbage.
244
244
 
245
245
  To make this a little less labor intensive, you can include the module Believer::Test::TestRunLifeCycle in your test.
246
246
  This module will implement an after(:each) hook, which deletes all Believer::Base instance/records created in the span
247
- of the test.
247
+ of the test.
248
+
249
+ ## Class documentation
250
+ For API go [here](http://rubydoc.info/gems/believer/frames).
data/lib/believer.rb CHANGED
@@ -29,7 +29,7 @@ require 'believer/where_clause'
29
29
  require 'believer/empty_result'
30
30
  require 'believer/limit'
31
31
  require 'believer/order_by'
32
- require 'believer/scoped_command'
32
+ require 'believer/filter_command'
33
33
  require 'believer/query'
34
34
  require 'believer/delete'
35
35
  require 'believer/insert'
@@ -37,6 +37,7 @@ require 'believer/scoping'
37
37
  require 'believer/batch'
38
38
  require 'believer/batch_delete'
39
39
  require 'believer/callbacks'
40
+ require 'believer/finder_methods'
40
41
 
41
42
  require 'believer/observer'
42
43
  require 'believer/relation'
data/lib/believer/base.rb CHANGED
@@ -10,6 +10,7 @@ module Believer
10
10
  include Scoping
11
11
  include Persistence
12
12
  extend Querying
13
+ extend FinderMethods
13
14
  include Callbacks
14
15
  include DDL
15
16
 
@@ -1,5 +1,5 @@
1
1
  module Believer
2
- class BatchDelete < ScopedCommand
2
+ class BatchDelete < FilterCommand
3
3
 
4
4
  DELETE_BATCH_CHUNK_SIZE = 100
5
5
 
@@ -23,9 +23,9 @@ module Believer
23
23
  cql = to_cql
24
24
  begin
25
25
  start = Time.now
26
- puts "Executing #{cql}"
26
+ #puts "Executing #{cql}"
27
27
  res = connection.execute(cql)
28
- #Rails.logger.debug "#{name} #{sprintf "%.3f", (Time.now - start)*1000.0} ms: #{cql}"
28
+ puts "#{name} #{sprintf "%.3f", (Time.now - start)*1000.0} ms: #{cql}"
29
29
  return res
30
30
  rescue Cql::Protocol::DecodingError => e
31
31
  # Decoding errors tend to #$%# up the connection, resulting in no more activity, so a reconnect is performed here.
data/lib/believer/ddl.rb CHANGED
@@ -4,6 +4,16 @@ module Believer
4
4
  extend ActiveSupport::Concern
5
5
 
6
6
  module ClassMethods
7
+
8
+ def drop_table
9
+ connection_pool.with do |connection|
10
+ cql = "CREATE TABLE #{table_name}"
11
+ puts "Dropping table #{table_name} using CQL:\n#{cql}"
12
+ connection.execute(cql)
13
+ puts "Dropped table #{table_name}"
14
+ end
15
+ end
16
+
7
17
  def create_table
8
18
  connection_pool.with do |connection|
9
19
  cql = create_table_cql
@@ -1,6 +1,6 @@
1
1
  module Believer
2
2
  # Creates CQL DELETE statements
3
- class Delete < ScopedCommand
3
+ class Delete < FilterCommand
4
4
 
5
5
  # Creates the CQL
6
6
  def to_cql
@@ -11,7 +11,9 @@ module Believer
11
11
  :each => nil,
12
12
  :first => nil,
13
13
  :last => nil,
14
- :any? => false
14
+ :any? => false,
15
+ :sort_by => nil,
16
+ :loaded_objects => []
15
17
  }
16
18
  QUERY_METHODS = [:select, :where, :order, :limit]
17
19
 
@@ -1,6 +1,6 @@
1
1
  module Believer
2
2
  # A command implementation which includes a CQL WHERE clause
3
- class ScopedCommand < Command
3
+ class FilterCommand < Command
4
4
 
5
5
  def query_attributes
6
6
  attrs = super
@@ -0,0 +1,23 @@
1
+ module Believer
2
+ module FinderMethods
3
+
4
+ # Tests if there are any records present which conform to the argument filter(s)
5
+ # @param args [Object] a filter condition. This argument has the same usage as the where method
6
+ #def exists?(*args)
7
+ # super if defined?(super) && args.size == 0
8
+ # where(*args).exists?
9
+ #end
10
+
11
+ def find(*args)
12
+ return where(args[0]).first if args[0].is_a?(Hash)
13
+
14
+ if primary_key_columns.size == 1
15
+ return where(primary_key_columns[0] => args).to_a if args.is_a?(Array) && args.size > 1
16
+ return where(primary_key_columns[0] => args[0]).first
17
+ end
18
+
19
+ nil
20
+ end
21
+
22
+ end
23
+ end
@@ -1,9 +1,11 @@
1
1
  module Believer
2
- class Query < ScopedCommand
2
+ class Query < FilterCommand
3
3
 
4
4
  attr_accessor :record_class, :selects, :order_by, :limit_to
5
5
 
6
6
  delegate *(Enumerable.instance_methods(false).map {|enum_method| enum_method.to_sym}), :to => :to_a
7
+ delegate :each, :size, :[], :to => :to_a
8
+ delegate :primary_key_columns, :to => :record_class
7
9
 
8
10
  def initialize(attrs)
9
11
  super
@@ -85,23 +87,21 @@ module Believer
85
87
  end
86
88
 
87
89
  def to_a
88
- unless @result_rows
90
+ if @loaded_objects.nil?
89
91
  result = execute
90
- @result_rows = []
92
+ @loaded_objects = []
91
93
  start = Time.now
92
94
  result.each do |row|
93
- @result_rows << @record_class.instantiate_from_result_rows(row)
95
+ @loaded_objects << @record_class.instantiate_from_result_rows(row)
94
96
  end
95
- puts "Took #{sprintf "%.3f", (Time.now - start)*1000.0} ms to deserialize #{@result_rows.size} object(s)"
97
+ puts "Took #{sprintf "%.3f", (Time.now - start)*1000.0} ms to deserialize #{@loaded_objects.size} object(s)"
96
98
  end
97
- @result_rows
98
- end
99
-
100
- def size
101
- to_a.size
99
+ @loaded_objects
102
100
  end
103
101
 
104
102
  def count
103
+ return @loaded_objects.size unless @loaded_objects.nil?
104
+
105
105
  count_q = clone
106
106
  count_q.selects = ['COUNT(*)']
107
107
  result = count_q.execute
@@ -113,28 +113,31 @@ module Believer
113
113
  cnt
114
114
  end
115
115
 
116
- def each
117
- to_a.each do |r|
118
- yield r
119
- end
120
- end
121
-
122
- def [](index)
123
- to_a[index]
116
+ # Tests if there are any records present which conform to the argument filter(s)
117
+ # @param args [Object] a filter condition. This argument has the same usage as the where method
118
+ def exists?(*args)
119
+ return count > 0 if args.nil? || args.size == 0
120
+ where(*args).exists?
124
121
  end
125
122
 
126
123
  def first
127
- return @result_rows.first unless @result_rows.nil?
124
+ return @loaded_objects.first unless @loaded_objects.nil?
128
125
  clone.limit(1)[0]
129
126
  end
130
127
 
131
128
  def last
132
- return @result_rows.last unless @result_rows.nil?
133
- raise "Cannot retrieve last of no order column is set" if @order_by.nil?
129
+ return @loaded_objects.last unless @loaded_objects.nil?
130
+ raise "Cannot retrieve last if no order column is set" if @order_by.nil?
134
131
  lq = clone.limit(1)
135
132
  lq.order_by = @order_by.inverse
136
133
  lq[0]
137
134
  end
135
+
136
+ protected
137
+ def loaded_objects
138
+ @loaded_objects
139
+ end
140
+
138
141
  end
139
142
 
140
143
  end
@@ -1,6 +1,6 @@
1
1
  module Believer
2
2
  module Querying
3
- delegate :select, :where, :order, :limit, :to => :scoped
3
+ delegate :select, :where, :order, :limit, :exists?, :to => :scoped
4
4
 
5
5
  end
6
6
  end
@@ -65,7 +65,7 @@ module Believer
65
65
 
66
66
  raise "key and foreign_key must have same number of items" if opts[:key].size != opts[:foreign_key].size
67
67
 
68
- self.redefine_method(name) do
68
+ self.redefine_method(name) do |reload = false|
69
69
  relation_class = get_relation_class.call
70
70
 
71
71
  q = relation_class.scoped
@@ -75,16 +75,53 @@ module Believer
75
75
  end
76
76
  if options[:filter]
77
77
  q = self.instance_exec(q, &(options[:filter]))
78
- return EmptyResult.new unless q
78
+ unless q
79
+ er = EmptyResult.new
80
+ er.extend(CollectionMethods)
81
+ er.extend(::Believer::FinderMethods)
82
+ return er
83
+ end
79
84
  end
80
85
  return q.first if options[:type] == :one_2_one
81
- q
86
+
87
+ col = Collection.new(q.query_attributes)
88
+ col.to_a if reload
89
+ col
90
+ end
91
+
92
+ end
93
+
94
+ end
95
+
96
+ module CollectionMethods
97
+
98
+ def clear
99
+ destroy(*(to_a.dup))
100
+ end
101
+
102
+ def destroy(*objects)
103
+ return if loaded_objects.nil? || loaded_objects.empty?
104
+ objects.each do |obj|
105
+ if loaded_objects.include?(obj)
106
+ obj.destroy
107
+ loaded_objects.delete(obj)
108
+ end
82
109
  end
110
+ end
83
111
 
112
+ def create(attrs = {})
113
+ obj = record_class.create(attrs)
114
+ loaded_objects << obj
84
115
  end
85
116
 
86
117
  end
87
118
 
119
+ class Collection < Believer::Query
120
+ include CollectionMethods
121
+ include FinderMethods
122
+
123
+ end
124
+
88
125
  end
89
126
 
90
127
  end
@@ -12,34 +12,27 @@ module Believer
12
12
  end
13
13
  end
14
14
 
15
- def saved_models
16
- @saved_models ||= []
17
- end
18
-
19
- def after_save(model)
20
- saved_models << model
21
- end
22
-
23
15
  # Detroys all CqlRecord::Base instances created
24
16
  class Destructor < Believer::Observer
25
17
  observe Believer::Base
26
18
 
27
19
  def cleanup
28
- saved_models.each do |model|
29
- begin
30
- model.destroy
31
- rescue Exception => e
32
- puts "Could not destroy model #{model}: #{e}\n#{e.backtrace.join("\n")}"
20
+ unless @saved_models.nil? || @saved_models.empty?
21
+ puts "Cleaning up #{@saved_models.size} objects"
22
+ @saved_models.each do |model|
23
+ begin
24
+ model.destroy
25
+ rescue Exception => e
26
+ puts "Could not destroy model #{model}: #{e}\n#{e.backtrace.join("\n")}"
27
+ end
33
28
  end
29
+ @saved_models = nil
34
30
  end
35
31
  end
36
32
 
37
- def saved_models
38
- @saved_models ||= []
39
- end
40
-
41
33
  def after_save(model)
42
- saved_models << model
34
+ @saved_models ||= []
35
+ @saved_models << model
43
36
  end
44
37
 
45
38
  end
@@ -1,5 +1,5 @@
1
1
  module Believer
2
2
  module Version
3
- VERSION = '0.2.1'
3
+ VERSION = '0.2.2'
4
4
  end
5
5
  end
@@ -2,5 +2,9 @@ require 'spec_helper'
2
2
 
3
3
  describe Believer::Base do
4
4
 
5
-
5
+ it 'equality' do
6
+ a1 = Test::Artist.new(:name => 'Level 42')
7
+ a2 = Test::Artist.new(:name => 'Level 42', :label => 'Epic')
8
+ a1.should == a2
9
+ end
6
10
  end
@@ -1,6 +1,7 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Believer::Callbacks do
4
+ include Believer::Test::TestRunLifeCycle
4
5
 
5
6
  {:save => [:before, :after, :around],
6
7
  :destroy => [:before, :after, :around]
@@ -12,18 +12,14 @@ describe Believer::Environment do
12
12
  end
13
13
 
14
14
  it 'load the Merb configuration' do
15
- Env = Struct.new(:root, :environment, :logger)
16
-
17
- Merb = Env.new(File.join(RSpec.configuration.test_files_dir, 'merb'), :development, nil)
15
+ Merb = Struct.new(:root, :environment, :logger).new(File.join(RSpec.configuration.test_files_dir, 'merb'), :development, nil)
18
16
  env = Believer::Base.environment
19
17
  env.class.should == Believer::Environment::MerbEnv
20
18
  env.configuration[:host].should == 'merb.local'
21
19
  end
22
20
 
23
21
  it 'load the rails configuration' do
24
- Env = Struct.new(:root, :env, :logger)
25
-
26
- Rails = Env.new(File.join(RSpec.configuration.test_files_dir, 'rails'), :development, nil)
22
+ Rails = Struct.new(:root, :env, :logger).new(File.join(RSpec.configuration.test_files_dir, 'rails'), :development, nil)
27
23
  env = Believer::Base.environment
28
24
  env.class.should == Believer::Environment::RailsEnv
29
25
  env.configuration[:host].should == '123.456.789.0'
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ describe Believer::FinderMethods do
4
+
5
+ before :each do
6
+ @level_42 = Test::Artist.create(:name => 'Level 42')
7
+ @u2 = Test::Artist.create(:name => 'U2')
8
+ @ub_40 = Test::Artist.create(:name => 'UB 40')
9
+ @artists = [@level_42, @u2, @ub_40]
10
+ end
11
+
12
+ it 'exists? should return true for an existing object' do
13
+ # Test all variants
14
+ Test::Artist.exists?(:name => 'U2').should == true
15
+ Test::Artist.exists?('name = ?', 'U2').should == true
16
+ end
17
+
18
+ it 'exists? should return false for an non-existing object' do
19
+ # Test all variants
20
+ Test::Artist.exists?(:name => 'Genesis').should == false
21
+ Test::Artist.exists?('name = ?', 'Genesis').should == false
22
+ end
23
+
24
+ it 'find using a hash' do
25
+ Test::Artist.find(:name => 'U2').should == @u2
26
+ end
27
+
28
+ it 'find using an array' do
29
+ res = Test::Artist.find('U2', 'UB 40')
30
+ res.size.should == 2
31
+ res.include?(@u2).should == true
32
+ res.include?(@ub_40).should == true
33
+ end
34
+
35
+ it 'find using single primary key value' do
36
+ Test::Artist.find('U2').should == @u2
37
+ end
38
+
39
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Believer::Querying do
4
+
5
+ [
6
+ {:method => :select, :args => [:name]},
7
+ {:method => :where, :args => {:name => 'Beatles'}},
8
+ {:method => :order, :args => :name},
9
+ {:method => :limit, :args => 10},
10
+ ].each do |scenario|
11
+ it "#{scenario[:method]} call should return a query object" do
12
+ Test::Artist.send(scenario[:method], scenario[:args]).class.should == Believer::Query
13
+ end
14
+ end
15
+
16
+ end
@@ -1,23 +1,21 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe Believer::Relation do
4
+ include Believer::Test::TestRunLifeCycle
4
5
 
5
6
  before :each do
6
- @artists = []
7
- @artists << Test::Artist.create(:name => 'Beatles', :label => 'Apple')
8
- @artists << Test::Artist.create(:name => 'Jethro Tull', :label => 'Crysalis')
9
- @artists << Test::Artist.create(:name => 'Pink Floyd', :label => 'Epic')
7
+ @beatles = Test::Artist.create(:name => 'Beatles', :label => 'Apple')
8
+ @jethro_tull = Test::Artist.create(:name => 'Jethro Tull', :label => 'Crysalis')
9
+ @pink_floyd = Test::Artist.create(:name => 'Pink Floyd', :label => 'Epic')
10
10
 
11
- @albums = []
12
- @albums << Test::Album.create(:artist_name => 'Beatles', :name => 'Help', :release_date => Time.utc(1965))
13
- @albums << Test::Album.create(:artist_name => 'Beatles', :name => 'Revolver', :release_date => Time.utc(1966))
14
- @albums << Test::Album.create(:artist_name => 'Beatles', :name => 'Abbey Road', :release_date => Time.utc(1969))
11
+ @help = Test::Album.create(:artist_name => 'Beatles', :name => 'Help', :release_date => Time.utc(1965))
12
+ @revolver = Test::Album.create(:artist_name => 'Beatles', :name => 'Revolver', :release_date => Time.utc(1966))
13
+ @abbey_road = Test::Album.create(:artist_name => 'Beatles', :name => 'Abbey Road', :release_date => Time.utc(1969))
15
14
 
16
- @albums << Test::Album.create(:artist_name => 'Pink Floyd', :name => 'Dark side of the moon', :release_date => Time.utc(1973))
17
- @albums << Test::Album.create(:artist_name => 'Pink Floyd', :name => 'Wish you were here', :release_date => Time.utc(1975))
15
+ @dark_side_of_the_moon = Test::Album.create(:artist_name => 'Pink Floyd', :name => 'Dark side of the moon', :release_date => Time.utc(1973))
16
+ @wish_you_were_here = Test::Album.create(:artist_name => 'Pink Floyd', :name => 'Wish you were here', :release_date => Time.utc(1975))
18
17
 
19
- @songs = []
20
- @songs << Test::Song.create(:artist_name => 'Pink Floyd', :album_name => 'Wish you were here', :name => 'Have a cigar')
18
+ @have_a_cigar = Test::Song.create(:artist_name => 'Pink Floyd', :album_name => 'Wish you were here', :name => 'Have a cigar')
21
19
 
22
20
  end
23
21
 
@@ -26,8 +24,25 @@ describe Believer::Relation do
26
24
  a.albums.size.should == 3
27
25
  end
28
26
 
27
+ it "one to many relation collection should support exists? method" do
28
+ a = Test::Artist.where(:name => 'Beatles').first
29
+ a.albums.exists?(:name => 'Help').should == true
30
+ end
31
+
32
+ it "one to many relation collection should support clear method" do
33
+ a = Test::Artist.where(:name => 'Beatles').first
34
+ a.albums.size.should == 3
35
+ a.albums.clear
36
+ a.albums.size.should == 0
37
+ end
38
+
39
+ it "one to many relation collection should support find method" do
40
+ a = Test::Artist.where(:name => 'Beatles').first
41
+ a.albums.find(:name => 'Help').should == @help
42
+ end
43
+
29
44
  it "one to one relation" do
30
- @songs[0].album.should == Test::Album.where(:artist_name => 'Pink Floyd', :name => 'Wish you were here').first
45
+ @have_a_cigar.album.should == Test::Album.where(:artist_name => 'Pink Floyd', :name => 'Wish you were here').first
31
46
  end
32
47
 
33
48
  end
@@ -0,0 +1,53 @@
1
+ require 'spec_helper'
2
+
3
+ #TODO: this is a crappy test!
4
+ describe Believer::Test::TestRunLifeCycle do
5
+ include Believer::Test::TestRunLifeCycle
6
+
7
+ before :all do
8
+ @destroyed_count = 0
9
+ @destroy_monitor = lambda do |obj|
10
+ @destroyed_count += 1
11
+ puts "Destroyed"
12
+ end
13
+
14
+ begin
15
+ XXX.drop_table
16
+ XXX.create_table
17
+ rescue
18
+ end
19
+
20
+ end
21
+
22
+ after :all do
23
+ puts "Checking"
24
+ @destroyed_count.should == @created.size
25
+ XXX.drop_table
26
+ end
27
+
28
+ before :each do
29
+
30
+ @created = []
31
+ 10.times do |i|
32
+ @created << XXX.create(:name => "artist_#{i}", :destroy_monitor => @destroy_monitor)
33
+ puts "Created"
34
+ end
35
+ end
36
+
37
+ it "should clean all created objects" do
38
+
39
+ end
40
+
41
+ class XXX < Believer::Base
42
+ column :name, :type => :string
43
+ primary_key :name
44
+ cattr_accessor :destroyed_count
45
+
46
+ attr_accessor :destroy_monitor
47
+
48
+ before_destroy do
49
+ @destroy_monitor.call(self)
50
+ end
51
+ end
52
+
53
+ end
@@ -1,18 +1,23 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe 'Time series' do
4
+ include Believer::Test::TestRunLifeCycle
4
5
 
5
6
  before :each do
6
7
  @interval = 1.minute
7
8
  @start = Time.utc(2012)
8
- @count = 1000
9
+ @count = 10
9
10
  @count.times do |i|
10
- Test::Event.create(:computer_id => 1, :event_type => 1, :time => @start + (@interval * i))
11
+ attrs = {:computer_id => 'ABC', :event_type => 1, :time => @start + (@interval * i)}
12
+ Test::Event::PARAMETER_NAMES.each do |param|
13
+ attrs[param] = rand(1000) * rand(1000)
14
+ end
15
+ Test::Event.create(attrs)
11
16
  end
12
17
  end
13
18
 
14
19
  it 'load all' do
15
- Test::Event.where(:computer_id => 1, :event_type => 1).size.should == @count
20
+ Test::Event.where(:computer_id => 'ABC', :event_type => 1).size.should == @count
16
21
  end
17
22
 
18
23
  end
@@ -45,11 +45,16 @@ module Test
45
45
  end
46
46
 
47
47
  class Event < Believer::Base
48
- column :computer_id, :type => :integer
48
+ column :computer_id, :type => :string
49
49
  column :event_type, :type => :integer
50
50
  column :time, :type => :integer, :key => true
51
51
  column :description, :type => :string
52
52
 
53
+ PARAMETER_NAMES = (1..50).map { |index| "parameter_#{index}".to_sym }
54
+ PARAMETER_NAMES.each do |param|
55
+ column param, :type => :float
56
+ end
57
+
53
58
  primary_key [:computer_id, :event_type], :time
54
59
 
55
60
  end
metadata CHANGED
@@ -1,119 +1,124 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: believer
3
- version: !ruby/object:Gem::Version
4
- version: 0.2.1
3
+ version: !ruby/object:Gem::Version
4
+ hash: 19
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 2
9
+ - 2
10
+ version: 0.2.2
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Jerphaes van Blijenburgh
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2013-10-22 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2013-10-23 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: activemodel
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :runtime
23
22
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
23
+ requirement: &id001 !ruby/object:Gem::Requirement
25
24
  none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: cql-rb
32
- requirement: !ruby/object:Gem::Requirement
33
- none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 21
29
+ segments:
30
+ - 3
31
+ - 2
32
+ - 13
33
+ version: 3.2.13
38
34
  type: :runtime
35
+ version_requirements: *id001
36
+ - !ruby/object:Gem::Dependency
37
+ name: cql-rb
39
38
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
39
+ requirement: &id002 !ruby/object:Gem::Requirement
41
40
  none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- - !ruby/object:Gem::Dependency
47
- name: connection_pool
48
- requirement: !ruby/object:Gem::Requirement
49
- none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ hash: -1897861864
45
+ segments:
46
+ - 1
47
+ - 1
48
+ - 0
49
+ - pre
50
+ - 6
51
+ version: 1.1.0.pre6
54
52
  type: :runtime
53
+ version_requirements: *id002
54
+ - !ruby/object:Gem::Dependency
55
+ name: connection_pool
55
56
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
+ requirement: &id003 !ruby/object:Gem::Requirement
57
58
  none: false
58
- requirements:
59
- - - ! '>='
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- - !ruby/object:Gem::Dependency
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ hash: 3
63
+ segments:
64
+ - 0
65
+ version: "0"
66
+ type: :runtime
67
+ version_requirements: *id003
68
+ - !ruby/object:Gem::Dependency
63
69
  name: rake
64
- requirement: !ruby/object:Gem::Requirement
65
- none: false
66
- requirements:
67
- - - ! '>='
68
- - !ruby/object:Gem::Version
69
- version: '0'
70
- type: :development
71
70
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
71
+ requirement: &id004 !ruby/object:Gem::Requirement
73
72
  none: false
74
- requirements:
75
- - - ! '>='
76
- - !ruby/object:Gem::Version
77
- version: '0'
78
- - !ruby/object:Gem::Dependency
79
- name: rspec
80
- requirement: !ruby/object:Gem::Requirement
81
- none: false
82
- requirements:
83
- - - ! '>='
84
- - !ruby/object:Gem::Version
85
- version: '0'
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ hash: 3
77
+ segments:
78
+ - 0
79
+ version: "0"
86
80
  type: :development
81
+ version_requirements: *id004
82
+ - !ruby/object:Gem::Dependency
83
+ name: rspec
87
84
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
85
+ requirement: &id005 !ruby/object:Gem::Requirement
89
86
  none: false
90
- requirements:
91
- - - ! '>='
92
- - !ruby/object:Gem::Version
93
- version: '0'
94
- - !ruby/object:Gem::Dependency
95
- name: simplecov
96
- requirement: !ruby/object:Gem::Requirement
97
- none: false
98
- requirements:
99
- - - ! '>='
100
- - !ruby/object:Gem::Version
101
- version: '0'
87
+ requirements:
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ hash: 3
91
+ segments:
92
+ - 0
93
+ version: "0"
102
94
  type: :development
95
+ version_requirements: *id005
96
+ - !ruby/object:Gem::Dependency
97
+ name: simplecov
103
98
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
99
+ requirement: &id006 !ruby/object:Gem::Requirement
105
100
  none: false
106
- requirements:
107
- - - ! '>='
108
- - !ruby/object:Gem::Version
109
- version: '0'
110
- description: ! 'An Objeect Relational Mapping library for CQL3 '
111
- email:
101
+ requirements:
102
+ - - "="
103
+ - !ruby/object:Gem::Version
104
+ hash: 1
105
+ segments:
106
+ - 0
107
+ - 7
108
+ - 1
109
+ version: 0.7.1
110
+ type: :development
111
+ version_requirements: *id006
112
+ description: "An Objeect Relational Mapping library for CQL3 "
113
+ email:
112
114
  - jerphaes@gmail.com
113
115
  executables: []
116
+
114
117
  extensions: []
118
+
115
119
  extra_rdoc_files: []
116
- files:
120
+
121
+ files:
117
122
  - lib/believer/base.rb
118
123
  - lib/believer/batch.rb
119
124
  - lib/believer/batch_delete.rb
@@ -129,6 +134,8 @@ files:
129
134
  - lib/believer/environment/merb_env.rb
130
135
  - lib/believer/environment/rails_env.rb
131
136
  - lib/believer/environment.rb
137
+ - lib/believer/filter_command.rb
138
+ - lib/believer/finder_methods.rb
132
139
  - lib/believer/insert.rb
133
140
  - lib/believer/limit.rb
134
141
  - lib/believer/model_schema.rb
@@ -138,7 +145,6 @@ files:
138
145
  - lib/believer/query.rb
139
146
  - lib/believer/querying.rb
140
147
  - lib/believer/relation.rb
141
- - lib/believer/scoped_command.rb
142
148
  - lib/believer/scoping.rb
143
149
  - lib/believer/test/test_run_life_cycle.rb
144
150
  - lib/believer/values.rb
@@ -150,51 +156,67 @@ files:
150
156
  - spec/believer/callback_spec.rb
151
157
  - spec/believer/delete_spec.rb
152
158
  - spec/believer/environment_spec.rb
159
+ - spec/believer/finder_methods_spec.rb
153
160
  - spec/believer/insert_spec.rb
154
161
  - spec/believer/limit_spec.rb
155
162
  - spec/believer/order_by_spec.rb
156
163
  - spec/believer/query_spec.rb
164
+ - spec/believer/querying_spec.rb
157
165
  - spec/believer/relation_spec.rb
166
+ - spec/believer/test_run_life_cycle_spec.rb
158
167
  - spec/believer/time_series_spec.rb
159
168
  - spec/believer/where_spec.rb
160
169
  - spec/spec_helper.rb
161
170
  - spec/support/setup_database.rb
162
171
  - spec/support/test_classes.rb
163
172
  homepage: http://github.com/jerphaes/believer
164
- licenses:
173
+ licenses:
165
174
  - Apache License 2.0
166
175
  post_install_message:
167
176
  rdoc_options: []
168
- require_paths:
177
+
178
+ require_paths:
169
179
  - lib
170
- required_ruby_version: !ruby/object:Gem::Requirement
180
+ required_ruby_version: !ruby/object:Gem::Requirement
171
181
  none: false
172
- requirements:
173
- - - ! '>='
174
- - !ruby/object:Gem::Version
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ hash: 55
186
+ segments:
187
+ - 1
188
+ - 9
189
+ - 2
175
190
  version: 1.9.2
176
- required_rubygems_version: !ruby/object:Gem::Requirement
191
+ required_rubygems_version: !ruby/object:Gem::Requirement
177
192
  none: false
178
- requirements:
179
- - - ! '>='
180
- - !ruby/object:Gem::Version
181
- version: '0'
193
+ requirements:
194
+ - - ">="
195
+ - !ruby/object:Gem::Version
196
+ hash: 3
197
+ segments:
198
+ - 0
199
+ version: "0"
182
200
  requirements: []
201
+
183
202
  rubyforge_project:
184
203
  rubygems_version: 1.8.25
185
204
  signing_key:
186
205
  specification_version: 3
187
206
  summary: CQL3 ORM
188
- test_files:
207
+ test_files:
189
208
  - spec/believer/base_spec.rb
190
209
  - spec/believer/callback_spec.rb
191
210
  - spec/believer/delete_spec.rb
192
211
  - spec/believer/environment_spec.rb
212
+ - spec/believer/finder_methods_spec.rb
193
213
  - spec/believer/insert_spec.rb
194
214
  - spec/believer/limit_spec.rb
195
215
  - spec/believer/order_by_spec.rb
196
216
  - spec/believer/query_spec.rb
217
+ - spec/believer/querying_spec.rb
197
218
  - spec/believer/relation_spec.rb
219
+ - spec/believer/test_run_life_cycle_spec.rb
198
220
  - spec/believer/time_series_spec.rb
199
221
  - spec/believer/where_spec.rb
200
222
  - spec/spec_helper.rb