gotime-cassandra_object 4.5.1 → 4.6.0

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 (72) hide show
  1. data/.travis.yml +2 -0
  2. data/Gemfile +5 -1
  3. data/README.rdoc +0 -2
  4. data/gotime-cassandra_object.gemspec +1 -1
  5. data/lib/cassandra_object/attribute_methods.rb +4 -4
  6. data/lib/cassandra_object/attribute_methods/dirty.rb +1 -1
  7. data/lib/cassandra_object/attribute_methods/primary_key.rb +1 -1
  8. data/lib/cassandra_object/attribute_methods/typecasting.rb +9 -6
  9. data/lib/cassandra_object/base.rb +11 -43
  10. data/lib/cassandra_object/belongs_to.rb +1 -1
  11. data/lib/cassandra_object/belongs_to/association.rb +1 -1
  12. data/lib/cassandra_object/belongs_to/reflection.rb +2 -2
  13. data/lib/cassandra_object/config.rb +15 -0
  14. data/lib/cassandra_object/connection.rb +1 -19
  15. data/lib/cassandra_object/consistency.rb +1 -1
  16. data/lib/cassandra_object/core.rb +46 -0
  17. data/lib/cassandra_object/errors.rb +2 -2
  18. data/lib/cassandra_object/identity.rb +1 -1
  19. data/lib/cassandra_object/persistence.rb +21 -7
  20. data/lib/cassandra_object/railtie.rb +1 -1
  21. data/lib/cassandra_object/savepoints.rb +1 -1
  22. data/lib/cassandra_object/schema.rb +30 -15
  23. data/lib/cassandra_object/schema/tasks.rb +8 -4
  24. data/lib/cassandra_object/scope.rb +1 -1
  25. data/lib/cassandra_object/scope/batches.rb +1 -1
  26. data/lib/cassandra_object/scope/finder_methods.rb +1 -1
  27. data/lib/cassandra_object/scope/query_methods.rb +1 -1
  28. data/lib/cassandra_object/tasks/ks.rake +6 -6
  29. data/lib/cassandra_object/types/array_type.rb +1 -1
  30. data/lib/cassandra_object/types/base_type.rb +1 -1
  31. data/lib/cassandra_object/types/boolean_type.rb +2 -2
  32. data/lib/cassandra_object/types/float_type.rb +1 -1
  33. data/lib/cassandra_object/types/integer_type.rb +1 -1
  34. data/lib/cassandra_object/types/json_type.rb +1 -1
  35. data/lib/cassandra_object/types/string_type.rb +1 -1
  36. data/lib/cassandra_object/types/time_type.rb +1 -1
  37. data/lib/cassandra_object/validations.rb +3 -3
  38. data/lib/gotime-cassandra_object.rb +10 -8
  39. data/test/support/connect.rb +3 -3
  40. data/test/support/issue.rb +1 -1
  41. data/test/test_helper.rb +1 -1
  42. data/test/unit/active_model_test.rb +6 -1
  43. data/test/unit/attribute_methods/definition_test.rb +1 -1
  44. data/test/unit/attribute_methods/dirty_test.rb +2 -2
  45. data/test/unit/attribute_methods/primary_key_test.rb +1 -1
  46. data/test/unit/attribute_methods/typecasting_test.rb +28 -2
  47. data/test/unit/base_test.rb +1 -43
  48. data/test/unit/belongs_to/reflection_test.rb +12 -0
  49. data/test/unit/belongs_to_test.rb +1 -1
  50. data/test/unit/callbacks_test.rb +1 -1
  51. data/test/unit/config_test.rb +23 -0
  52. data/test/unit/connection_test.rb +0 -20
  53. data/test/unit/consistency_test.rb +1 -1
  54. data/test/unit/core_test.rb +50 -0
  55. data/test/unit/identity_test.rb +1 -1
  56. data/test/unit/inspect_test.rb +1 -1
  57. data/test/unit/persistence_test.rb +36 -7
  58. data/test/unit/savepoints_test.rb +7 -7
  59. data/test/unit/schema_test.rb +1 -1
  60. data/test/unit/scope/batches_test.rb +4 -4
  61. data/test/unit/scope/finder_methods_test.rb +3 -3
  62. data/test/unit/scope/query_methods_test.rb +1 -1
  63. data/test/unit/scoping_test.rb +1 -1
  64. data/test/unit/timestamps_test.rb +1 -1
  65. data/test/unit/types/array_type_test.rb +3 -3
  66. data/test/unit/types/base_type_test.rb +1 -1
  67. data/test/unit/types/float_type_test.rb +2 -2
  68. data/test/unit/types/integer_type_test.rb +1 -1
  69. data/test/unit/types/string_type_test.rb +1 -1
  70. data/test/unit/types/time_type_test.rb +1 -1
  71. data/test/unit/validations_test.rb +1 -1
  72. metadata +7 -2
