alfa 0.0.5.pre → 0.0.6.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (94) hide show
  1. checksums.yaml +4 -4
  2. data/dummy/project/.gitignore +16 -0
  3. data/dummy/project/.ruby-version +1 -0
  4. data/dummy/project/CHANGELOG +0 -0
  5. data/dummy/project/Gemfile.source +7 -2
  6. data/dummy/project/README +0 -0
  7. data/dummy/project/apps/admin/layouts/base.haml +10 -0
  8. data/dummy/project/apps/admin/layouts/index.haml.source +7 -0
  9. data/dummy/project/apps/admin/templates/default/index.haml +1 -0
  10. data/dummy/project/apps/frontend/layouts/base.haml +10 -0
  11. data/dummy/project/apps/frontend/layouts/index.haml.source +7 -0
  12. data/dummy/project/apps/frontend/templates/default/{index.tpl → index.haml} +0 -0
  13. data/dummy/project/config/db.rb +15 -0
  14. data/dummy/project/config/passwords/.gitignore.source +3 -0
  15. data/dummy/project/config/passwords/db-main.yml.source +8 -0
  16. data/dummy/project/config/passwords/secrets.sample.yml +2 -0
  17. data/dummy/project/config/passwords/secrets.yml.source +2 -0
  18. data/dummy/project/config/web_application.rb +1 -0
  19. data/dummy/project/db/main/migrations/.keep +0 -0
  20. data/dummy/project/db/main/models/.keep +0 -0
  21. data/dummy/project/db/main/schema/.keep +0 -0
  22. data/dummy/project/db/main/seed.rb +0 -0
  23. data/dummy/project/log/.keep +0 -0
  24. data/dummy/project/public/.htaccess +13 -0
  25. data/dummy/project/tasks/.keep +0 -0
  26. data/dummy/project/test/.keep +0 -0
  27. data/lib/alfa/application.rb +21 -1
  28. data/lib/alfa/commands/new.rb +14 -9
  29. data/lib/alfa/config.rb +3 -2
  30. data/lib/alfa/controller.rb +19 -104
  31. data/lib/alfa/database.rb +2 -1
  32. data/lib/alfa/exceptions.rb +5 -0
  33. data/lib/alfa/logger.rb +4 -3
  34. data/lib/alfa/resourcer.rb +29 -0
  35. data/lib/alfa/router.rb +34 -14
  36. data/lib/alfa/snippeter.rb +42 -0
  37. data/lib/alfa/support/common.rb +195 -0
  38. data/lib/alfa/support/nil_operations.rb +207 -0
  39. data/lib/alfa/support/time.rb +5 -0
  40. data/lib/alfa/support.rb +3 -135
  41. data/lib/alfa/tasks/assets.rake +16 -0
  42. data/lib/alfa/tasks/db.rake +169 -0
  43. data/lib/alfa/tasks/generators.rake +80 -0
  44. data/lib/alfa/tasks.rb +4 -0
  45. data/lib/alfa/tfile.rb +1 -1
  46. data/lib/alfa/user.rb +41 -6
  47. data/lib/alfa/web_application.rb +96 -31
  48. data/lib/alfa/wrapper.rb +155 -0
  49. data/lib/alfa.rb +0 -2
  50. data/lib/rack/file_alfa.rb +2 -1
  51. data/lib/sequel/extensions/igrep.rb +19 -0
  52. data/lib/sequel/extensions/with_pks.rb +15 -0
  53. data/lib/template-inheritance/alfa_helpers.rb +106 -25
  54. data/lib/tilt/alfa_patch.rb +1 -1
  55. data/test/data/test_router/1/apps/frontend/routes.rb +1 -0
  56. data/test/data/test_router/2/apps/frontend/routes.rb +1 -0
  57. data/test/data/test_web_application/apps/admin/controllers/second.rb +5 -0
  58. data/test/data/test_web_application/apps/admin/layouts/default.haml +1 -0
  59. data/test/data/test_web_application/apps/admin/layouts/default.tpl +1 -0
  60. data/test/data/test_web_application/apps/admin/routes.rb +1 -0
  61. data/test/data/test_web_application/apps/admin/templates/default/test_04.haml +1 -0
  62. data/test/data/test_web_application/apps/admin/templates/default/test_04.tpl +1 -0
  63. data/test/data/test_web_application/apps/admin/templates/default/test_08.haml +2 -0
  64. data/test/data/test_web_application/apps/admin/templates/default/test_08a.haml +1 -0
  65. data/test/data/test_web_application/apps/admin/templates/second/index.haml +1 -0
  66. data/test/data/test_web_application/apps/frontend/controllers/second.rb +5 -0
  67. data/test/data/test_web_application/apps/frontend/layouts/default.haml +1 -0
  68. data/test/data/test_web_application/apps/frontend/layouts/default.tpl +1 -0
  69. data/test/data/test_web_application/apps/frontend/routes.rb +1 -0
  70. data/test/data/test_web_application/apps/frontend/templates/default/bar.haml +0 -0
  71. data/test/data/test_web_application/apps/frontend/templates/default/bar.tpl +0 -0
  72. data/test/data/test_web_application/apps/frontend/templates/default/frontend_only.haml +0 -0
  73. data/test/data/test_web_application/apps/frontend/templates/default/frontend_only.tpl +0 -0
  74. data/test/data/test_web_application/apps/frontend/templates/default/index.haml +0 -0
  75. data/test/data/test_web_application/apps/frontend/templates/default/index.tpl +0 -0
  76. data/test/data/test_web_application/apps/frontend/templates/default/test_04.haml +1 -0
  77. data/test/data/test_web_application/apps/frontend/templates/default/test_04.tpl +1 -0
  78. data/test/data/test_web_application/apps/frontend/templates/default/test_08.haml +2 -0
  79. data/test/data/test_web_application/apps/frontend/templates/default/test_08a.haml +1 -0
  80. data/test/data/test_web_application/apps/frontend/templates/second/index.haml +1 -0
  81. data/test/test_config.rb +2 -2
  82. data/test/test_controller.rb +13 -3
  83. data/test/test_router.rb +13 -6
  84. data/test/test_ruby_core.rb +32 -0
  85. data/test/test_support.rb +152 -11
  86. data/test/test_web_application.rb +7 -0
  87. data/version.rb +1 -1
  88. metadata +100 -16
  89. data/lib/alfa/database/mysql.rb +0 -107
  90. data/lib/alfa/models/base.rb +0 -7
  91. data/lib/alfa/models/base_sql.rb +0 -9
  92. data/lib/alfa/models/dummy.rb +0 -7
  93. data/lib/alfa/models/mysql.rb +0 -62
  94. data/lib/alfa/models.rb +0 -2
