welltreat-store-framework 0.2.0 → 0.2.2

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.
@@ -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