@@ -7,24 +7,4 @@ class CassandraObject::ConnectionTest < CassandraObject::TestCase
7
7
  test "sanitize supports question marks" do
8
8
  assert_equal 'hello ?', CassandraCQL::Statement.sanitize('hello ?')
9
9
  end
10
-
11
- test 'establish_connection' do
12
- TestObject.establish_connection(
13
- keyspace: 'place_directory_development',
14
- servers: '192.168.0.100:9160',
15
- thrift: {'timeout' => 10}
16
- )
17
- #
18
- assert_equal ['192.168.0.100:9160'], TestObject.connection_config.servers
19
- assert_equal 'place_directory_development', TestObject.connection_config.keyspace
20
- assert_equal 10, TestObject.connection_config.thrift_options[:timeout]
21
- end
22
-
23
- test 'establish_connection defaults' do
24
- TestObject.establish_connection(
25
- keyspace: 'place_directory_development'
26
- )
27
-
28
- assert_equal ["127.0.0.1:9160"], TestObject.connection_config.servers
29
- end
30
10
  end
@@ -10,4 +10,4 @@ class CassandraObject::ConsistencyTest < CassandraObject::TestCase
10
10
 
11
11
  assert_equal original, CassandraObject::Base.default_consistency
12
12
  end
13
- end
13
+ end
@@ -0,0 +1,50 @@
1
+ require 'test_helper'
2
+
3
+ class CassandraObject::CoreTest < CassandraObject::TestCase
4
+ test 'initialiaze' do
5
+ issue = Issue.new
6
+
7
+ assert issue.new_record?
8
+ assert !issue.destroyed?
9
+ end
10
+
11
+ test 'initialize yields self' do
12
+ issue = Issue.new { |i| i.description = 'bar' }
13
+ assert_equal 'bar', issue.description
14
+ end
15
+
16
+ test 'dup' do
17
+ issue = Issue.create description: 'foo'
18
+
19
+ dup_issue = issue.dup
20
+
21
+ assert dup_issue.new_record?
22
+ assert_not_equal issue.id, dup_issue.id
23
+ assert_nil dup_issue.created_at
24
+ assert_nil dup_issue.updated_at
25
+ assert_equal 'foo', issue.description
26
+ end
27
+
28
+ test 'equality of new records' do
29
+ assert_not_equal Issue.new, Issue.new
30
+ end
31
+
32
+ test 'equality' do
33
+ first_issue = Issue.create
34
+ second_issue = Issue.create
35
+
36
+ assert_equal first_issue, first_issue
37
+ assert_equal first_issue, Issue.find(first_issue.id)
38
+ assert_not_equal first_issue, second_issue
39
+ end
40
+
41
+ test 'to_param' do
42
+ issue = Issue.new
43
+ assert_equal issue.id, issue.to_param
44
+ end
45
+
46
+ test 'hash' do
47
+ issue = Issue.create
48
+ assert_equal issue.id.hash, issue.hash
49
+ end
50
+ end
@@ -23,4 +23,4 @@ class CassandraObject::IdentityTest < CassandraObject::TestCase
23
23
 
24
24
  assert_equal 'name:bar', model._generate_key(record)
25
25
  end