@@ -0,0 +1,32 @@
1
+ require 'test/unit'
2
+
3
+ class RubyCoreTest < Test::Unit::TestCase
4
+ # Inherited classes should use separate variables
5
+ def test_01
6
+ eval <<EOL
7
+ class A
8
+ class << self
9
+ attr_accessor :foo
10
+ end
11
+ end
12
+ class B < A; end
13
+ class C < B; end
14
+ EOL
15
+ A.foo = 1
16
+ B.foo = 2
17
+ C.foo = 3
18
+ assert_equal(1, A.foo)
19
+ assert_equal(2, B.foo)
20
+ assert_equal(3, C.foo)
21
+ end
22
+
23
+ # Test for Regression of Hash#reject in Ruby 2.1.1
24
+ # https://www.ruby-lang.org/en/news/2014/03/10/regression-of-hash-reject-in-ruby-2-1-1/
25
+ # Should pass in Ruby 2.0.0 and 2.1.2+ (not in 2.1.1)
26
+ def test_02
27
+ eval <<EOL
28
+ class SubHash < Hash; end
29
+ EOL
30
+ assert_equal(SubHash, SubHash.new.reject{}.class)
31
+ end
32
+ end
data/test/test_support.rb CHANGED
@@ -1,9 +1,6 @@
1
1
  require 'test/unit'
2
2
  require 'alfa/support'
3
- require 'alfa/database/mysql'
4
-
5
- class DB1 < Alfa::Database::MySQL; end
6
- class DB2 < Alfa::Database::MySQL; end
3
+ require 'alfa/support/nil_operations'
7
4
 
8
5
  class AlfaSupportTest < Test::Unit::TestCase
9
6
  def test_camelcase_name
@@ -15,6 +12,7 @@ class AlfaSupportTest < Test::Unit::TestCase
15
12
  assert_equal('FooBar', Alfa::Support.camelcase_name('foo_bar'))
16
13
  assert_equal('FooBar', Alfa::Support.camelcase_name(:foo__bar))
17
14
  assert_equal('BarBaz', Alfa::Support.camelcase_name('foo/bar_baz'))
