simply_stored 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (121) hide show
  1. data/lib/simply_stored/class_methods_base.rb +31 -0
  2. data/lib/simply_stored/couch/belongs_to.rb +117 -0
  3. data/lib/simply_stored/couch/ext/couch_potato.rb +16 -0
  4. data/lib/simply_stored/couch/has_many.rb +148 -0
  5. data/lib/simply_stored/couch/has_one.rb +93 -0
  6. data/lib/simply_stored/couch/validations.rb +74 -0
  7. data/lib/simply_stored/couch/views/array_property_view_spec.rb +22 -0
  8. data/lib/simply_stored/couch/views.rb +1 -0
  9. data/lib/simply_stored/couch.rb +278 -0
  10. data/lib/simply_stored/instance_methods.rb +143 -0
  11. data/lib/simply_stored/simpledb/associations.rb +196 -0
  12. data/lib/simply_stored/simpledb/attributes.rb +173 -0
  13. data/lib/simply_stored/simpledb/storag.rb +85 -0
  14. data/lib/simply_stored/simpledb/validations.rb +88 -0
  15. data/lib/simply_stored/simpledb.rb +212 -0
  16. data/lib/simply_stored/storage.rb +93 -0
  17. data/lib/simply_stored.rb +9 -0
  18. data/test/custom_views_test.rb +33 -0
  19. data/test/fixtures/couch.rb +182 -0
  20. data/test/fixtures/simpledb/item.rb +11 -0
  21. data/test/fixtures/simpledb/item_daddy.rb +8 -0
  22. data/test/fixtures/simpledb/log_item.rb +3 -0
  23. data/test/fixtures/simpledb/namespace_bar.rb +5 -0
  24. data/test/fixtures/simpledb/namespace_foo.rb +7 -0
  25. data/test/fixtures/simpledb/protected_item.rb +3 -0
  26. data/test/simply_stored_couch_test.rb +1684 -0
  27. data/test/simply_stored_simpledb_test.rb +1341 -0
  28. data/test/test_helper.rb +22 -0
  29. data/test/vendor/dhaka-2.2.1/lib/dhaka/dot/dot.rb +29 -0
  30. data/test/vendor/dhaka-2.2.1/lib/dhaka/evaluator/evaluator.rb +133 -0
  31. data/test/vendor/dhaka-2.2.1/lib/dhaka/grammar/closure_hash.rb +15 -0
  32. data/test/vendor/dhaka-2.2.1/lib/dhaka/grammar/grammar.rb +240 -0
  33. data/test/vendor/dhaka-2.2.1/lib/dhaka/grammar/grammar_symbol.rb +27 -0
  34. data/test/vendor/dhaka-2.2.1/lib/dhaka/grammar/precedence.rb +19 -0
  35. data/test/vendor/dhaka-2.2.1/lib/dhaka/grammar/production.rb +36 -0
  36. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/accept_actions.rb +36 -0
  37. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/alphabet.rb +21 -0
  38. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/compiled_lexer.rb +46 -0
  39. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/dfa.rb +121 -0
  40. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/lexeme.rb +32 -0
  41. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/lexer.rb +70 -0
  42. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/lexer_run.rb +78 -0
  43. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/regex_grammar.rb +392 -0
  44. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/regex_parser.rb +2010 -0
  45. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/regex_tokenizer.rb +14 -0
  46. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/specification.rb +96 -0
  47. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/state.rb +68 -0
  48. data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/state_machine.rb +37 -0
  49. data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/action.rb +55 -0
  50. data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/channel.rb +58 -0
  51. data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/compiled_parser.rb +51 -0
  52. data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/conflict.rb +54 -0
  53. data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/item.rb +42 -0
  54. data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/parse_result.rb +50 -0
  55. data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/parse_tree.rb +66 -0
  56. data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/parser.rb +165 -0
  57. data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/parser_methods.rb +11 -0
  58. data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/parser_run.rb +39 -0
  59. data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/parser_state.rb +74 -0
  60. data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/token.rb +22 -0
  61. data/test/vendor/dhaka-2.2.1/lib/dhaka/runtime.rb +51 -0
  62. data/test/vendor/dhaka-2.2.1/lib/dhaka/tokenizer/tokenizer.rb +190 -0
  63. data/test/vendor/dhaka-2.2.1/lib/dhaka.rb +62 -0
  64. data/test/vendor/dhaka-2.2.1/test/all_tests.rb +5 -0
  65. data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_evaluator.rb +64 -0
  66. data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_evaluator_test.rb +43 -0
  67. data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_grammar.rb +41 -0
  68. data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_grammar_test.rb +9 -0
  69. data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_test_methods.rb +9 -0
  70. data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_tokenizer.rb +39 -0
  71. data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_tokenizer_test.rb +38 -0
  72. data/test/vendor/dhaka-2.2.1/test/arithmetic_precedence/arithmetic_precedence_evaluator.rb +43 -0
  73. data/test/vendor/dhaka-2.2.1/test/arithmetic_precedence/arithmetic_precedence_grammar.rb +24 -0
  74. data/test/vendor/dhaka-2.2.1/test/arithmetic_precedence/arithmetic_precedence_grammar_test.rb +30 -0
  75. data/test/vendor/dhaka-2.2.1/test/arithmetic_precedence/arithmetic_precedence_lexer_specification.rb +23 -0
  76. data/test/vendor/dhaka-2.2.1/test/arithmetic_precedence/arithmetic_precedence_parser_test.rb +33 -0
  77. data/test/vendor/dhaka-2.2.1/test/brackets/bracket_grammar.rb +23 -0
  78. data/test/vendor/dhaka-2.2.1/test/brackets/bracket_tokenizer.rb +22 -0
  79. data/test/vendor/dhaka-2.2.1/test/brackets/brackets_test.rb +28 -0
  80. data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_driver.rb +46 -0
  81. data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_driver_test.rb +276 -0
  82. data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_evaluator.rb +284 -0
  83. data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_evaluator_test.rb +38 -0
  84. data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_grammar.rb +104 -0
  85. data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_lexer.rb +109 -0
  86. data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_lexer_specification.rb +37 -0
  87. data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_lexer_test.rb +58 -0
  88. data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_parser.rb +879 -0
  89. data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_parser_test.rb +55 -0
  90. data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_test.rb +170 -0
  91. data/test/vendor/dhaka-2.2.1/test/core/another_lalr_but_not_slr_grammar.rb +20 -0
  92. data/test/vendor/dhaka-2.2.1/test/core/compiled_parser_test.rb +44 -0
  93. data/test/vendor/dhaka-2.2.1/test/core/dfa_test.rb +170 -0
  94. data/test/vendor/dhaka-2.2.1/test/core/evaluator_test.rb +22 -0
  95. data/test/vendor/dhaka-2.2.1/test/core/grammar_test.rb +83 -0
  96. data/test/vendor/dhaka-2.2.1/test/core/lalr_but_not_slr_grammar.rb +19 -0
  97. data/test/vendor/dhaka-2.2.1/test/core/lexer_test.rb +139 -0
  98. data/test/vendor/dhaka-2.2.1/test/core/malformed_grammar.rb +7 -0
  99. data/test/vendor/dhaka-2.2.1/test/core/malformed_grammar_test.rb +8 -0
  100. data/test/vendor/dhaka-2.2.1/test/core/nullable_grammar.rb +21 -0
  101. data/test/vendor/dhaka-2.2.1/test/core/parse_result_test.rb +44 -0
  102. data/test/vendor/dhaka-2.2.1/test/core/parser_state_test.rb +24 -0
  103. data/test/vendor/dhaka-2.2.1/test/core/parser_test.rb +131 -0
  104. data/test/vendor/dhaka-2.2.1/test/core/precedence_grammar.rb +17 -0
  105. data/test/vendor/dhaka-2.2.1/test/core/precedence_grammar_test.rb +9 -0
  106. data/test/vendor/dhaka-2.2.1/test/core/rr_conflict_grammar.rb +21 -0
  107. data/test/vendor/dhaka-2.2.1/test/core/simple_grammar.rb +22 -0
  108. data/test/vendor/dhaka-2.2.1/test/core/sr_conflict_grammar.rb +16 -0
  109. data/test/vendor/dhaka-2.2.1/test/dhaka_test_helper.rb +17 -0
  110. data/test/vendor/dhaka-2.2.1/test/fake_logger.rb +17 -0
  111. data/test/vendor/simplerdb-0.2/lib/simplerdb/client_exception.rb +10 -0
  112. data/test/vendor/simplerdb-0.2/lib/simplerdb/db.rb +146 -0
  113. data/test/vendor/simplerdb-0.2/lib/simplerdb/query_language.rb +266 -0
  114. data/test/vendor/simplerdb-0.2/lib/simplerdb/server.rb +33 -0
  115. data/test/vendor/simplerdb-0.2/lib/simplerdb/servlet.rb +191 -0
  116. data/test/vendor/simplerdb-0.2/lib/simplerdb.rb +3 -0
  117. data/test/vendor/simplerdb-0.2/test/functional_test.rb +81 -0
  118. data/test/vendor/simplerdb-0.2/test/query_evaluator_test.rb +73 -0
  119. data/test/vendor/simplerdb-0.2/test/query_parser_test.rb +64 -0
  120. data/test/vendor/simplerdb-0.2/test/simplerdb_test.rb +80 -0
  121. metadata +182 -0