26
- end
26
+ end
@@ -23,4 +23,4 @@ class CassandraObject::InspectTest < CassandraObject::TestCase
23
23
  assert_match /description/, object.inspect
24
24
  assert_no_match /price/, object.inspect
25
25
  end
26
- end
26
+ end
@@ -5,7 +5,7 @@ class CassandraObject::PersistenceTest < CassandraObject::TestCase
5
5
  klass = temp_object do
6
6
  string :description
7
7
  end
8
-
8
+
9
9
  assert_equal(
10
10
  {},
11
11
  klass.encode_attributes({})
@@ -65,6 +65,12 @@ class CassandraObject::PersistenceTest < CassandraObject::TestCase
65
65
  assert !issue.new_record?
66
66
  end
67
67
 
68
+ test 'create' do
69
+ issue = Issue.create { |i| i.description = 'foo' }
70
+ assert_equal 'foo', issue.description
71
+ assert_equal 'foo', Issue.find(issue.id).description
72
+ end
73
+
68
74
  test 'save' do
69
75
  issue = Issue.new
70
76
  issue.save
@@ -77,7 +83,7 @@ class CassandraObject::PersistenceTest < CassandraObject::TestCase
77
83
  string :description
78
84
  validates :description, presence: true
79
85
  end
80
-
86
+
81
87
  record = klass.new(description: 'bad')
82
88
  record.save!
83
89
 
@@ -90,7 +96,7 @@ class CassandraObject::PersistenceTest < CassandraObject::TestCase
90
96
  test 'destroy' do
91
97
  issue = Issue.create
92
98
  issue.destroy
93
-
99
+
94
100
  assert issue.destroyed?
95
101
  assert !issue.persisted?
96
102
  assert !issue.new_record?
@@ -103,7 +109,7 @@ class CassandraObject::PersistenceTest < CassandraObject::TestCase
103
109
  assert !issue.changed?
104
110
  assert_equal 'lol', issue.description
105
111
  end
106
-
112
+
107
113
  test 'update_attributes' do
108
114
  issue = Issue.create
109
115
  issue.update_attributes(description: 'lol')
@@ -118,7 +124,7 @@ class CassandraObject::PersistenceTest < CassandraObject::TestCase
118
124
 
119
125
  issue = Issue.new(description: 'bad')
120
126
  issue.save!
121
-
127
+
122
128
  assert_raise CassandraObject::RecordInvalid do
123
129
  issue.update_attributes! description: ''
124
130
  end
@@ -136,13 +142,21 @@ class CassandraObject::PersistenceTest < CassandraObject::TestCase
136
142
  assert_nil issue.title
137
143
  end
138
144
 
145
+ test 'becomes' do
146
+ klass = temp_object do
147
+ end
148
+
149
+ assert_kind_of klass, Issue.new.becomes(klass)
150
+ end
151
+
139
152
  test 'reload' do
140
153
  persisted_issue = Issue.create
141
154
  fresh_issue = Issue.find(persisted_issue.id)
142
155
  fresh_issue.update_attribute(:description, 'say what')
143
156
 
144
- persisted_issue.reload
157
+ reloaded_issue = persisted_issue.reload
145
158
  assert_equal 'say what', persisted_issue.description
159
+ assert_equal persisted_issue, reloaded_issue
146
160
  end
147
161
 
148
162
  test 'delete with consistency' do
@@ -158,4 +172,19 @@ class CassandraObject::PersistenceTest < CassandraObject::TestCase
158
172
  end
159
173
  end
160
174
 
161
- end
175
+ test 'allow CQL keyword in column name' do
176
+ assert_nothing_raised do
177
+ Issue.string :text
178
+ issue = Issue.create :text => 'hello'
179
+ issue.text = 'world'
180
+ issue.save!
181
+ issue.text = nil
182
+ issue.save!
183
+ end
184
+ end
185
+
186
+ test 'quote_columns' do
187
+ klass = Class.new { include CassandraObject::Persistence }
188
+ assert_equal %w{'a' 'b'}, klass.__send__(:quote_columns, %w{a b})
189
+ end
190
+ end
@@ -6,30 +6,30 @@ class CassandraObject::SavepointsTest < CassandraObject::TestCase
6
6
  issue = Issue.create description: 'foo'
7
7
  raise 'lol'
8
8
  end
9
-
9
+
10
10
  assert_nil Issue.first
11
11
  end
12
-
12
+
13
13
  test 'rollback update' do
14
14
  issue = Issue.create description: 'foo'
15
-
15
+
16
16
  Issue.savepoint do
17
17
  issue.update_attributes description: 'bar'
18
18
  raise 'lol'
19
19
  end
20
-
20
+
21
21
  issue = Issue.find issue.id
22
22
  assert_equal 'foo', issue.description
23
23
  end
24
24
 
25
25
  test 'rollback destroy' do
26
26
  issue = Issue.create description: 'foo'
27
-
27
+
28
28
  Issue.savepoint do
29
29
  issue.destroy
30
30
  raise 'lol'
31
31
  end
32
-
32
+
33
33
  assert_nothing_raised { Issue.find issue.id }
34
34
  end
35
- end
35
+ end
@@ -10,4 +10,4 @@ class CassandraObject::SchemaTest < CassandraObject::TestCase
10
10
  rescue Exception => e
11
11
  end
12
12
  end
13
- end
13
+ end
@@ -2,8 +2,8 @@ require 'test_helper'
2
2
 
3
3
  class CassandraObject::BatchesTest < CassandraObject::TestCase
4
4
  test 'find_each' do
5
- Issue.create
6
- Issue.create
5
+ Issue.create
6
+ Issue.create
7
7
 
8
8
  issues = []
9
9
  Issue.find_each do |issue|
@@ -14,7 +14,7 @@ class CassandraObject::BatchesTest < CassandraObject::TestCase
14
14
  end
15
15
 
16
16
  test 'find_in_batches' do
17
- Issue.create
17
+ Issue.create
18
18
  Issue.create
19
19
  Issue.create
20
20
 
@@ -27,4 +27,4 @@ class CassandraObject::BatchesTest < CassandraObject::TestCase
27
27
  assert issue_batches.any? { |issues| issues.size == 2 }
28
28
  assert issue_batches.any? { |issues| issues.size == 1 }
29
29
  end
30
- end
30
+ end
@@ -12,7 +12,7 @@ class CassandraObject::FinderMethodsTest < CassandraObject::TestCase
12
12
  rescue => e
13
13
  assert_equal "Couldn't find Issue with key nil", e.message
14
14
  end
15
-
15
+
16
16
  assert_raise CassandraObject::RecordNotFound do
17
17
  Issue.find('what')
18
18
  end
@@ -45,7 +45,7 @@ class CassandraObject::FinderMethodsTest < CassandraObject::TestCase
45
45
  test 'first' do
46
46
  first_issue = Issue.create
47
47
  second_issue = Issue.create
48
-
48
+
49
49
  assert [first_issue, second_issue].include?(Issue.first)
50
50
  end
51
- end
51
+ end
@@ -23,4 +23,4 @@ class CassandraObject::Scope::QueryMethodsTest < CassandraObject::TestCase
23
23
  Issue.all
24
24
  end
25
25
  end
26
- end
26
+ end
@@ -4,4 +4,4 @@ class CassandraObject::ScopingTest < CassandraObject::TestCase
4
4
  test "scope" do
5
5
  assert_kind_of CassandraObject::Scope, Issue.scope
6
6
  end
7
- end
7
+ end
@@ -24,4 +24,4 @@ class CassandraObject::TimestampsTest < CassandraObject::TestCase
24
24
 
25
25
  assert_equal time, issue.created_at
26
26
  end
27
- end
27
+ end
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
  class CassandraObject::Types::ArrayTypeTest < CassandraObject::Types::TestCase
4
4
  test 'encode' do
5
5
  assert_equal ['1', '2'].to_json, coder.encode(['1', '2'])
6
-
6
+
7
7
  assert_raise ArgumentError do
8
8
  coder.encode('wtf')
9
9
  end
@@ -49,10 +49,10 @@ class CassandraObject::Types::ArrayTypeTest < CassandraObject::Types::TestCase
49
49
 
50
50
  test 'unique array uniquifies' do
51
51
  issue = TestIssue.create favorite_colors: ['blue', 'red']
52
-
52
+
53
53
  issue.favorite_colors = ['red', 'red', 'blue']
54
54
  assert !issue.changed?
55
-
55
+
56
56
  issue.favorite_colors = ['red', 'green']
57
57
  assert issue.changed?
58
58
  end
@@ -21,4 +21,4 @@ class CassandraObject::Types::BaseTypeTest < CassandraObject::Types::TestCase
21
21
  object = Object.new
22
22
  assert_equal object, coder.wrap(nil, nil, object)
23
23
  end
24
- end
24
+ end
@@ -3,7 +3,7 @@ require 'test_helper'
3
3
  class CassandraObject::Types::FloatTypeTest < CassandraObject::Types::TestCase
4
4
  test 'encode' do
5
5
  assert_equal '5.01', coder.encode(5.01)
6
-
6
+
7
7
  assert_raise ArgumentError do
8
8
  coder.encode('x')
9
9
  end
@@ -17,4 +17,4 @@ class CassandraObject::Types::FloatTypeTest < CassandraObject::Types::TestCase
17
17
  coder.decode('xyz')
18
18
  end
19
19
  end
20
- end
20
+ end
@@ -15,4 +15,4 @@ class CassandraObject::Types::IntegerTypeTest < CassandraObject::Types::TestCase
15
15
  assert_equal 3, coder.decode('3')
16
16
  assert_equal -3, coder.decode('-3')
17
17
  end
18
- end
18
+ end
@@ -29,4 +29,4 @@ class CassandraObject::Types::StringTypeTest < CassandraObject::Types::TestCase
29
29
  coder.wrap(nil, nil, 123)
30
30
  )