15
+ assert_equal('Foo2Bar', Alfa::Support.camelcase_name('foo_2_bar'))
18
16
  end
19
17
 
20
18
  def test_underscore
@@ -27,13 +25,7 @@ class AlfaSupportTest < Test::Unit::TestCase
27
25
  assert_equal('foo_bar', Alfa::Support.underscore_name('foo_bar'))
28
26
  assert_equal('foo_bar', Alfa::Support.underscore_name(:foo_bar))
29
27
  assert_equal('bar_baz', Alfa::Support.underscore_name('Foo/Bar_Baz'))
30
- end
31
-
32
- def test_inheritance
33
- DB1.host = 'localhost'
34
- DB2.host = 'otherhost'
35
- assert_equal('localhost', DB1.host)
36
- assert_equal('otherhost', DB2.host)
28
+ assert_equal('foo_2_bar', Alfa::Support.underscore_name('Foo2Bar'))
37
29
  end
38
30
 
39
31
  def test_args_kwargs
@@ -88,4 +80,153 @@ class AlfaSupportTest < Test::Unit::TestCase
88
80
  assert_equal({:a=>1, :c=>3}, h.except(:b))
89
81
  assert_equal({:a=>1, :b=>2, :c=>3}, h)
90
82
  end
83
+
84
+ def test_nil_operations
85
+ # addition
86
+ assert_nil(NilKnown.new(nil))
87
+ assert_equal([nil, nil], nil.to_nkn.to_a)
88
+ assert_equal(1, NilKnown.new(1))
89
+ assert_equal([1, 1], 1.to_nkn.to_a)
90
+
91
+ a = NilKnown.new(1) + 1
92
+ assert_equal(2, a)
93
+ assert_equal(2, a.known)
94
+ a = NilKnown.new(1) + nil
95
+ assert_nil(a)
96
+ assert_equal(1, a.known)
97
+ a = NilKnown.new(nil) + 1
98
+ assert_nil(a)
99
+ assert_equal(1, a.known)
100
+ a = NilKnown.new(nil) + nil
101
+ assert_nil(a)
102
+ assert_nil(a.known)
103
+
104
+ a = NilKnown.new(1) + NilKnown.new(1)
105
+ assert_equal(2, a)
106
+ assert_equal(2, a.known)
107
+ a = NilKnown.new(1) + NilKnown.new(nil)
108
+ assert_nil(a)
109
+ assert_equal(1, a.known)
110
+ a = NilKnown.new(nil) + NilKnown.new(1)
111
+ assert_nil(a)
112
+ assert_equal(1, a.known)
113
+ a = NilKnown.new(nil) + NilKnown.new(nil)
114
+ assert_nil(a)
115
+ assert_nil(a.known)
116
+
117
+ a = 1.to_nkn
118
+ b = 2.to_nkn
119
+ c = a + b
120
+ assert_not_equal(c.hash, a.hash)
121
+ assert_not_equal(c.hash, b.hash)
122
+
123
+ assert_equal(1.1, NilKnown.new(1.1))
124
+
125
+ a = NilKnown.new(1.1) + 1.1
126
+ assert_equal(2.2, a)
127
+ assert_equal(2.2, a.known)
128
+ a = NilKnown.new(1.1) + nil
129
+ assert_nil(a)
130
+ assert_equal(1.1, a.known)
131
+ a = NilKnown.new(nil) + 1.1
132
+ assert_nil(a)
133
+ assert_equal(1.1, a.known)
134
+ a = NilKnown.new(nil) + nil
135
+ assert_nil(a)
136
+ assert_nil(a.known)
137
+
138
+ a = NilKnown.new(1.1) + NilKnown.new(1.1)
139
+ assert_equal(2.2, a)
140
+ assert_equal(2.2, a.known)
141
+ a = NilKnown.new(1.1) + NilKnown.new(nil)
142
+ assert_nil(a)
143
+ assert_equal(1.1, a.known)
144
+ a = NilKnown.new(nil) + NilKnown.new(1.1)
145
+ assert_nil(a)
146
+ assert_equal(1.1, a.known)
147
+ a = NilKnown.new(nil) + NilKnown.new(nil)
148
+ assert_nil(a)
149
+ assert_nil(a.known)
150
+
151
+ assert_raise ::ArgumentError do
152
+ NilKnown.new(1, 2)
153
+ end
154
+
155
+ assert_equal([nil, 102], (NilKnown.new(nil, 100) + 2).to_a)
156
+ assert_equal([nil, 202], (NilKnown.new(nil, 100) + NilKnown.new(nil, 102)).to_a)
157
+
158
+ # multiplication
159
+ assert_equal([nil, 0], (1.to_nkn * nil).to_a)
160
+ assert_equal([2, 2], (1.to_nkn * 2.to_nkn).to_a)
161
+ assert_equal([nil, 24], (4.to_nkn * NilKnown.new(nil, 6)).to_a)
162
+
163
+ # substraction
164
+ assert_equal([nil, 1], (1.to_nkn - nil).to_a)
165
+ assert_equal([nil, -1], (nil.to_nkn - 1).to_a)
166
+ assert_equal(nil, nil.to_nkn - nil)
167
+ assert_equal([0, 0], (1.to_nkn - 1).to_a)
168
+ assert_equal([1, 1], (2.to_nkn - 1).to_a)
169
+ assert_equal([-1, -1], (1.to_nkn - 2).to_a)
170
+
171
+ # division
172
+ assert_equal([nil, 0], nil.to_nkn.fdiv(1).to_a)
173
+ assert_equal([0, 0], 0.to_nkn.fdiv(1).to_a)
174
+ assert_equal([nil, Float::INFINITY], nil.to_nkn.fdiv(nil).to_a)
175
+ assert_equal([Float::INFINITY, Float::INFINITY], 1.to_nkn.fdiv(0).to_a)
176
+ assert_equal([nil, Float::INFINITY], 1.to_nkn.fdiv(nil).to_a)
177
+ assert_equal([1.5, 1.5], 3.to_nkn.fdiv(2).to_a)
178
+
179
+ assert_equal([nil, 0], nil.to_nkn.div(1).to_a)
180
+ assert_equal([0, 0], 0.to_nkn.div(1).to_a)
181
+ assert_raise(ZeroDivisionError){ nil.to_nkn.div(nil) }
182
+ assert_raise(ZeroDivisionError){ 1.to_nkn.div(0) }
183
+ assert_raise(ZeroDivisionError){ 1.1.to_nkn.div(0) }
184
+ assert_raise(ZeroDivisionError){ 1.to_nkn.div(nil) }
185
+ assert_equal([1, 1], 3.to_nkn.div(2).to_a)
186
+
187
+ assert_equal([nil, 0], (nil.to_nkn / 1).to_a)
188
+ assert_equal([0, 0], (0.to_nkn / 1).to_a)
189
+ assert_equal([nil, Float::INFINITY], (nil.to_nkn / nil).to_a)
190
+ assert_raise(ZeroDivisionError){ 1.to_nkn / 0 }
191
+ assert_raise(ZeroDivisionError){ 1.to_nkn / nil }
192
+ assert_equal([Float::INFINITY, Float::INFINITY], (1.1.to_nkn / 0).to_a)
193
+ assert_equal([1, 1], (3.to_nkn / 2).to_a)
194
+ assert_equal([1.5, 1.5], (3.0.to_nkn / 2.0).to_a)
195
+
196
+ # other
197
+ assert(1.to_nkn.is?)
198
+ assert(0.to_nkn.is?)
199
+ assert(!nil.to_nkn.is?)
200
+ assert(1.1.to_nkn.is?)
201
+ assert_equal(Float::INFINITY, NilKnown.new(nil, Float::INFINITY).known)
202
+ end
203
+
204
+ def test_hround
205
+ assert_equal('123', 123.hround(1))
206
+ assert_equal('123.5', 123.456.hround(1))
207
+ assert_equal('123.46', 123.456.hround(2))
208
+ assert_equal('123.2', 123.222.hround(1))
209
+ assert_equal('0.1', 0.123.hround(1))
210
+ assert_equal('-123', -123.hround(1))
211
+ assert_equal('-123.5', -123.456.hround(1))
212
+ assert_equal('-123.46', -123.456.hround(2))
213
+ assert_equal('-123.2', -123.222.hround(1))
214
+ assert_equal('-0.1', -0.123.hround(1))
215
+ assert_equal('123.5', BigDecimal.new('123.456').hround(1))
216
+ assert_equal('123.46', BigDecimal.new('123.456').hround(2))
217
+ end
218
+
219
+ def test_mround
220
+ assert_equal('123', 123.mround)
221
+ assert_equal('123.00', 123.mround(true))
222
+ assert_equal('123.46', 123.456.mround)
223
+ assert_equal('123.22', 123.222.mround)
224
+ assert_equal('0.12', 0.123.mround)
225
+ assert_equal('-123', -123.mround)
226
+ assert_equal('-123.00', -123.mround(true))
227
+ assert_equal('-123.46', -123.456.mround)
228
+ assert_equal('-123.22', -123.222.mround)
229
+ assert_equal('-0.12', -0.123.mround)
230
+ assert_equal('123.46', BigDecimal.new('123.456').mround)
231
+ end
91
232
  end
