cassandra_datum 0.0.9

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.
@@ -0,0 +1,101 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'test/unit'
11
+ require 'shoulda'
12
+ require 'factory_girl'
13
+
14
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
15
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
16
+
17
+ require 'cassandra_datum'
18
+ require 'cassandra_datum/test_helper'
19
+
20
+ ::CASSANDRA_CLIENT = Cassandra.new('BackupifyMetadata_test', %w[localhost:9160])
21
+
22
+ class Test::Unit::TestCase
23
+ include CassandraDatum::TestHelper
24
+ end
25
+
26
+ class MockCassandraDatum < CassandraDatum::Base
27
+
28
+ attribute! :row_id
29
+ attribute! :document_id
30
+ attribute! :timestamp, :type => DateTime
31
+ attribute :payload
32
+
33
+ validates_presence_of :timestamp
34
+
35
+ # Just to test before_save callback
36
+ before_save do |datum|
37
+ @@before_save_counts ||= {}
38
+ @@before_save_counts[datum].present? ? @@before_save_counts[datum] += 1 : @@before_save_counts[datum] = 1
39
+ end
40
+
41
+ def self.before_save_counts
42
+ @@before_save_counts
43
+ end
44
+
45
+ def self.reset_before_save_counts!
46
+ @@before_save_counts = {}
47
+ end
48
+ end
49
+
50
+ class OverrideColumnFamilyDatum < CassandraDatum::Base
51
+ column_family 'MockCassandraData'
52
+
53
+ attribute :payload
54
+ end
55
+
56
+ class PolymorphicCassandraDatum < MockCassandraDatum
57
+ attribute :type, :type => String
58
+ end
59
+
60
+ class DatumWithArrayAndHash < MockCassandraDatum
61
+ attribute :type, :type => String
62
+
63
+ attribute :a_hash, :type => Hash
64
+ attribute :an_array, :type => Array
65
+ end
66
+
67
+ require 'active_record'
68
+
69
+ class MockCassandraDatumObserver < ActiveRecord::Observer
70
+ observe :mock_cassandra_datum
71
+
72
+ def before_save(datum)
73
+ @@before_save_counts ||= {}
74
+ @@before_save_counts[datum].present? ? @@before_save_counts[datum] += 1 : @@before_save_counts[datum] = 1
75
+ end
76
+
77
+ def self.before_save_counts
78
+ @@before_save_counts
79
+ end
80
+
81
+ def self.reset_before_save_counts!
82
+ @@before_save_counts = {}
83
+ end
84
+
85
+ end
86
+
87
+ FactoryGirl.define do
88
+ factory :mock_cassandra_datum, :aliases => [:cassandra_datum] do
89
+ row_id { SecureRandom.hex(8) }
90
+ document_id { SecureRandom.hex(8) }
91
+ timestamp { Time.now }
92
+ sequence(:payload) { |n| "data payload #{n}" }
93
+ end
94
+
95
+ factory :polymorphic_cassandra_datum, :class => PolymorphicCassandraDatum, :parent => :cassandra_datum do
96
+ end
97
+
98
+ factory :datum_with_array_and_hash, :class => DatumWithArrayAndHash, :parent => :cassandra_datum do
99
+ end
100
+
101
+ end
metadata ADDED
@@ -0,0 +1,194 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cassandra_datum
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.9
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Jason Haruska
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-09-07 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ type: :runtime
17
+ requirement: !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: 2.3.5
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ! '>='
27
+ - !ruby/object:Gem::Version
28
+ version: 2.3.5
29
+ prerelease: false
30
+ - !ruby/object:Gem::Dependency
31
+ name: activemodel
32
+ type: :runtime
33
+ requirement: !ruby/object:Gem::Requirement
34
+ none: false
35
+ requirements:
36
+ - - ! '>='
37
+ - !ruby/object:Gem::Version
38
+ version: 2.3.5
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ! '>='
43
+ - !ruby/object:Gem::Version
44
+ version: 2.3.5
45
+ prerelease: false
46
+ - !ruby/object:Gem::Dependency
47
+ name: activerecord
48
+ type: :runtime
49
+ requirement: !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 2.3.5
55
+ version_requirements: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ! '>='
59
+ - !ruby/object:Gem::Version
60
+ version: 2.3.5
61
+ prerelease: false
62
+ - !ruby/object:Gem::Dependency
63
+ name: cassandra
64
+ type: :runtime
65
+ requirement: !ruby/object:Gem::Requirement
66
+ none: false
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ version_requirements: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ prerelease: false
78
+ - !ruby/object:Gem::Dependency
79
+ name: active_attr
80
+ type: :runtime
81
+ requirement: !ruby/object:Gem::Requirement
82
+ none: false
83
+ requirements:
84
+ - - ! '>='
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ version_requirements: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ! '>='
91
+ - !ruby/object:Gem::Version
92
+ version: '0'
93
+ prerelease: false
94
+ - !ruby/object:Gem::Dependency
95
+ name: exception_helper
96
+ type: :runtime
97
+ requirement: !ruby/object:Gem::Requirement
98
+ none: false
99
+ requirements:
100
+ - - ! '>='
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ version_requirements: !ruby/object:Gem::Requirement
104
+ none: false
105
+ requirements:
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ prerelease: false
110
+ - !ruby/object:Gem::Dependency
111
+ name: shoulda
112
+ type: :development
113
+ requirement: !ruby/object:Gem::Requirement
114
+ none: false
115
+ requirements:
116
+ - - ! '>='
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ none: false
121
+ requirements:
122
+ - - ! '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ prerelease: false
126
+ - !ruby/object:Gem::Dependency
127
+ name: factory_girl
128
+ type: :development
129
+ requirement: !ruby/object:Gem::Requirement
130
+ none: false
131
+ requirements:
132
+ - - ! '>='
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ none: false
137
+ requirements:
138
+ - - ! '>='
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ prerelease: false
142
+ description: Cassandra backed ORM
143
+ email:
144
+ - jason@backupify.com
145
+ executables: []
146
+ extensions: []
147
+ extra_rdoc_files: []
148
+ files:
149
+ - .gitignore
150
+ - Gemfile
151
+ - Gemfile.lock
152
+ - LICENSE.txt
153
+ - README.rdoc
154
+ - Rakefile
155
+ - cassandra_datum.gemspec
156
+ - lib/cassandra_datum.rb
157
+ - lib/cassandra_datum/base.rb
158
+ - lib/cassandra_datum/railtie.rb
159
+ - lib/cassandra_datum/tasks.rb
160
+ - lib/cassandra_datum/test_helper.rb
161
+ - lib/cassandra_datum/version.rb
162
+ - test/base_test.rb
163
+ - test/helper.rb
164
+ homepage: http://github.com/backupify/cassandra_datum
165
+ licenses:
166
+ - MIT
167
+ post_install_message:
168
+ rdoc_options: []
169
+ require_paths:
170
+ - lib
171
+ required_ruby_version: !ruby/object:Gem::Requirement
172
+ none: false
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ segments:
178
+ - 0
179
+ hash: -282891552847771728
180
+ required_rubygems_version: !ruby/object:Gem::Requirement
181
+ none: false
182
+ requirements:
183
+ - - ! '>='
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ requirements: []
187
+ rubyforge_project:
188
+ rubygems_version: 1.8.23
189
+ signing_key:
190
+ specification_version: 3
191
+ summary: An active record like object base that is backed by Cassandra
192
+ test_files:
193
+ - test/base_test.rb
194
+ - test/helper.rb