welltreat-store-framework 0.2.0 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -42,6 +42,13 @@ module WelltreatStoreFramework
42
42
  end
43
43
  end
44
44
 
45
+ # Return connection to poll
46
+ def disconnect_database!
47
+ if ActiveRecord::Base.connection.present?
48
+ ActiveRecord::Base.connection.close
49
+ end
50
+ end
51
+
45
52
  private
46
53
  def _detect_stores(partition_object = nil)
47
54
  _stores = { }
@@ -37,7 +37,7 @@ module WelltreatStoreFramework
37
37
  raise StoreApp::TemplateNotFound.new(_file) if _file.nil? || !File.exist?(_file)
38
38
 
39
39
  if WelltreatStoreFramework::Core.configuration.auto_reload
40
- Haml::Engine.new(File.read(_file), filename: _file)
40
+ Haml::Engine.new(File.read(_file), filename: _file, encoding: 'UTF-8')
41
41
  else
42
42
  _haml_engines[_key] ||=
43
43
  Haml::Engine.new(File.read(_file), filename: _file)
@@ -17,11 +17,16 @@ module WelltreatStoreFramework
17
17
 
18
18
  def call(env)
19
19
  _store = _find_store(env)
20
+ WelltreatStoreFramework::Core.connect_database!
21
+
20
22
  if _store
21
23
  _store.call(env)
22
24
  else
23
25
  raise "Store - #{self.store_name} for partition - #{self.partition_id} not found."
24
26
  end
27
+
28
+ ensure
29
+ WelltreatStoreFramework::Core.disconnect_database!
25
30
  end
26
31
 
27
32
  private
@@ -46,11 +51,7 @@ module WelltreatStoreFramework
46
51
 
47
52
  return store if store.nil?
48
53
 
49
- store.tap do |_s|
50
- _s.start
51
- WelltreatStoreFramework::Core.connect_database!
52
- end
53
-
54
+ store.tap { |_s| _s.start }
54
55
  end
55
56
  end
56
57
  end
@@ -1,14 +1,14 @@
1
1
  class Home
2
2
  include WelltreatStoreFramework::Controller
3
3
 
4
- def index(request, response)
4
+ def index(request, response, options = {})
5
5
  response.set :title, "Hello World"
6
6
  response.set :name, "Hasan"
7
7
 
8
8
  response.set :products, app.models::Product.all
9
9
  end
10
10
 
11
- def not_found(request, response)
11
+ def not_found(request, response, options = {})
12
12
  response.content = "<h1>Page Not found</h1>"
13
13
  response.status = 404
14
14
  end
@@ -3,11 +3,11 @@ class Products
3
3
 
4
4
  class ProductNotFound < StandardError; end
5
5
 
6
- def index(request, response)
6
+ def index(request, response, options = {})
7
7
  response.set :products, [{name: 'Product 1'}, {name: 'Product 2'}]
8
8
  end
9
9
 
10
- def show(request, response)
10
+ def show(request, response, options = {})
11
11
  if request[:id].present?
12
12
  response.set :product, app.models::Product.find(request[:id])
13
13
  response.set :title, response.get(:product).name
@@ -15,7 +15,8 @@ describe WelltreatStoreFramework::HamlRenderer::Context do
15
15
  let(:app) { WelltreatStoreFramework::Core.find_store_by_name('hello-store') }
16
16
  let(:request) { WelltreatStoreFramework::Controller::Request.new }
17
17
  let(:response) { WelltreatStoreFramework::Controller::Response.new }
18
- let(:context) { WelltreatStoreFramework::HamlRenderer::Context.new(app, request, response) }
18
+ let(:session) { mock(:session) }
19
+ let(:context) { WelltreatStoreFramework::HamlRenderer::Context.new(app, request, response, {session: session}) }
19
20
 
20
21
  describe '#image_tag' do
21
22
  it 'should render img tag' do
@@ -17,15 +17,16 @@ describe WelltreatStoreFramework::StoreApp do
17
17
  describe '#dispatch' do
18
18
  let(:request) { WelltreatStoreFramework::Controller::Request.new }
19
19
  let(:response) { WelltreatStoreFramework::Controller::Response.new }
20
+ let(:session) { mock(:session) }
20
21
 
21
22
  it 'should not throw any exception' do
22
23
  lambda {
23
- app.dispatch('/', request, response)
24
+ app.dispatch('/', request, response, {session: session})
24
25
  }.should_not raise_error
25
26
  end
26
27
 
27
28
  describe 'response object' do
28
- before { app.dispatch('/', request, response) }
29
+ before { app.dispatch('/', request, response, {session: session}) }
29
30
  subject { response }
30
31
 
31
32
  its(:template) { should == :index }
@@ -36,8 +37,8 @@ describe WelltreatStoreFramework::StoreApp do
36
37
  end
37
38
 
38
39
  describe 'rendered content' do
39
- before { app.dispatch('/', request, response) }
40
- before { app.render!(request, response) }
40
+ before { app.dispatch('/', request, response, {session: session}) }
41
+ before { app.render!(request, response, {session: session}) }
41
42
  subject { response }
42
43
 
43
44
  its(:content) { should match 'Hasan' }
@@ -45,8 +46,8 @@ describe WelltreatStoreFramework::StoreApp do
45
46
  end
