simply_stored 0.1.4

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 (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