cequel 1.0.0.pre.2 → 1.0.0.pre.3

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/lib/cequel.rb +1 -1
  3. data/lib/cequel/record.rb +62 -0
  4. data/lib/cequel/{model → record}/association_collection.rb +1 -1
  5. data/lib/cequel/{model → record}/associations.rb +1 -1
  6. data/lib/cequel/{model → record}/belongs_to_association.rb +1 -1
  7. data/lib/cequel/{model → record}/callbacks.rb +1 -1
  8. data/lib/cequel/{model → record}/collection.rb +1 -1
  9. data/lib/cequel/{model → record}/dirty.rb +1 -1
  10. data/lib/cequel/{model → record}/errors.rb +1 -1
  11. data/lib/cequel/{model → record}/has_many_association.rb +1 -1
  12. data/lib/cequel/{model → record}/mass_assignment.rb +1 -1
  13. data/lib/cequel/{model → record}/persistence.rb +11 -11
  14. data/lib/cequel/{model → record}/properties.rb +69 -15
  15. data/lib/cequel/{model → record}/railtie.rb +3 -3
  16. data/lib/cequel/{model → record}/record_set.rb +67 -57
  17. data/lib/cequel/record/schema.rb +76 -0
  18. data/lib/cequel/record/scoped.rb +53 -0
  19. data/lib/cequel/{model → record}/secondary_indexes.rb +1 -1
  20. data/lib/cequel/{model → record}/validations.rb +1 -1
  21. data/lib/cequel/schema/table.rb +18 -9
  22. data/lib/cequel/version.rb +1 -1
  23. data/spec/examples/{model → record}/associations_spec.rb +8 -8
  24. data/spec/examples/{model → record}/callbacks_spec.rb +1 -1
  25. data/spec/examples/{model → record}/dirty_spec.rb +1 -1
  26. data/spec/examples/{model → record}/list_spec.rb +1 -1
  27. data/spec/examples/{model → record}/map_spec.rb +1 -1
  28. data/spec/examples/{model → record}/mass_assignment_spec.rb +1 -1
  29. data/spec/examples/{model → record}/naming_spec.rb +0 -0
  30. data/spec/examples/{model → record}/persistence_spec.rb +1 -1
  31. data/spec/examples/{model → record}/properties_spec.rb +25 -2
  32. data/spec/examples/{model → record}/record_set_spec.rb +28 -7
  33. data/spec/examples/{model → record}/schema_spec.rb +3 -2
  34. data/spec/examples/record/scoped_spec.rb +13 -0
  35. data/spec/examples/{model → record}/secondary_index_spec.rb +1 -1
  36. data/spec/examples/{model → record}/serialization_spec.rb +1 -1
  37. data/spec/examples/{model → record}/set_spec.rb +1 -1
  38. data/spec/examples/{model → record}/spec_helper.rb +0 -0
  39. data/spec/examples/{model → record}/validations_spec.rb +4 -4
  40. data/spec/examples/spec_helper.rb +2 -2
  41. data/spec/support/helpers.rb +2 -1
  42. metadata +54 -64
  43. data/lib/cequel/model.rb +0 -30
  44. data/lib/cequel/model/base.rb +0 -84
  45. data/lib/cequel/model/schema.rb +0 -34
  46. data/lib/cequel/model/scoped.rb +0 -19
  47. data/spec/models/asset.rb +0 -21
  48. data/spec/models/asset_observer.rb +0 -5
  49. data/spec/models/blog.rb +0 -14
  50. data/spec/models/blog_posts.rb +0 -6
  51. data/spec/models/category.rb +0 -9
  52. data/spec/models/comment.rb +0 -12
  53. data/spec/models/comment_counts.rb +0 -8
  54. data/spec/models/photo.rb +0 -5
  55. data/spec/models/post.rb +0 -88
  56. data/spec/models/post_comments.rb +0 -14
  57. data/spec/models/post_observer.rb +0 -43