46
47
 
47
48
  describe 'product controller' do
48
- before { app.dispatch('/products', request, response) }
49
- before { app.render!(request, response) }
49
+ before { app.dispatch('/products', request, response, {session: session}) }
50
+ before { app.render!(request, response, {session: session}) }
50
51
  subject { response }
51
52
 
52
53
  its(:template) { should == :index }
@@ -59,14 +60,14 @@ describe WelltreatStoreFramework::StoreApp do
59
60
  context 'auto reload enabled' do
60
61
  it 'should have same base module name' do
61
62
  _old_app_mod = app.send(:_base_module).name
62
- app.dispatch('/', request, response)
63
+ app.dispatch('/', request, response, {session: session})
63
64
 
64
65
  app.send(:_base_module).name.should eql _old_app_mod
65
66
  end
66
67
 
67
68
  it 'should have different base object_id' do
68
69
  _old_app_mod_id = app.send(:_base_module).object_id
69
- app.dispatch('/', request, response)
70
+ app.dispatch('/', request, response, {session: session})
70
71
 
71
72
  app.send(:_base_module).object_id.should_not eql _old_app_mod_id
72
73
  end
@@ -74,8 +75,8 @@ describe WelltreatStoreFramework::StoreApp do
74
75
  end
75
76
 
76
77
  context 'not found url' do
77
- before { app.dispatch('/Something does not exists', request, response) }
78
- before { app.render!(request, response) }
78
+ before { app.dispatch('/Something does not exists', request, response, {session: session}) }
79
+ before { app.render!(request, response, {session: session}) }
79
80
  subject { response }
80
81
 
81
82
  its(:content) { should match /not\s*found/i }
@@ -12,6 +12,7 @@ describe 'SampleApp::HelloStore' do
12
12
 
13
13
  let(:request) { WelltreatStoreFramework::Controller::Request.new }
14
14
  let(:response) { WelltreatStoreFramework::Controller::Response.new }
15
+ let(:session) { mock(:session) }
15
16
 
16
17
  before(:each) do
17
18
  request = WelltreatStoreFramework::Controller::Request.new
@@ -26,7 +27,7 @@ describe 'SampleApp::HelloStore' do
26
27
  describe '/' do
27
28
  it 'should render without error' do
28
29
  lambda {
29
- app.dispatch('/', request, response)
30
+ app.dispatch('/', request, response, {session: session})
30
31
  }.should_not raise_error
31
32
  end
32
33
 
@@ -45,7 +46,7 @@ describe 'SampleApp::HelloStore' do
45
46
  }
46
47
  }
47
48
 
48
- before { app.dispatch('/', request, response) }
49
+ before { app.dispatch('/', request, response, {session: session}) }
49
50
  subject { response }
50
51
 
51
52
  its([:products]) { should be }
@@ -53,7 +54,7 @@ describe 'SampleApp::HelloStore' do
53
54
  its([:products]) { subject.map(&:_id).should == products.map(&:_id) }
54
55
 
55
56
  describe 'rendered content' do
56
- before { app.render!(request, response) }
57
+ before { app.render!(request, response, {session: session}) }
57
58
  subject { response.content }
58
59
 
59
60
  it 'should have rendered products' do
@@ -89,24 +90,24 @@ describe 'SampleApp::HelloStore' do
89
90
  context 'when valid product id' do
90
91
  it 'should render without any problem' do
91
92
  lambda {
92
- app.dispatch("/products/show/#{products.first._id}", request, response)
93
+ app.dispatch("/products/show/#{products.first._id}", request, response, {session: session})
93
94
  }.should_not raise_error
94
95
  end
95
96
 
96
97
  describe 'before rendered' do
97
- before { app.dispatch("/products/show/#{products.first._id}", request, response) }
98
+ before { app.dispatch("/products/show/#{products.first._id}", request, response, {session: session}) }
98
99
  subject { response }
99
100
 
100
101
  its([:product]) { should be }
101
102
 
102
103
  it 'should render without any error' do
103
104
  lambda {
104
- app.render!(request, response)
105
+ app.render!(request, response, {session: session})
105
106
  }.should_not raise_error
106
107
  end
107
108
 
108
109
  describe 'after rendered' do
109
- before { app.render!(request, response) }
110
+ before { app.render!(request, response, {session: session}) }
110
111
  subject { response.content }
111
112
 
112
113
  it { should match products.first.name }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: welltreat-store-framework
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-07-10 00:00:00.000000000 Z
12
+ date: 2012-07-23 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: jeweler
16
- requirement: &2157029520 !ruby/object:Gem::Requirement
16
+ requirement: &2161426880 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2157029520
24
+ version_requirements: *2161426880
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &2157028760 !ruby/object:Gem::Requirement
27
+ requirement: &2161426340 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.2.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2157028760
35
+ version_requirements: *2161426340
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: haml
38
- requirement: &2157028200 !ruby/object:Gem::Requirement
38
+ requirement: &2161425620 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2157028200
46
+ version_requirements: *2161425620
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: flexi_model
49
- requirement: &2157027720 !ruby/object:Gem::Requirement
49
+ requirement: &2161423420 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2157027720
57
+ version_requirements: *2161423420
58
58
  description: WellTreat Store Framework
59
59
  email:
60
60
  - hasan83bd@gmail.com