extendi-cassandra_object 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +5 -0
  3. data/.travis.yml +23 -0
  4. data/CHANGELOG +0 -0
  5. data/Gemfile +17 -0
  6. data/LICENSE +13 -0
  7. data/MIT-LICENSE +20 -0
  8. data/README.md +177 -0
  9. data/Rakefile +12 -0
  10. data/extendi-cassandra_object.gemspec +26 -0
  11. data/lib/cassandra_object.rb +73 -0
  12. data/lib/cassandra_object/adapters/abstract_adapter.rb +61 -0
  13. data/lib/cassandra_object/adapters/cassandra_adapter.rb +269 -0
  14. data/lib/cassandra_object/adapters/cassandra_schemaless_adapter.rb +306 -0
  15. data/lib/cassandra_object/attribute_methods.rb +96 -0
  16. data/lib/cassandra_object/attribute_methods/definition.rb +22 -0
  17. data/lib/cassandra_object/attribute_methods/dirty.rb +36 -0
  18. data/lib/cassandra_object/attribute_methods/primary_key.rb +25 -0
  19. data/lib/cassandra_object/attribute_methods/typecasting.rb +59 -0
  20. data/lib/cassandra_object/base.rb +33 -0
  21. data/lib/cassandra_object/base_schema.rb +11 -0
  22. data/lib/cassandra_object/base_schemaless.rb +11 -0
  23. data/lib/cassandra_object/base_schemaless_dynamic.rb +11 -0
  24. data/lib/cassandra_object/belongs_to.rb +63 -0
  25. data/lib/cassandra_object/belongs_to/association.rb +49 -0
  26. data/lib/cassandra_object/belongs_to/builder.rb +40 -0
  27. data/lib/cassandra_object/belongs_to/reflection.rb +30 -0
  28. data/lib/cassandra_object/callbacks.rb +29 -0
  29. data/lib/cassandra_object/core.rb +63 -0
  30. data/lib/cassandra_object/errors.rb +10 -0
  31. data/lib/cassandra_object/identity.rb +26 -0
  32. data/lib/cassandra_object/inspect.rb +25 -0
  33. data/lib/cassandra_object/log_subscriber.rb +44 -0
  34. data/lib/cassandra_object/model.rb +60 -0
  35. data/lib/cassandra_object/persistence.rb +203 -0
  36. data/lib/cassandra_object/railtie.rb +33 -0
  37. data/lib/cassandra_object/railties/controller_runtime.rb +45 -0
  38. data/lib/cassandra_object/schema.rb +83 -0
  39. data/lib/cassandra_object/schemaless.rb +83 -0
  40. data/lib/cassandra_object/scope.rb +86 -0
  41. data/lib/cassandra_object/scope/finder_methods.rb +54 -0
  42. data/lib/cassandra_object/scope/query_methods.rb +69 -0
  43. data/lib/cassandra_object/scoping.rb +27 -0
  44. data/lib/cassandra_object/serialization.rb +6 -0
  45. data/lib/cassandra_object/tasks/ks.rake +54 -0
  46. data/lib/cassandra_object/timestamps.rb +19 -0
  47. data/lib/cassandra_object/type.rb +16 -0
  48. data/lib/cassandra_object/types.rb +8 -0
  49. data/lib/cassandra_object/types/array_type.rb +16 -0
  50. data/lib/cassandra_object/types/base_type.rb +26 -0
  51. data/lib/cassandra_object/types/boolean_type.rb +20 -0
  52. data/lib/cassandra_object/types/date_type.rb +22 -0
  53. data/lib/cassandra_object/types/float_type.rb +16 -0
  54. data/lib/cassandra_object/types/integer_type.rb +20 -0
  55. data/lib/cassandra_object/types/json_type.rb +13 -0
  56. data/lib/cassandra_object/types/string_type.rb +19 -0
  57. data/lib/cassandra_object/types/time_type.rb +16 -0
  58. data/lib/cassandra_object/types/type_helper.rb +39 -0
  59. data/lib/cassandra_object/validations.rb +44 -0
  60. data/test/support/cassandra.rb +63 -0
  61. data/test/support/issue.rb +12 -0
  62. data/test/support/issue_dynamic.rb +12 -0
  63. data/test/support/issue_schema.rb +17 -0
  64. data/test/support/issue_schema_child.rb +17 -0
  65. data/test/support/issue_schema_father.rb +13 -0
  66. data/test/test_helper.rb +41 -0
  67. data/test/unit/active_model_test.rb +18 -0
  68. data/test/unit/adapters/adapter_test.rb +6 -0
  69. data/test/unit/attribute_methods/definition_test.rb +13 -0
  70. data/test/unit/attribute_methods/dirty_test.rb +72 -0
  71. data/test/unit/attribute_methods/primary_key_test.rb +26 -0
  72. data/test/unit/attribute_methods/typecasting_test.rb +119 -0
  73. data/test/unit/attribute_methods_test.rb +51 -0
  74. data/test/unit/base_test.rb +20 -0
  75. data/test/unit/belongs_to/reflection_test.rb +12 -0
  76. data/test/unit/belongs_to_test.rb +63 -0
  77. data/test/unit/callbacks_test.rb +46 -0
  78. data/test/unit/connection_test.rb +6 -0
  79. data/test/unit/connections/connections_test.rb +55 -0
  80. data/test/unit/core_test.rb +55 -0
  81. data/test/unit/identity_test.rb +26 -0
  82. data/test/unit/inspect_test.rb +26 -0
  83. data/test/unit/log_subscriber_test.rb +25 -0
  84. data/test/unit/persistence_schema_test.rb +156 -0
  85. data/test/unit/persistence_test.rb +266 -0
  86. data/test/unit/railties/controller_runtime_test.rb +48 -0
  87. data/test/unit/schema/tasks_test.rb +32 -0
  88. data/test/unit/schema_test.rb +115 -0
  89. data/test/unit/schemaless_test.rb +100 -0
  90. data/test/unit/scope/finder_methods_test.rb +117 -0
  91. data/test/unit/scope/query_methods_test.rb +32 -0
  92. data/test/unit/scoping_test.rb +7 -0
  93. data/test/unit/timestamps_test.rb +27 -0
  94. data/test/unit/types/array_type_test.rb +17 -0
  95. data/test/unit/types/base_type_test.rb +19 -0
  96. data/test/unit/types/boolean_type_test.rb +24 -0
  97. data/test/unit/types/date_type_test.rb +15 -0
  98. data/test/unit/types/float_type_test.rb +17 -0
  99. data/test/unit/types/integer_type_test.rb +19 -0
  100. data/test/unit/types/json_type_test.rb +23 -0
  101. data/test/unit/types/string_type_test.rb +25 -0
  102. data/test/unit/types/time_type_test.rb +14 -0
  103. data/test/unit/validations_test.rb +27 -0
  104. metadata +202 -0