@@ -50,6 +50,7 @@ class TestAlfaWebApplication < Test::Unit::TestCase
50
50
  assert_equal(200, Alfa::WebApplication.call({'PATH_INFO' => '/bar'})[0])
51
51
  assert_equal(404, Alfa::WebApplication.call({'PATH_INFO' => '/methods'})[0])
52
52
  assert_equal(404, Alfa::WebApplication.call({'PATH_INFO' => '/inspect'})[0])
53
+ assert_equal(200, Alfa::WebApplication.call({'PATH_INFO' => '/second'})[0])
53
54
  end
54
55
 
55
56
  # Controllers isolation (admin/DefaultController, frontend/DefaultController):
@@ -104,4 +105,10 @@ class TestAlfaWebApplication < Test::Unit::TestCase
104
105
  assert_equal(:far, foo1)
105
106
  assert_equal(:faz, foo2)
106
107
  end
108
+
109
+ # Test for serial routes such as /:action then /:controller or /:controller then /:action
110
+ def test_09
111
+ assert_equal("second#index@frontend\n", Alfa::WebApplication.call({'PATH_INFO'=>'/second'})[2].join)
112
+ assert_equal("second#index@admin\n", Alfa::WebApplication.call({'PATH_INFO'=>'/admin/second'})[2].join)
113
+ end
107
114
  end
