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.
- data/lib/simply_stored/class_methods_base.rb +31 -0
- data/lib/simply_stored/couch/belongs_to.rb +117 -0
- data/lib/simply_stored/couch/ext/couch_potato.rb +16 -0
- data/lib/simply_stored/couch/has_many.rb +148 -0
- data/lib/simply_stored/couch/has_one.rb +93 -0
- data/lib/simply_stored/couch/validations.rb +74 -0
- data/lib/simply_stored/couch/views/array_property_view_spec.rb +22 -0
- data/lib/simply_stored/couch/views.rb +1 -0
- data/lib/simply_stored/couch.rb +278 -0
- data/lib/simply_stored/instance_methods.rb +143 -0
- data/lib/simply_stored/simpledb/associations.rb +196 -0
- data/lib/simply_stored/simpledb/attributes.rb +173 -0
- data/lib/simply_stored/simpledb/storag.rb +85 -0
- data/lib/simply_stored/simpledb/validations.rb +88 -0
- data/lib/simply_stored/simpledb.rb +212 -0
- data/lib/simply_stored/storage.rb +93 -0
- data/lib/simply_stored.rb +9 -0
- data/test/custom_views_test.rb +33 -0
- data/test/fixtures/couch.rb +182 -0
- data/test/fixtures/simpledb/item.rb +11 -0
- data/test/fixtures/simpledb/item_daddy.rb +8 -0
- data/test/fixtures/simpledb/log_item.rb +3 -0
- data/test/fixtures/simpledb/namespace_bar.rb +5 -0
- data/test/fixtures/simpledb/namespace_foo.rb +7 -0
- data/test/fixtures/simpledb/protected_item.rb +3 -0
- data/test/simply_stored_couch_test.rb +1684 -0
- data/test/simply_stored_simpledb_test.rb +1341 -0
- data/test/test_helper.rb +22 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/dot/dot.rb +29 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/evaluator/evaluator.rb +133 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/grammar/closure_hash.rb +15 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/grammar/grammar.rb +240 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/grammar/grammar_symbol.rb +27 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/grammar/precedence.rb +19 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/grammar/production.rb +36 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/accept_actions.rb +36 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/alphabet.rb +21 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/compiled_lexer.rb +46 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/dfa.rb +121 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/lexeme.rb +32 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/lexer.rb +70 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/lexer_run.rb +78 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/regex_grammar.rb +392 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/regex_parser.rb +2010 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/regex_tokenizer.rb +14 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/specification.rb +96 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/state.rb +68 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/lexer/state_machine.rb +37 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/action.rb +55 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/channel.rb +58 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/compiled_parser.rb +51 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/conflict.rb +54 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/item.rb +42 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/parse_result.rb +50 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/parse_tree.rb +66 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/parser.rb +165 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/parser_methods.rb +11 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/parser_run.rb +39 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/parser_state.rb +74 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/parser/token.rb +22 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/runtime.rb +51 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka/tokenizer/tokenizer.rb +190 -0
- data/test/vendor/dhaka-2.2.1/lib/dhaka.rb +62 -0
- data/test/vendor/dhaka-2.2.1/test/all_tests.rb +5 -0
- data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_evaluator.rb +64 -0
- data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_evaluator_test.rb +43 -0
- data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_grammar.rb +41 -0
- data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_grammar_test.rb +9 -0
- data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_test_methods.rb +9 -0
- data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_tokenizer.rb +39 -0
- data/test/vendor/dhaka-2.2.1/test/arithmetic/arithmetic_tokenizer_test.rb +38 -0
- data/test/vendor/dhaka-2.2.1/test/arithmetic_precedence/arithmetic_precedence_evaluator.rb +43 -0
- data/test/vendor/dhaka-2.2.1/test/arithmetic_precedence/arithmetic_precedence_grammar.rb +24 -0
- data/test/vendor/dhaka-2.2.1/test/arithmetic_precedence/arithmetic_precedence_grammar_test.rb +30 -0
- data/test/vendor/dhaka-2.2.1/test/arithmetic_precedence/arithmetic_precedence_lexer_specification.rb +23 -0
- data/test/vendor/dhaka-2.2.1/test/arithmetic_precedence/arithmetic_precedence_parser_test.rb +33 -0
- data/test/vendor/dhaka-2.2.1/test/brackets/bracket_grammar.rb +23 -0
- data/test/vendor/dhaka-2.2.1/test/brackets/bracket_tokenizer.rb +22 -0
- data/test/vendor/dhaka-2.2.1/test/brackets/brackets_test.rb +28 -0
- data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_driver.rb +46 -0
- data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_driver_test.rb +276 -0
- data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_evaluator.rb +284 -0
- data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_evaluator_test.rb +38 -0
- data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_grammar.rb +104 -0
- data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_lexer.rb +109 -0
- data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_lexer_specification.rb +37 -0
- data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_lexer_test.rb +58 -0
- data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_parser.rb +879 -0
- data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_parser_test.rb +55 -0
- data/test/vendor/dhaka-2.2.1/test/chittagong/chittagong_test.rb +170 -0
- data/test/vendor/dhaka-2.2.1/test/core/another_lalr_but_not_slr_grammar.rb +20 -0
- data/test/vendor/dhaka-2.2.1/test/core/compiled_parser_test.rb +44 -0
- data/test/vendor/dhaka-2.2.1/test/core/dfa_test.rb +170 -0
- data/test/vendor/dhaka-2.2.1/test/core/evaluator_test.rb +22 -0
- data/test/vendor/dhaka-2.2.1/test/core/grammar_test.rb +83 -0
- data/test/vendor/dhaka-2.2.1/test/core/lalr_but_not_slr_grammar.rb +19 -0
- data/test/vendor/dhaka-2.2.1/test/core/lexer_test.rb +139 -0
- data/test/vendor/dhaka-2.2.1/test/core/malformed_grammar.rb +7 -0
- data/test/vendor/dhaka-2.2.1/test/core/malformed_grammar_test.rb +8 -0
- data/test/vendor/dhaka-2.2.1/test/core/nullable_grammar.rb +21 -0
- data/test/vendor/dhaka-2.2.1/test/core/parse_result_test.rb +44 -0
- data/test/vendor/dhaka-2.2.1/test/core/parser_state_test.rb +24 -0
- data/test/vendor/dhaka-2.2.1/test/core/parser_test.rb +131 -0
- data/test/vendor/dhaka-2.2.1/test/core/precedence_grammar.rb +17 -0
- data/test/vendor/dhaka-2.2.1/test/core/precedence_grammar_test.rb +9 -0
- data/test/vendor/dhaka-2.2.1/test/core/rr_conflict_grammar.rb +21 -0
- data/test/vendor/dhaka-2.2.1/test/core/simple_grammar.rb +22 -0
- data/test/vendor/dhaka-2.2.1/test/core/sr_conflict_grammar.rb +16 -0
- data/test/vendor/dhaka-2.2.1/test/dhaka_test_helper.rb +17 -0
- data/test/vendor/dhaka-2.2.1/test/fake_logger.rb +17 -0
- data/test/vendor/simplerdb-0.2/lib/simplerdb/client_exception.rb +10 -0
- data/test/vendor/simplerdb-0.2/lib/simplerdb/db.rb +146 -0
- data/test/vendor/simplerdb-0.2/lib/simplerdb/query_language.rb +266 -0
- data/test/vendor/simplerdb-0.2/lib/simplerdb/server.rb +33 -0
- data/test/vendor/simplerdb-0.2/lib/simplerdb/servlet.rb +191 -0
- data/test/vendor/simplerdb-0.2/lib/simplerdb.rb +3 -0
- data/test/vendor/simplerdb-0.2/test/functional_test.rb +81 -0
- data/test/vendor/simplerdb-0.2/test/query_evaluator_test.rb +73 -0
- data/test/vendor/simplerdb-0.2/test/query_parser_test.rb +64 -0
- data/test/vendor/simplerdb-0.2/test/simplerdb_test.rb +80 -0
- metadata +182 -0
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
class ChittagongLexer < Dhaka::CompiledLexer
|
|
2
|
+
|
|
3
|
+
self.specification = ChittagongLexerSpecification
|
|
4
|
+
|
|
5
|
+
start_with 23993520499080
|
|
6
|
+
|
|
7
|
+
at_state(23993520490540) {
|
|
8
|
+
accept(">")
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
at_state(23993520496080) {
|
|
12
|
+
accept("\\d*(\\.\\d+)?")
|
|
13
|
+
for_characters("6", "7", "8", "9", "0", "1", "2", "3", "4", "5") { switch_to 23993520496080 }
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
at_state(23993520497360) {
|
|
17
|
+
accept("\\d*(\\.\\d+)?")
|
|
18
|
+
for_characters("6", "7", "8", "9", "0", "1", "2", "3", "4", "5") { switch_to 23993520497360 }
|
|
19
|
+
for_characters(".") { switch_to 23993520496640 }
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
at_state(23993520499080) {
|
|
23
|
+
accept("\\d*(\\.\\d+)?")
|
|
24
|
+
for_characters("\n") { switch_to 23993520492400 }
|
|
25
|
+
for_characters("*") { switch_to 23993520491960 }
|
|
26
|
+
for_characters("!") { switch_to 23993520479360 }
|
|
27
|
+
for_characters(" ") { switch_to 23993520478920 }
|
|
28
|
+
for_characters("/") { switch_to 23993520479800 }
|
|
29
|
+
for_characters("-") { switch_to 23993520477160 }
|
|
30
|
+
for_characters(",") { switch_to 23993520477600 }
|
|
31
|
+
for_characters("+") { switch_to 23993520480240 }
|
|
32
|
+
for_characters(")") { switch_to 23993520478040 }
|
|
33
|
+
for_characters("^") { switch_to 23993520478480 }
|
|
34
|
+
for_characters("J", "o", "p", "K", "q", "L", "r", "M", "s", "N", "t", "O", "a", "u", "P", "b", "Q", "c", "v", "R", "d", "w", "S", "e", "x", "T", "f", "y", "A", "U", "g", "z", "B", "h", "C", "V", "i", "D", "W", "j", "E", "X", "F", "Y", "k", "G", "Z", "l", "H", "m", "I", "n") { switch_to 23993520490080 }
|
|
35
|
+
for_characters("=") { switch_to 23993520491540 }
|
|
36
|
+
for_characters(">") { switch_to 23993520490540 }
|
|
37
|
+
for_characters("<") { switch_to 23993520497800 }
|
|
38
|
+
for_characters("(") { switch_to 23993520498240 }
|
|
39
|
+
for_characters("8", "9", "0", "1", "2", "3", "4", "5", "6", "7") { switch_to 23993520497360 }
|
|
40
|
+
for_characters(".") { switch_to 23993520496640 }
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
at_state(23993520478480) {
|
|
44
|
+
accept("\\^")
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
at_state(23993520492400) {
|
|
48
|
+
accept("\n")
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
at_state(23993520496640) {
|
|
52
|
+
for_characters("6", "7", "8", "9", "0", "1", "2", "3", "4", "5") { switch_to 23993520496080 }
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
at_state(23993520477600) {
|
|
56
|
+
accept(",")
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
at_state(23993520478040) {
|
|
60
|
+
accept("\\)")
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
at_state(23993520491540) {
|
|
64
|
+
accept("=")
|
|
65
|
+
for_characters("=") { switch_to 23993520490980 }
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
at_state(23993520491960) {
|
|
69
|
+
accept("\\*")
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
at_state(23993520497800) {
|
|
73
|
+
accept("<")
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
at_state(23993520498240) {
|
|
77
|
+
accept("\\(")
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
at_state(23993520479800) {
|
|
81
|
+
accept("\\/")
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
at_state(23993520490980) {
|
|
85
|
+
accept("==")
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
at_state(23993520478920) {
|
|
89
|
+
accept(" ")
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
at_state(23993520477160) {
|
|
93
|
+
accept("-")
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
at_state(23993520479360) {
|
|
97
|
+
accept("!")
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
at_state(23993520480240) {
|
|
101
|
+
accept("\\+")
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
at_state(23993520490080) {
|
|
105
|
+
accept("\\w+")
|
|
106
|
+
for_characters("k", "v", "V", "K", "A", "w", "l", "a", "W", "L", "b", "m", "M", "x", "B", "X", "Y", "c", "y", "n", "N", "C", "D", "o", "d", "z", "Z", "O", "P", "e", "E", "p", "Q", "q", "f", "F", "G", "g", "r", "R", "S", "H", "s", "h", "t", "T", "I", "i", "J", "j", "u", "U") { switch_to 23993520490080 }
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# lipi:lexer_spec
|
|
2
|
+
class ChittagongLexerSpecification < Dhaka::LexerSpecification
|
|
3
|
+
KEYWORDS = %w| print if else end while def return |
|
|
4
|
+
|
|
5
|
+
for_pattern('==') do
|
|
6
|
+
create_token('==')
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
%w| = - ! > < , + * ( ) / ^ |.each do |char|
|
|
10
|
+
for_symbol(char) do
|
|
11
|
+
create_token(char)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
for_pattern("\n") do
|
|
16
|
+
create_token('newline')
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
for_pattern(' ') do
|
|
20
|
+
# ignore whitespace
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
#lipi:keywords
|
|
24
|
+
for_pattern('\w+') do
|
|
25
|
+
if KEYWORDS.include? current_lexeme.value
|
|
26
|
+
create_token current_lexeme.value
|
|
27
|
+
else
|
|
28
|
+
create_token 'word_literal'
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
#lipi:keywords
|
|
32
|
+
|
|
33
|
+
for_pattern('\d*(\.\d+)?') do
|
|
34
|
+
create_token('numeric_literal')
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
# lipi:lexer_spec
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../dhaka_test_helper'
|
|
2
|
+
require File.dirname(__FILE__) + "/chittagong_lexer_specification"
|
|
3
|
+
begin
|
|
4
|
+
require File.dirname(__FILE__) + "/chittagong_lexer"
|
|
5
|
+
rescue LoadError
|
|
6
|
+
puts "Please run the rake command in the root folder to generate the lexer and parser required for this test."
|
|
7
|
+
exit
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
class TestChittagongLexer < Test::Unit::TestCase
|
|
11
|
+
def test_tokenizes_a_program
|
|
12
|
+
input = "
|
|
13
|
+
x = 2 * 4
|
|
14
|
+
y = 2 * x
|
|
15
|
+
v = x == y
|
|
16
|
+
if x > y
|
|
17
|
+
print x
|
|
18
|
+
else
|
|
19
|
+
print y
|
|
20
|
+
end
|
|
21
|
+
"
|
|
22
|
+
assert_equal(["newline",
|
|
23
|
+
"word_literal",
|
|
24
|
+
"=",
|
|
25
|
+
"numeric_literal",
|
|
26
|
+
"*",
|
|
27
|
+
"numeric_literal",
|
|
28
|
+
"newline",
|
|
29
|
+
"word_literal",
|
|
30
|
+
"=",
|
|
31
|
+
"numeric_literal",
|
|
32
|
+
"*",
|
|
33
|
+
"word_literal",
|
|
34
|
+
"newline",
|
|
35
|
+
"word_literal",
|
|
36
|
+
"=",
|
|
37
|
+
"word_literal",
|
|
38
|
+
"==",
|
|
39
|
+
"word_literal",
|
|
40
|
+
"newline",
|
|
41
|
+
"if",
|
|
42
|
+
"word_literal",
|
|
43
|
+
">",
|
|
44
|
+
"word_literal",
|
|
45
|
+
"newline",
|
|
46
|
+
"print",
|
|
47
|
+
"word_literal",
|
|
48
|
+
"newline",
|
|
49
|
+
"else",
|
|
50
|
+
"newline",
|
|
51
|
+
"print",
|
|
52
|
+
"word_literal",
|
|
53
|
+
"newline",
|
|
54
|
+
"end",
|
|
55
|
+
"newline",
|
|
56
|
+
Dhaka::END_SYMBOL_NAME], ChittagongLexer.lex(input).collect {|token| token.symbol_name})
|
|
57
|
+
end
|
|
58
|
+
end
|