@@ -0,0 +1,14 @@
1
+ require 'test_helper'
2
+
3
+ class CassandraObject::Types::TimeTypeTest < CassandraObject::Types::TestCase
4
+ test 'encode' do
5
+ assert_equal '2004-12-24T01:02:03.000000Z', coder.encode(Time.utc(2004, 12, 24, 1, 2, 3))
6
+ end
7
+
8
+ test 'decode' do
9
+ assert_nil coder.decode(nil)
10
+ assert_nil coder.decode('bad format')
11
+ assert_equal Time.utc(2004, 12, 24, 1, 2, 3), coder.decode('2004-12-24T01:02:03.000000Z')
12
+ assert_equal Time.utc(2013, 07, 18, 20, 12, 46), coder.decode('2013-07-18 13:12:46 -0700')
13
+ end
14
+ end
@@ -0,0 +1,27 @@
1
+ require 'test_helper'
2
+
3
+ class CassandraObject::ValidationsTest < CassandraObject::TestCase
4
+ test 'create!' do
5
+ begin
6
+ Issue.validates(:description, presence: true)
7
+
8
+ Issue.create!(description: 'lol')
9
+
10
+ assert_raise(CassandraObject::RecordInvalid) { Issue.create!(description: '') }
11
+ ensure
12
+ Issue.reset_callbacks(:validate)
13
+ end
14
+ end
15
+
16
+ test 'save!' do
17
+ begin
18
+ Issue.validates(:description, presence: true)
19
+
20
+ Issue.new(description: 'lol').save!
21
+
22
+ assert_raise(CassandraObject::RecordInvalid) { Issue.new(description: '').save! }
23
+ ensure
24
+ Issue.reset_callbacks(:validate)
25
+ end
26
+ end
27
+ end
metadata ADDED
@@ -0,0 +1,202 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: extendi-cassandra_object
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Duccio Giovannelli
8
+ - gotime
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2017-03-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activemodel
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ">="
19
+ - !ruby/object:Gem::Version
20
+ version: '3.0'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ">="
26
+ - !ruby/object:Gem::Version
27
+ version: '3.0'
28
+ - !ruby/object:Gem::Dependency
29
+ name: cassandra-driver
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ">="
33
+ - !ruby/object:Gem::Version
34
+ version: 3.1.0
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ version: 3.1.0
42
+ - !ruby/object:Gem::Dependency
43
+ name: lz4-ruby
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: 0.3.3
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 0.3.3
56
+ - !ruby/object:Gem::Dependency
57
+ name: bundler
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ description: Cassandra ActiveModel
71
+ email: giovannelli@extendi.it
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files:
75
+ - README.md
76
+ files:
77
+ - ".gitignore"
78
+ - ".travis.yml"
79
+ - CHANGELOG
80
+ - Gemfile
81
+ - LICENSE
82
+ - MIT-LICENSE
83
+ - README.md
84
+ - Rakefile
85
+ - extendi-cassandra_object.gemspec
86
+ - lib/cassandra_object.rb
87
+ - lib/cassandra_object/adapters/abstract_adapter.rb
88
+ - lib/cassandra_object/adapters/cassandra_adapter.rb
89
+ - lib/cassandra_object/adapters/cassandra_schemaless_adapter.rb
90
+ - lib/cassandra_object/attribute_methods.rb
91
+ - lib/cassandra_object/attribute_methods/definition.rb
92
+ - lib/cassandra_object/attribute_methods/dirty.rb
93
+ - lib/cassandra_object/attribute_methods/primary_key.rb
94
+ - lib/cassandra_object/attribute_methods/typecasting.rb
95
+ - lib/cassandra_object/base.rb
96
+ - lib/cassandra_object/base_schema.rb
97
+ - lib/cassandra_object/base_schemaless.rb
98
+ - lib/cassandra_object/base_schemaless_dynamic.rb
99
+ - lib/cassandra_object/belongs_to.rb
100
+ - lib/cassandra_object/belongs_to/association.rb
101
+ - lib/cassandra_object/belongs_to/builder.rb
102
+ - lib/cassandra_object/belongs_to/reflection.rb
103
+ - lib/cassandra_object/callbacks.rb
104
+ - lib/cassandra_object/core.rb
105
+ - lib/cassandra_object/errors.rb
106
+ - lib/cassandra_object/identity.rb
107
+ - lib/cassandra_object/inspect.rb
108
+ - lib/cassandra_object/log_subscriber.rb
109
+ - lib/cassandra_object/model.rb
110
+ - lib/cassandra_object/persistence.rb
111
+ - lib/cassandra_object/railtie.rb
112
+ - lib/cassandra_object/railties/controller_runtime.rb
113
+ - lib/cassandra_object/schema.rb
114
+ - lib/cassandra_object/schemaless.rb
115
+ - lib/cassandra_object/scope.rb
116
+ - lib/cassandra_object/scope/finder_methods.rb
117
+ - lib/cassandra_object/scope/query_methods.rb
118
+ - lib/cassandra_object/scoping.rb
119
+ - lib/cassandra_object/serialization.rb
120
+ - lib/cassandra_object/tasks/ks.rake
121
+ - lib/cassandra_object/timestamps.rb
122
+ - lib/cassandra_object/type.rb
123
+ - lib/cassandra_object/types.rb
124
+ - lib/cassandra_object/types/array_type.rb
125
+ - lib/cassandra_object/types/base_type.rb
126
+ - lib/cassandra_object/types/boolean_type.rb
127
+ - lib/cassandra_object/types/date_type.rb
128
+ - lib/cassandra_object/types/float_type.rb
129
+ - lib/cassandra_object/types/integer_type.rb
130
+ - lib/cassandra_object/types/json_type.rb
131
+ - lib/cassandra_object/types/string_type.rb
132
+ - lib/cassandra_object/types/time_type.rb
133
+ - lib/cassandra_object/types/type_helper.rb
134
+ - lib/cassandra_object/validations.rb
135
+ - test/support/cassandra.rb
136
+ - test/support/issue.rb
137
+ - test/support/issue_dynamic.rb
138
+ - test/support/issue_schema.rb
139
+ - test/support/issue_schema_child.rb
140
+ - test/support/issue_schema_father.rb
141
+ - test/test_helper.rb
142
+ - test/unit/active_model_test.rb
143
+ - test/unit/adapters/adapter_test.rb
144
+ - test/unit/attribute_methods/definition_test.rb
145
+ - test/unit/attribute_methods/dirty_test.rb
146
+ - test/unit/attribute_methods/primary_key_test.rb
147
+ - test/unit/attribute_methods/typecasting_test.rb
148
+ - test/unit/attribute_methods_test.rb
149
+ - test/unit/base_test.rb
150
+ - test/unit/belongs_to/reflection_test.rb
151
+ - test/unit/belongs_to_test.rb
152
+ - test/unit/callbacks_test.rb
153
+ - test/unit/connection_test.rb
154
+ - test/unit/connections/connections_test.rb
155
+ - test/unit/core_test.rb
156
+ - test/unit/identity_test.rb
157
+ - test/unit/inspect_test.rb
158
+ - test/unit/log_subscriber_test.rb
159
+ - test/unit/persistence_schema_test.rb
160
+ - test/unit/persistence_test.rb
161
+ - test/unit/railties/controller_runtime_test.rb
162
+ - test/unit/schema/tasks_test.rb
163
+ - test/unit/schema_test.rb
164
+ - test/unit/schemaless_test.rb
165
+ - test/unit/scope/finder_methods_test.rb
166
+ - test/unit/scope/query_methods_test.rb
167
+ - test/unit/scoping_test.rb
168
+ - test/unit/timestamps_test.rb
169
+ - test/unit/types/array_type_test.rb
170
+ - test/unit/types/base_type_test.rb
171
+ - test/unit/types/boolean_type_test.rb
172
+ - test/unit/types/date_type_test.rb
173
+ - test/unit/types/float_type_test.rb
174
+ - test/unit/types/integer_type_test.rb
175
+ - test/unit/types/json_type_test.rb
176
+ - test/unit/types/string_type_test.rb
177
+ - test/unit/types/time_type_test.rb
178
+ - test/unit/validations_test.rb
179
+ homepage: https://github.com/giovannelli/cassandra_object
180
+ licenses: []
181
+ metadata: {}
182
+ post_install_message:
183
+ rdoc_options: []
184
+ require_paths:
185
+ - lib
186
+ required_ruby_version: !ruby/object:Gem::Requirement
187
+ requirements:
188
+ - - ">="
189
+ - !ruby/object:Gem::Version
190
+ version: 1.9.2
191
+ required_rubygems_version: !ruby/object:Gem::Requirement
192
+ requirements:
193
+ - - ">="
194
+ - !ruby/object:Gem::Version
195
+ version: 1.3.5
196
+ requirements: []
197
+ rubyforge_project:
198
+ rubygems_version: 2.5.1
199
+ signing_key:
200
+ specification_version: 4
201
+ summary: Cassandra ActiveModel
202
+ test_files: []