data/version.rb CHANGED
@@ -1 +1 @@
1
- ALFA_VERSION = '0.0.5.pre'
1
+ ALFA_VERSION = '0.0.6.pre'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alfa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5.pre
4
+ version: 0.0.6.pre
5
5
  platform: ruby
6
6
  authors:
7
7
  - Valentin Syrovatskiy
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-16 00:00:00.000000000 Z
11
+ date: 2014-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rvm
@@ -17,6 +17,9 @@ dependencies:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.11'
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 1.11.3
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -24,34 +27,49 @@ dependencies:
24
27
  - - "~>"
25
28
  - !ruby/object:Gem::Version
26
29
  version: '1.11'
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 1.11.3
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: rake
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '10.0'
39
+ version: '10.3'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 10.3.1
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
47
  - - "~>"
39
48
  - !ruby/object:Gem::Version
40
- version: '10.0'
49
+ version: '10.3'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 10.3.1
41
53
  - !ruby/object:Gem::Dependency
42
54
  name: rack
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
45
57
  - - "~>"
46
58
  - !ruby/object:Gem::Version
47
- version: '1.4'
59
+ version: '1.5'
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 1.5.2
48
63
  type: :runtime
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
51
66
  requirements:
52
67
  - - "~>"
53
68
  - !ruby/object:Gem::Version
54
- version: '1.4'
69
+ version: '1.5'
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ version: 1.5.2
55
73
  - !ruby/object:Gem::Dependency
56
74
  name: ruty
57
75
  requirement: !ruby/object:Gem::Requirement
@@ -73,6 +91,9 @@ dependencies:
73
91
  - - "~>"
74
92
  - !ruby/object:Gem::Version
75
93
  version: '0.3'
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 0.3.15
76
97
  type: :runtime
77
98
  prerelease: false
78
99
  version_requirements: !ruby/object:Gem::Requirement
@@ -80,25 +101,37 @@ dependencies:
80
101
  - - "~>"
81
102
  - !ruby/object:Gem::Version
82
103
  version: '0.3'
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: 0.3.15
83
107
  - !ruby/object:Gem::Dependency
84
108
  name: sequel
85
109
  requirement: !ruby/object:Gem::Requirement
86
110
  requirements:
87
111
  - - "~>"
88
112
  - !ruby/object:Gem::Version
89
- version: '3.42'
113
+ version: '4.9'
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: 4.9.0
90
117
  type: :runtime
91
118
  prerelease: false
92
119
  version_requirements: !ruby/object:Gem::Requirement
93
120
  requirements:
94
121
  - - "~>"
95
122
  - !ruby/object:Gem::Version