@@ -1,21 +0,0 @@
1
- class Asset
2
-
3
- include Cequel::Model
4
-
5
- key :id, :integer
6
- column :class_name, :ascii
7
- column :label, :varchar
8
- column :checksum, :varchar
9
-
10
- index_preference :checksum, :class_name
11
-
12
- def observed!(callback)
13
- @observed ||= []
14
- @observed << callback
15
- end
16
-
17
- def has_observed?(callback)
18
- @observed.include?(callback)
19
- end
20
-
21
- end
@@ -1,5 +0,0 @@
1
- class AssetObserver < Cequel::Model::Observer
2
- def before_save(asset)
3
- asset.observed!(:before_save)
4
- end
5
- end
@@ -1,14 +0,0 @@
1
- class Blog
2
-
3
- include Cequel::Model
4
- include Timestamps
5
-
6
- key :id, :integer
7
- column :name, :varchar
8
- column :published, :boolean, :default => true
9
-
10
- has_many :posts, :dependent => :destroy
11
-
12
- default_scope limit(100)
13
-
14
- end
@@ -1,6 +0,0 @@
1
- class BlogPosts < Cequel::Model::Dictionary
2
- key :blog_id, :int
3
- maps :uuid => :int
4
-
5
- self.default_batch_size = 2
6
- end
@@ -1,9 +0,0 @@
1
- class Category
2
-
3
- include Cequel::Model
4
- include Cequel::Model::Dynamic
5
-
6
- key :id, :int
7
- column :name, :text
8
-
9
- end
@@ -1,12 +0,0 @@
1
- class Comment
2
- include Cequel::Model
3
-
4
- key :id, :uuid
5
- column :body, :text
6
-
7
- private
8
-
9
- def generate_key
10
- SimpleUUID::UUID.new
11
- end
12
- end
@@ -1,8 +0,0 @@
1
- class CommentCounts < Cequel::Model::Counter
2
-
3
- key :blog_id, :int
4
- columns :uuid
5
-
6
- self.default_batch_size = 2
7
-
8
- end
@@ -1,5 +0,0 @@
1
- require File.expand_path('../asset', __FILE__)
2
-
3
- class Photo < Asset
4
- column :url, :varchar
5
- end
@@ -1,88 +0,0 @@
1
- class Post
2
-
3
- include Cequel::Model
4
-
5
- key :id, :int
6
- column :title, :varchar
7
- column :body, :varchar
8
- column :published, :boolean
9
- column :author_name, :text
10
-
11
- before_save :record_save_callback
12
- before_create :record_create_callback
13
- before_update :record_update_callback
14
- before_destroy :record_destroy_callback
15
- before_validation :record_validation_callback
16
-
17
- belongs_to :blog
18
- has_one :thumbnail, :class_name => 'Photo'
19
-
20
- validates :title, :presence => true, :if => :require_title?
21
-
22
- attr_protected :blog_id
23
-
24
- attr_writer :require_title
25
-
26
- def self.for_blog(blog_id)
27
- where(:blog_id => blog_id)
28
- end
29
-
30
- def has_callback?(callback)
31
- callbacks.include?(callback)
32
- end
33
-
34
- def has_been_observed?(callback)
35
- observed.include?(callback)
36
- end
37
-
38
- def observed!(callback)
39
- observed << callback
40
- end
41
-
42
- def require_title?
43
- !!@require_title
44
- end
45
-
46
- def author_name=(author_name)
47
- write_attribute(:author_name, author_name.try(:reverse))
48
- end
49
-
50
- def author_name
51
- read_attribute(:author_name).try(:reverse)
52
- end
53
-
54
- private
55
-
56
- def record_save_callback
57
- record_callback(:save)
58
- end
59
-
60
- def record_create_callback
61
- record_callback(:create)
62
- end
63
-
64
- def record_update_callback
65
- record_callback(:update)
66
- end
67
-
68
- def record_destroy_callback
69
- record_callback(:destroy)
70
- end
71
-
72
- def record_validation_callback
73
- record_callback(:validation)
74
- end
75
-
76
- def record_callback(callback)
77
- callbacks << callback
78
- end
79
-
80
- def callbacks
81
- @callbacks ||= Set[]
82
- end
83
-
84
- def observed
85
- @observed ||= Set[]
86
- end
87
-
88
- end
@@ -1,14 +0,0 @@
1
- class PostComments < Cequel::Model::Dictionary
2
- key :post_id, :int
3
- maps :int => :text
4
-
5
- private
6
-
7
- def serialize_value(data)
8
- data.to_json
9
- end
10
-
11
- def deserialize_value(post_id, json)
12
- JSON.parse(json)
13
- end
14
- end
@@ -1,43 +0,0 @@
1
- class PostObserver < Cequel::Model::Observer
2
-
3
- def before_create(post)
4
- post.observed!(:before_create)
5
- end
6
-
7
- def after_create(post)
8
- post.observed!(:after_create)
9
- end
10
-
11
- def before_save(post)
12
- post.observed!(:before_save)
13
- end
14
-
15
- def after_save(post)
16
- post.observed!(:after_save)
17
- end
18
-
19
- def before_update(post)
20
- post.observed!(:before_update)
21
- end
22
-
23
- def after_update(post)
24
- post.observed!(:after_update)
25
- end
26
-
27
- def before_destroy(post)
28
- post.observed!(:before_destroy)
29
- end
30
-
31
- def after_destroy(post)
32
- post.observed!(:after_destroy)
33
- end
34
-
35
- def before_validation(post)
36
- post.observed!(:before_validation)
37
- end
38
-
39
- def after_validation(post)
40
- post.observed!(:after_validation)
41
- end
42
-
43
- end