@@ -0,0 +1,182 @@
1
+ class User
2
+ include SimplyStored::Couch
3
+ validates_presence_of :title
4
+
5
+ property :name
6
+ property :title
7
+ property :homepage
8
+
9
+ has_many :posts
10
+ has_many :strict_posts
11
+ has_many :hemorrhoids
12
+ has_many :pains, :through => :hemorrhoids
13
+
14
+ view :by_name_and_created_at, :key => [:name, :created_at]
15
+ end
16
+
17
+ class Post
18
+ include SimplyStored::Couch
19
+
20
+ belongs_to :user
21
+ end
22
+
23
+ class StrictPost
24
+ include SimplyStored::Couch
25
+
26
+ belongs_to :user
27
+
28
+ validates_presence_of :user
29
+ end
30
+
31
+ class Comment
32
+ include SimplyStored::Couch
33
+
34
+ belongs_to :user
35
+ end
36
+
37
+ class Category
38
+ include SimplyStored::Couch
39
+
40
+ property :name
41
+ property :alias
42
+ property :parent
43
+
44
+ validates_inclusion_of :name, :in => ["food", "drinks", "party"], :allow_blank => true
45
+ end
46
+
47
+ class Tag
48
+ include SimplyStored::Couch
49
+
50
+ belongs_to :category
51
+ property :name
52
+ end
53
+
54
+ class Instance
55
+ include SimplyStored::Couch
56
+ has_one :identity
57
+ end
58
+
59
+ class Identity
60
+ include SimplyStored::Couch
61
+ belongs_to :instance
62
+ belongs_to :magazine
63
+ end
64
+
65
+ class Magazine
66
+ include SimplyStored::Couch
67
+ has_one :identity, :dependent => :destroy
68
+ end
69
+
70
+ class CouchLogItem
71
+ include SimplyStored::Couch
72
+ has_s3_attachment :log_data, :bucket => "bucket-for-monsieur", :access_key => 'abcdef', :secret_access_key => 'secret!'
73
+ end
74
+
75
+ class UniqueUser
76
+ include SimplyStored::Couch
77
+
78
+ property :name
79
+ validates_uniqueness_of :name
80
+ end
81
+
82
+ class CountMe
83
+ include SimplyStored::Couch
84
+
85
+ property :title
86
+ end
87
+
88
+ class DontCountMe
89
+ include SimplyStored::Couch
90
+
91
+ property :title
92
+ end
93
+
94
+ class Journal
95
+ include SimplyStored::Couch
96
+
97
+ has_many :memberships, :dependent => :destroy
98
+ has_many :readers, :through => :memberships, :dependent => :destroy
99
+ property :foo
100
+ end
101
+
102
+ class Reader
103
+ include SimplyStored::Couch
104
+
105
+ has_many :memberships, :dependent => :destroy
106
+ has_many :journals, :through => :memberships
107
+ end
108
+
109
+ class Membership
110
+ include SimplyStored::Couch
111
+
112
+ belongs_to :reader
113
+ belongs_to :journal
114
+ end
115
+
116
+ class Hemorrhoid
117
+ include SimplyStored::Couch
118
+
119
+ enable_soft_delete
120
+
121
+ view :by_nickname_and_size, :key => [:nickname, :size]
122
+
123
+ property :nickname
124
+ property :size
125
+ belongs_to :user
126
+ belongs_to :pain
127
+ belongs_to :spot
128
+ has_many :sub_hemorrhoids, :dependent => :destroy
129
+ has_many :easy_sub_hemorrhoids, :dependent => :destroy
130
+ has_many :rashs, :dependent => :nullify
131
+ has_many :small_rashs, :dependent => :nullify
132
+
133
+ before_destroy :before_destroy_callback
134
+ after_destroy :after_destroy_callback
135
+
136
+ def before_destroy_callback
137
+ end
138
+
139
+ def after_destroy_callback
140
+ end
141
+ end
142
+
143
+ class SubHemorrhoid
144
+ include SimplyStored::Couch
145
+
146
+ enable_soft_delete
147
+
148
+ belongs_to :hemorrhoid
149
+ end
150
+
151
+ class EasySubHemorrhoid
152
+ include SimplyStored::Couch
153
+
154
+ belongs_to :hemorrhoid
155
+ end
156
+
157
+ class Rash
158
+ include SimplyStored::Couch
159
+
160
+ belongs_to :hemorrhoid
161
+ end
162
+
163
+ class SmallRash
164
+ include SimplyStored::Couch
165
+
166
+ enable_soft_delete
167
+
168
+ belongs_to :hemorrhoid
169
+ end
170
+
171
+ class Pain
172
+ include SimplyStored::Couch
173
+
174
+ has_many :hemorrhoids
175
+ has_many :users, :through => :hemorrhoids
176
+ end
177
+
178
+ class Spot
179
+ include SimplyStored::Couch
180
+
181
+ has_one :hemorrhoid
182
+ end
@@ -0,0 +1,11 @@
1
+ class Item < SimplyStored::Simple
2
+ simpledb_string :foo_attribute, :item_daddy_id
3
+ simpledb_array :bar_attribute_array
4
+ simpledb_timestamp :updated_at, :created_at
5
+ simpledb_integer :integer_field
6
+
7
+ require_inclusion_of :foo_attribute, ['a', 'b', 'c']
8
+ require_inclusion_of :bar_attribute_array, ['goog', 'boob']
9
+
10
+ belongs_to :item_daddy
11
+ end
@@ -0,0 +1,8 @@
1
+ class ItemDaddy < SimplyStored::Simple
2
+ simpledb_string :name, 'namespace__foo_id'
3
+ require_attributes :name
4
+
5
+ has_one :item
6
+ has_many :items
7
+
8
+ end
@@ -0,0 +1,3 @@
1
+ class LogItem < SimplyStored::Simple
2
+ has_s3_attachment :log_data, :bucket => "bucket-for-monsieur", :access_key => 'abcdef', :secret_access_key => 'secret!'
3
+ end
@@ -0,0 +1,5 @@
1
+ module Namespace
2
+ class Bar < SimplyStored::Simple
3
+ has_many :foos
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ module Namespace
2
+ class Foo < SimplyStored::Simple
3
+ has_many :item_daddys
4
+ belongs_to :namespace__bar
5
+ simpledb_string :namespace__bar_id
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ class ProtectedItem < SimplyStored::Simple
2
+ simpledb_string :a, :b, :c
3
+ end