96
- version: '3.42'
123
+ version: '4.9'
124
+ - - ">="
125
+ - !ruby/object:Gem::Version
126
+ version: 4.9.0
97
127
  - !ruby/object:Gem::Dependency
98
128
  name: rack-session-sequel
99
129
  requirement: !ruby/object:Gem::Requirement
100
130
  requirements:
101
131
  - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '0.0'
134
+ - - ">="
102
135
  - !ruby/object:Gem::Version
103
136
  version: 0.0.1
104
137
  type: :runtime
@@ -106,6 +139,9 @@ dependencies:
106
139
  version_requirements: !ruby/object:Gem::Requirement
107
140
  requirements:
108
141
  - - "~>"
142
+ - !ruby/object:Gem::Version
143
+ version: '0.0'
144
+ - - ">="
109
145
  - !ruby/object:Gem::Version
110
146
  version: 0.0.1
111
147
  - !ruby/object:Gem::Dependency
@@ -355,31 +391,52 @@ files:
355
391
  - assets/js/jquery/ui/themes/smoothness/jquery.ui.tabs.css
356
392
  - assets/js/jquery/ui/themes/smoothness/jquery.ui.theme.css
357
393
  - bin/alfa
394
+ - dummy/project/.gitignore
395
+ - dummy/project/.ruby-version
396
+ - dummy/project/CHANGELOG
358
397
  - dummy/project/Gemfile.source
398
+ - dummy/project/README
359
399
  - dummy/project/Rakefile
360
400
  - dummy/project/apps/admin/controllers/default.rb
401
+ - dummy/project/apps/admin/layouts/base.haml
361
402
  - dummy/project/apps/admin/layouts/base.tpl
403
+ - dummy/project/apps/admin/layouts/index.haml.source
362
404
  - dummy/project/apps/admin/layouts/index.tpl.source
363
405
  - dummy/project/apps/admin/routes.rb
406
+ - dummy/project/apps/admin/templates/default/index.haml
364
407
  - dummy/project/apps/admin/templates/default/index.tpl
365
408
  - dummy/project/apps/frontend/controllers/default.rb
409
+ - dummy/project/apps/frontend/layouts/base.haml
366
410
  - dummy/project/apps/frontend/layouts/base.tpl
411
+ - dummy/project/apps/frontend/layouts/index.haml.source
367
412
  - dummy/project/apps/frontend/layouts/index.tpl.source
368
413
  - dummy/project/apps/frontend/routes.rb
369
- - dummy/project/apps/frontend/templates/default/index.tpl
414
+ - dummy/project/apps/frontend/templates/default/index.haml
370
415
  - dummy/project/config.ru
371
416
  - dummy/project/config/cli_application.rb
372
417
  - dummy/project/config/config.rb
373
418
  - dummy/project/config/db.rb
374
419
  - dummy/project/config/env.rb
375
420
  - dummy/project/config/groups.rb
421
+ - dummy/project/config/passwords/.gitignore.source
422
+ - dummy/project/config/passwords/db-main.yml.source
376
423
  - dummy/project/config/passwords/db.sample.yml
424
+ - dummy/project/config/passwords/secrets.sample.yml
425
+ - dummy/project/config/passwords/secrets.yml.source
377
426
  - dummy/project/config/routes.rb
378
427
  - dummy/project/config/setup_load_paths.rb
379
428
  - dummy/project/config/web_application.rb
429
+ - dummy/project/db/main/migrations/.keep
430
+ - dummy/project/db/main/models/.keep
380
431
  - dummy/project/db/main/schema.yml
432
+ - dummy/project/db/main/schema/.keep
433
+ - dummy/project/db/main/seed.rb
434
+ - dummy/project/log/.keep
435
+ - dummy/project/public/.htaccess
381
436
  - dummy/project/public/favicon.ico
382
437
  - dummy/project/public/robots.txt
438
+ - dummy/project/tasks/.keep
439
+ - dummy/project/test/.keep
383
440
  - lib/alfa.rb
384
441
  - lib/alfa/application.rb
385
442
  - lib/alfa/cli_application.rb
@@ -387,29 +444,34 @@ files:
387
444
  - lib/alfa/config.rb
388
445
  - lib/alfa/controller.rb
389
446
  - lib/alfa/database.rb
390
- - lib/alfa/database/mysql.rb
391
447
  - lib/alfa/exceptions.rb
392
448
  - lib/alfa/logger.rb
