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

Sign up to get free protection for your applications and to get access to all the features.
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