31
31
  end
32
- end
32
+ end
@@ -4,4 +4,4 @@ class CassandraObject::Types::TimeTypeTest < CassandraObject::Types::TestCase
4
4
  test 'encode' do
5
5
  assert_equal '2004-12-24T01:02:03.000000Z', coder.encode(Time.utc(2004, 12, 24, 1, 2, 3))
6
6
  end
7
- end
7
+ end
@@ -24,4 +24,4 @@ class CassandraObject::ValidationsTest < CassandraObject::TestCase
24
24
  Issue.reset_callbacks(:validate)
25
25
  end
26
26
  end
27
- end
27
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gotime-cassandra_object
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.1
4
+ version: 4.6.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-10-09 00:00:00.000000000 Z
13
+ date: 2012-10-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activemodel
@@ -103,8 +103,10 @@ files:
103
103
  - lib/cassandra_object/belongs_to/builder.rb
104
104
  - lib/cassandra_object/belongs_to/reflection.rb
105
105
  - lib/cassandra_object/callbacks.rb
106
+ - lib/cassandra_object/config.rb
106
107
  - lib/cassandra_object/connection.rb
107
108
  - lib/cassandra_object/consistency.rb
109
+ - lib/cassandra_object/core.rb
108
110
  - lib/cassandra_object/errors.rb
109
111
  - lib/cassandra_object/identity.rb
110
112
  - lib/cassandra_object/inspect.rb
@@ -146,10 +148,13 @@ files:
146
148
  - test/unit/attribute_methods/typecasting_test.rb
147
149
  - test/unit/attribute_methods_test.rb
148
150
  - test/unit/base_test.rb
151
+ - test/unit/belongs_to/reflection_test.rb
149
152
  - test/unit/belongs_to_test.rb
150
153
  - test/unit/callbacks_test.rb
154
+ - test/unit/config_test.rb
151
155
  - test/unit/connection_test.rb
152
156
  - test/unit/consistency_test.rb
157
+ - test/unit/core_test.rb
153
158
  - test/unit/identity_test.rb
154
159
  - test/unit/inspect_test.rb
155
160
  - test/unit/log_subscriber_test.rb