393
- - lib/alfa/models.rb
394
- - lib/alfa/models/base.rb
395
- - lib/alfa/models/base_sql.rb
396
- - lib/alfa/models/dummy.rb
397
- - lib/alfa/models/mysql.rb
398
449
  - lib/alfa/query_logger.rb
450
+ - lib/alfa/resourcer.rb
399
451
  - lib/alfa/router.rb
400
452
  - lib/alfa/ruty.rb
453
+ - lib/alfa/snippeter.rb
401
454
  - lib/alfa/support.rb
455
+ - lib/alfa/support/common.rb
456
+ - lib/alfa/support/nil_operations.rb
457
+ - lib/alfa/support/time.rb
402
458
  - lib/alfa/tasks.rb
459
+ - lib/alfa/tasks/assets.rake
460
+ - lib/alfa/tasks/db.rake
461
+ - lib/alfa/tasks/generators.rake
403
462
  - lib/alfa/template-inheritance.rb
404
463
  - lib/alfa/tfile.rb
405
464
  - lib/alfa/user.rb
406
465
  - lib/alfa/web_application.rb
466
+ - lib/alfa/wrapper.rb
407
467
  - lib/haml/alfa_patch.rb
408
468
  - lib/rack/file_alfa.rb
409
469
  - lib/ruty/bugfix.rb
410
470
  - lib/ruty/tags/href.rb
411
471
  - lib/ruty/tags/resources.rb
412
472
  - lib/ruty/upgrade.rb
473
+ - lib/sequel/extensions/igrep.rb
474
+ - lib/sequel/extensions/with_pks.rb
413
475
  - lib/template-inheritance/alfa_bugfix.rb
414
476
  - lib/template-inheritance/alfa_helpers.rb
415
477
  - lib/tilt/alfa_patch.rb
@@ -420,9 +482,31 @@ files:
420
482
  - test/data/test_router/2/apps/frontend/routes.rb
421
483
  - test/data/test_router/2/config/routes.rb
422
484
  - test/data/test_web_application/apps/admin/controllers/default.rb
485
+ - test/data/test_web_application/apps/admin/controllers/second.rb
486
+ - test/data/test_web_application/apps/admin/layouts/default.haml
487
+ - test/data/test_web_application/apps/admin/layouts/default.tpl
423
488
  - test/data/test_web_application/apps/admin/routes.rb
489
+ - test/data/test_web_application/apps/admin/templates/default/test_04.haml
490
+ - test/data/test_web_application/apps/admin/templates/default/test_04.tpl
491
+ - test/data/test_web_application/apps/admin/templates/default/test_08.haml
492
+ - test/data/test_web_application/apps/admin/templates/default/test_08a.haml
493
+ - test/data/test_web_application/apps/admin/templates/second/index.haml
424
494
  - test/data/test_web_application/apps/frontend/controllers/default.rb
495
+ - test/data/test_web_application/apps/frontend/controllers/second.rb
496
+ - test/data/test_web_application/apps/frontend/layouts/default.haml
497
+ - test/data/test_web_application/apps/frontend/layouts/default.tpl
425
498
  - test/data/test_web_application/apps/frontend/routes.rb
499
+ - test/data/test_web_application/apps/frontend/templates/default/bar.haml
500
+ - test/data/test_web_application/apps/frontend/templates/default/bar.tpl
501
+ - test/data/test_web_application/apps/frontend/templates/default/frontend_only.haml
502
+ - test/data/test_web_application/apps/frontend/templates/default/frontend_only.tpl
503
+ - test/data/test_web_application/apps/frontend/templates/default/index.haml
504
+ - test/data/test_web_application/apps/frontend/templates/default/index.tpl
505
+ - test/data/test_web_application/apps/frontend/templates/default/test_04.haml
506
+ - test/data/test_web_application/apps/frontend/templates/default/test_04.tpl
507
+ - test/data/test_web_application/apps/frontend/templates/default/test_08.haml
508
+ - test/data/test_web_application/apps/frontend/templates/default/test_08a.haml
509
+ - test/data/test_web_application/apps/frontend/templates/second/index.haml
426
510
  - test/data/test_web_application/config/routes.rb
427
511
  - test/test_alfa.rb
428
512
  - test/test_application.rb
@@ -430,6 +514,7 @@ files:
430
514
  - test/test_controller.rb
431
515
  - test/test_logger.rb
432
516
  - test/test_router.rb
517
+ - test/test_ruby_core.rb
433
518
  - test/test_support.rb
434
519
  - test/test_tfile.rb
435
520
  - test/test_web_application.rb
@@ -458,4 +543,3 @@ signing_key:
458
543
  specification_version: 4
459
544
  summary: Alfa CMF
460
545
  test_files: []
461
- has_rdoc:
@@ -1,107 +0,0 @@
1
- require 'alfa/support'
2
- require 'mysql2'
3
- require 'alfa/models/mysql'
4
- require 'alfa/query_logger'
5
- require 'yaml'
6
-
7
- module Alfa
8
- module Database
9
- class MySQL
10
- include Alfa::ClassInheritance
11
- inheritable_attributes :host, :port, :user, :password, :dbname, :client, :config, :schema_path, :encondig
12
- @host = nil
13
- @port = 3306
14
- @user = nil
15
- @password = nil
16
- @dbname = nil
17
- @client = nil
18
- @config = nil
19
- @schema_path = nil
20
- @encoding = nil
21
-
22
- def self.load_schema path
23
- @schema_path = path
24
- data = YAML::load File.open(File.join(path, 'schema.yml'))
25
- data.symbolize_keys!
26
- @encoding = data[:encoding] if data[:encoding]
27
- raise "Unacceptible engine in #{path}/schema.yml, expected to be mysql of mysql2" unless ['mysql', 'mysql2'].include? data[:engine]
28
- Dir[File.join(path, 'models/*.rb')].each do |file|
29
- require file
30
- Kernel::const_get(Alfa::Support.camelcase_name(File.basename(file, '.rb'))).register_database self
31
- end
32
-
33
- end
34
-
35
- def self.load_config file
36
- @config = file
37
- data = YAML::load File.open(file)
38
- data.symbolize_keys!
39
- @host = data[:host] if data[:host]
40
- @port = data[:port] if data[:port]
41
- @user = data[:user] if data[:user]
42
- @password = data[:password] if data[:password]
43
- @dbname = data[:dbname] if data[:dbname]
44
- end
45
-
46
- def self.check_params
47
- raise ":host must be defined for #{self.to_s}" unless @host
48
- raise ":user must be defined for #{self.to_s}" unless @user
49
- raise ":password must be defined for #{self.to_s}" unless @password
50
- raise ":dbname must be defined for #{self.to_s}" unless @dbname
51
- raise ":encoding must be defined for #{self.to_s}" unless @encoding
52
- end
53
-
54
- def self.query query
55
- self.check_client
56
- begin
57
- Alfa::QueryLogger.log query, self do
58
- @client.query(query)
59
- end
60
- rescue Mysql2::Error => e
61
- raise "#{e.message} (query: \"#{query}\", error number: #{e.error_number}, sql state: #{e.sql_state})"
62
- end
63
- end
64
-
65
- def self.check_client
66
- unless @client
67
- self.check_params
68
- @client = Mysql2::Client.new(:host=>@host, :username=>@user)
69
- @client.query_options.merge!(:symbolize_keys => true, :as => :hash, :database_timezone => :utc, :application_timezone => :utc)
70
- Alfa::QueryLogger.log "SET NAMES utf8", self do
71
- @client.query "SET NAMES " + @encoding
72
- end
73
- Alfa::QueryLogger.log "USE `#@dbname`", self do
74
- @client.query "USE `#@dbname`"
75
- end
76
- end
77
- end
78
-
79
- def self.transaction &block
80
- self.check_client
81
- begin
82
- self.query "START TRANSACTION"
83
- yield
84
- rescue StandardError => e
85
- self.query "ROLLBACK"
86
- raise e
87
- else
88
- self.query "COMMIT"
89
- end
90
- end
91
-
92
- def self.escape arg
93
- case arg.class
94
- when Numeric
95
- arg.to_s
96
- when Array
97
- arg.map {|a|
98
- self.escape(a).to_s
99
- }.join(',')
100
- else
101
- client.escape arg.to_s
102
- end
103
- end
104
-
105
- end
106
- end
107
- end
@@ -1,7 +0,0 @@
1
- module Alfa
2
- module Models
3
- class Base
4
-
5
- end
6
- end
7
- end
@@ -1,9 +0,0 @@
1
- require 'alfa/models/base'
2
-
3
- module Alfa
4
- module Models
5
- class BaseSQL < Alfa::Models::Base
6
-
7
- end
8
- end
9
- end
@@ -1,7 +0,0 @@
1
- module Alfa
2
- module Models
3
- class Dummy
4
-
5
- end
6
- end
7
- end