kuhsaft 0.0.4 → 0.0.5

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.
@@ -0,0 +1,45 @@
1
+ module PagesHelper
2
+ def current_page
3
+ lang = Kuhsaft::Page.current_translation_locale
4
+ page = Kuhsaft::Page.find(@page.id).localized_pages.where('locale = ?', lang).first.page
5
+ page.translation
6
+ return page
7
+ rescue
8
+ end
9
+
10
+ def current_page_path(lang=nil)
11
+ if @page.present?
12
+ '/' + Kuhsaft::Page.find(@page.id).localized_pages.where('locale = ?', lang).first.url
13
+ else
14
+ root_path
15
+ end
16
+ rescue
17
+ root_path
18
+ end
19
+
20
+ def asset_for id
21
+ Kuhsaft::Asset.find(id)
22
+ end
23
+
24
+ def navigation_for id
25
+ if id.blank?
26
+ Kuhsaft::Page.root_pages
27
+ else
28
+ Kuhsaft::Page.where('parent_id = ?', id)
29
+ end
30
+ end
31
+
32
+ def page_for_level num
33
+ url = params[:url].split('/').take(num + 1).join('/') unless params[:url].blank?
34
+ Kuhsaft::Page.find_by_url(url)
35
+ end
36
+
37
+ def active_page_class page
38
+ url = params[:url].presence || ''
39
+ url.include?(page.url.to_s) ? 'active' : nil
40
+ end
41
+
42
+ def current_page_class page
43
+ 'current' if active_page_class(page) == 'active'
44
+ end
45
+ end
@@ -29,11 +29,11 @@ Gem::Specification.new do |s|
29
29
  s.add_development_dependency 'guard-rspec'
30
30
  s.add_development_dependency 'growl'
31
31
 
32
- s.add_dependency 'rails', '3.0.4'
32
+ s.add_dependency 'rails', '~>3.0'
33
33
  s.add_dependency 'haml', '3.0.25'
34
34
  s.add_dependency 'compass'
35
35
  s.add_dependency 'simple_form'
36
36
  s.add_dependency 'carrierwave'
37
37
  s.add_dependency 'rmagick'
38
38
  s.add_dependency 'rdiscount'
39
- end
39
+ end
@@ -11,7 +11,7 @@ module Kuhsaft
11
11
 
12
12
  initializer 'kuhsaft.helpers' do |app|
13
13
  # Include your helpers here or they won't be loaded
14
- # ActionView::Base.send :include, Kuhsaft::PagesHelper
14
+ ActionView::Base.send :include, Kuhsaft::PagesHelper
15
15
  end
16
16
  end
17
17
  end
@@ -1,3 +1,3 @@
1
1
  module Kuhsaft
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -2,14 +2,19 @@ require 'spec_helper'
2
2
 
3
3
  describe Kuhsaft::PagesController do
4
4
  render_views
5
-
5
+
6
+ before do
7
+ set_lang :en
8
+ # create page with slug=english-title
9
+ @page = Factory.create :page
10
+ end
11
+
12
+ after do
13
+ Kuhsaft::Page.all.each { |p| p.destroy }
14
+ reset_lang
15
+ end
16
+
6
17
  describe 'should render successfully' do
7
-
8
- before :all do
9
- # create page with slug=english-title
10
- Factory.create :page
11
- end
12
-
13
18
  it '#show' do
14
19
  get :show, :url => '/en/english-title'
15
20
  response.should be_success
@@ -0,0 +1,59 @@
1
+ require 'spec_helper'
2
+
3
+ describe PagesHelper do
4
+ before do
5
+ @page = Factory.create :page
6
+ end
7
+
8
+ after do
9
+ destroy_all_pages
10
+ end
11
+
12
+ it '#asset_for should return the asset with the given id' do
13
+ asset = Factory.create :asset
14
+ asset_for(asset.id).should eq(asset)
15
+ end
16
+
17
+ it '#navigation_for should return a list of pages' do
18
+ @page.childs << Factory.create(:page)
19
+ @page.childs << Factory.create(:page)
20
+ @page.save
21
+ navigation_for(@page.id).should have_at_least(2).pages
22
+ end
23
+
24
+ it '#current_page_path should return the german path for the current page' do
25
+ @page.localized_pages.create :locale => :de, :title => 'seite1'
26
+ helper.current_page_path(:de).should eq('/de/seite1')
27
+ end
28
+
29
+ it '#active_page_class should return "active"' do
30
+ helper.stub!(:params).and_return :url => 'en/english-title'
31
+ helper.active_page_class(@page).should eq('active')
32
+ end
33
+
34
+ it '#current_page should return the current page' do
35
+ helper.stub!(:params).and_return :url => '/de/seite1'
36
+ helper.current_page.should eq(@page)
37
+ end
38
+
39
+ describe '#page_for_level' do
40
+ it 'should return the page for the 1. level of en/english-title/english-title/english-title' do
41
+ destroy_all_pages
42
+ page1, page2, page3 = create_page_tree
43
+ helper.stub!(:params).and_return :url => 'en/english-title/english-title/english-title'
44
+ helper.page_for_level(1).should eq(page1)
45
+ end
46
+
47
+ it 'should return the page for the 2. level of en/english-title/english-title/english-title' do
48
+ page1, page2, page3 = create_page_tree
49
+ helper.stub!(:params).and_return :url => 'en/english-title/english-title/english-title'
50
+ helper.page_for_level(2).should eq(page2)
51
+ end
52
+
53
+ it 'should return the page for the 3. level of en/english-title/english-title/english-title' do
54
+ page1, page2, page3 = create_page_tree
55
+ helper.stub!(:params).and_return :url => 'en/english-title/english-title/english-title'
56
+ helper.page_for_level(3).should eq(page3)
57
+ end
58
+ end
59
+ end
@@ -53,6 +53,8 @@ describe Kuhsaft::LocalizedPage do
53
53
 
54
54
  before :each do
55
55
  @page = Factory.create :page
56
+ @page.title = nil
57
+ @page.slug = nil
56
58
  end
57
59
 
58
60
  it 'should have a title' do
@@ -2,24 +2,19 @@ require 'spec_helper'
2
2
 
3
3
  describe Kuhsaft::Page do
4
4
 
5
- before do
6
- Kuhsaft::Page.translation_locales = ['en', 'de']
7
- Kuhsaft::Page.current_translation_locale = :en
8
- end
9
-
10
5
  before :each do
11
- Kuhsaft::Page.all.each { |p| p.destroy }
6
+ destroy_all_pages
12
7
  @page = Factory.create :page
13
8
  end
14
9
 
15
10
  it 'should have many localized_pages' do
16
- @page.localized_pages.count.should >= 1
11
+ @page.localized_pages.should have_at_least(1).page
17
12
  end
18
13
 
19
14
  it 'should have child pages' do
20
15
  p = Factory.create(:page)
21
16
  @page.childs << p
22
- @page.childs.count.should >= 1
17
+ @page.childs.should have_at_least(1).page
23
18
  end
24
19
 
25
20
  it 'should be the root page' do
@@ -29,14 +24,14 @@ describe Kuhsaft::Page do
29
24
  it 'should have a parent page' do
30
25
  child = Factory.create(:page)
31
26
  @page.childs << child
32
- child.parent.id.should be(@page.id)
27
+ child.parent.should eq(@page)
33
28
  end
34
29
 
35
30
  it 'should have a list of root pages' do
36
31
  root_page = Factory.create :page
37
32
  root_page.childs << Factory.create(:page)
38
33
  root_page.childs << Factory.create(:page)
39
- Kuhsaft::Page.root_pages.count.should >= 1
34
+ Kuhsaft::Page.root_pages.should have_at_least(2).pages
40
35
  end
41
36
 
42
37
  it 'should increment it\'s position by 1' do
@@ -122,10 +117,9 @@ describe Kuhsaft::Page do
122
117
  end
123
118
 
124
119
  it 'should find its translated content by url' do
125
- Kuhsaft::Page.all.each { |p| p.destroy }
126
- Kuhsaft::LocalizedPage.all.each{ |p| p.destroy }
120
+ destroy_all_pages
127
121
  page = Factory.create(:page)
128
- Kuhsaft::Page.find_by_url(page.url).id.should == page.id
122
+ Kuhsaft::Page.find_by_url(page.url).should eq(page)
129
123
  end
130
124
 
131
125
  it 'should provide an array of translation locales' do
@@ -30,6 +30,9 @@ Spork.prefork do
30
30
 
31
31
  # Load support files
32
32
  Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
33
+
34
+ Kuhsaft::Page.translation_locales = [:en, :de]
35
+ Kuhsaft::Page.current_translation_locale = :en
33
36
 
34
37
  RSpec.configure do |config|
35
38
  # Remove this line if you don't want RSpec's should and should_not
@@ -39,6 +42,7 @@ Spork.prefork do
39
42
 
40
43
  config.include RSpec::Matchers
41
44
  config.include CarrierWave::Test::Matchers
45
+ config.include KuhsaftSpecHelper
42
46
 
43
47
  # == Mock Framework
44
48
  config.mock_with :rspec
@@ -0,0 +1,29 @@
1
+ module KuhsaftSpecHelper
2
+ def set_lang lang
3
+ @remember_translation_locale = Kuhsaft::Page.current_translation_locale
4
+ Kuhsaft::Page.current_translation_locale = lang
5
+ end
6
+
7
+ def reset_lang
8
+ Kuhsaft::Page.current_translation_locale = @remember_translation_locale if @remember_translation_locale.present?
9
+ end
10
+
11
+ def destroy_all_pages
12
+ Kuhsaft::Page.all.each { |p| p.destroy }
13
+ Kuhsaft::LocalizedPage.all.each { |p| p.destroy }
14
+ end
15
+
16
+ def create_page_tree
17
+ page1 = Factory.create :page
18
+ page2 = Factory.create :page
19
+ page3 = Factory.create :page
20
+
21
+ page1.childs << page2
22
+ page1.save
23
+
24
+ page2.childs << page3
25
+ page2.save
26
+
27
+ [page1, page2, page3]
28
+ end
29
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kuhsaft
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - "Immanuel H\xC3\xA4ussermann"
@@ -17,12 +17,10 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2011-03-28 00:00:00 +02:00
20
+ date: 2011-04-05 00:00:00 +02:00
21
21
  default_executable:
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
24
- name: rspec-rails
25
- prerelease: false
26
24
  requirement: &id001 !ruby/object:Gem::Requirement
27
25
  none: false
28
26
  requirements:
@@ -33,10 +31,10 @@ dependencies:
33
31
  - 0
34
32
  version: "0"
35
33
  type: :development
34
+ name: rspec-rails
35
+ prerelease: false
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency
38
- name: factory_girl_rails
39
- prerelease: false
40
38
  requirement: &id002 !ruby/object:Gem::Requirement
41
39
  none: false
42
40
  requirements:
@@ -47,10 +45,10 @@ dependencies:
47
45
  - 0
48
46
  version: "0"
49
47
  type: :development
48
+ name: factory_girl_rails
49
+ prerelease: false
50
50
  version_requirements: *id002
51
51
  - !ruby/object:Gem::Dependency
52
- name: capybara
53
- prerelease: false
54
52
  requirement: &id003 !ruby/object:Gem::Requirement
55
53
  none: false
56
54
  requirements:
@@ -63,10 +61,10 @@ dependencies:
63
61
  - 0
64
62
  version: 0.4.0
65
63
  type: :development
64
+ name: capybara
65
+ prerelease: false
66
66
  version_requirements: *id003
67
67
  - !ruby/object:Gem::Dependency
68
- name: ruby-debug
69
- prerelease: false
70
68
  requirement: &id004 !ruby/object:Gem::Requirement
71
69
  none: false
72
70
  requirements:
@@ -77,10 +75,10 @@ dependencies:
77
75
  - 0
78
76
  version: "0"
79
77
  type: :development
78
+ name: ruby-debug
79
+ prerelease: false
80
80
  version_requirements: *id004
81
81
  - !ruby/object:Gem::Dependency
82
- name: sqlite3-ruby
83
- prerelease: false
84
82
  requirement: &id005 !ruby/object:Gem::Requirement
85
83
  none: false
86
84
  requirements:
@@ -93,10 +91,10 @@ dependencies:
93
91
  - 5
94
92
  version: 1.2.5
95
93
  type: :development
94
+ name: sqlite3-ruby
95
+ prerelease: false
96
96
  version_requirements: *id005
97
97
  - !ruby/object:Gem::Dependency
98
- name: guard
99
- prerelease: false
100
98
  requirement: &id006 !ruby/object:Gem::Requirement
101
99
  none: false
102
100
  requirements:
@@ -107,10 +105,10 @@ dependencies:
107
105
  - 0
108
106
  version: "0"
109
107
  type: :development
108
+ name: guard
109
+ prerelease: false
110
110
  version_requirements: *id006
111
111
  - !ruby/object:Gem::Dependency
112
- name: guard-spork
113
- prerelease: false
114
112
  requirement: &id007 !ruby/object:Gem::Requirement
115
113
  none: false
116
114
  requirements:
@@ -121,10 +119,10 @@ dependencies:
121
119
  - 0
122
120
  version: "0"
123
121
  type: :development
122
+ name: guard-spork
123
+ prerelease: false
124
124
  version_requirements: *id007
125
125
  - !ruby/object:Gem::Dependency
126
- name: guard-rspec
127
- prerelease: false
128
126
  requirement: &id008 !ruby/object:Gem::Requirement
129
127
  none: false
130
128
  requirements:
@@ -135,10 +133,10 @@ dependencies:
135
133
  - 0
136
134
  version: "0"
137
135
  type: :development
136
+ name: guard-rspec
137
+ prerelease: false
138
138
  version_requirements: *id008
139
139
  - !ruby/object:Gem::Dependency
140
- name: growl
141
- prerelease: false
142
140
  requirement: &id009 !ruby/object:Gem::Requirement
143
141
  none: false
144
142
  requirements:
@@ -149,26 +147,25 @@ dependencies:
149
147
  - 0
150
148
  version: "0"
151
149
  type: :development
150
+ name: growl
151
+ prerelease: false
152
152
  version_requirements: *id009
153
153
  - !ruby/object:Gem::Dependency
154
- name: rails
155
- prerelease: false
156
154
  requirement: &id010 !ruby/object:Gem::Requirement
157
155
  none: false
158
156
  requirements:
159
- - - "="
157
+ - - ~>
160
158
  - !ruby/object:Gem::Version
161
- hash: 15
159
+ hash: 7
162
160
  segments:
163
161
  - 3
164
162
  - 0
165
- - 4
166
- version: 3.0.4
163
+ version: "3.0"
167
164
  type: :runtime
165
+ name: rails
166
+ prerelease: false
168
167
  version_requirements: *id010
169
168
  - !ruby/object:Gem::Dependency
170
- name: haml
171
- prerelease: false
172
169
  requirement: &id011 !ruby/object:Gem::Requirement
173
170
  none: false
174
171
  requirements:
@@ -181,10 +178,10 @@ dependencies:
181
178
  - 25
182
179
  version: 3.0.25
183
180
  type: :runtime
181
+ name: haml
182
+ prerelease: false
184
183
  version_requirements: *id011
185
184
  - !ruby/object:Gem::Dependency
186
- name: compass
187
- prerelease: false
188
185
  requirement: &id012 !ruby/object:Gem::Requirement
189
186
  none: false
190
187
  requirements:
@@ -195,10 +192,10 @@ dependencies:
195
192
  - 0
196
193
  version: "0"
197
194
  type: :runtime
195
+ name: compass
196
+ prerelease: false
198
197
  version_requirements: *id012
199
198
  - !ruby/object:Gem::Dependency
200
- name: simple_form
201
- prerelease: false
202
199
  requirement: &id013 !ruby/object:Gem::Requirement
203
200
  none: false
204
201
  requirements:
@@ -209,10 +206,10 @@ dependencies:
209
206
  - 0
210
207
  version: "0"
211
208
  type: :runtime
209
+ name: simple_form
210
+ prerelease: false
212
211
  version_requirements: *id013
213
212
  - !ruby/object:Gem::Dependency
214
- name: carrierwave
215
- prerelease: false
216
213
  requirement: &id014 !ruby/object:Gem::Requirement
217
214
  none: false
218
215
  requirements:
@@ -223,10 +220,10 @@ dependencies:
223
220
  - 0
224
221
  version: "0"
225
222
  type: :runtime
223
+ name: carrierwave
224
+ prerelease: false
226
225
  version_requirements: *id014
227
226
  - !ruby/object:Gem::Dependency
228
- name: rmagick
229
- prerelease: false
230
227
  requirement: &id015 !ruby/object:Gem::Requirement
231
228
  none: false
232
229
  requirements:
@@ -237,10 +234,10 @@ dependencies:
237
234
  - 0
238
235
  version: "0"
239
236
  type: :runtime
237
+ name: rmagick
238
+ prerelease: false
240
239
  version_requirements: *id015
241
240
  - !ruby/object:Gem::Dependency
242
- name: rdiscount
243
- prerelease: false
244
241
  requirement: &id016 !ruby/object:Gem::Requirement
245
242
  none: false
246
243
  requirements:
@@ -251,6 +248,8 @@ dependencies:
251
248
  - 0
252
249
  version: "0"
253
250
  type: :runtime
251
+ name: rdiscount
252
+ prerelease: false
254
253
  version_requirements: *id016
255
254
  description: Kuhsaft is a Rails engine that offers a simple CMS.
256
255
  email: developers@screenconcept.ch
@@ -271,6 +270,7 @@ files:
271
270
  - app/controllers/kuhsaft/admin/assets_controller.rb
272
271
  - app/controllers/kuhsaft/admin/pages_controller.rb
273
272
  - app/controllers/kuhsaft/pages_controller.rb
273
+ - app/helpers/pages_helper.rb
274
274
  - app/models/kuhsaft/asset.rb
275
275
  - app/models/kuhsaft/localized_page.rb
276
276
  - app/models/kuhsaft/page.rb
@@ -358,6 +358,7 @@ files:
358
358
  - spec/dummy/public/stylesheets/.gitkeep
359
359
  - spec/dummy/script/rails
360
360
  - spec/factories.rb
361
+ - spec/helpers/pages_helper_spec.rb
361
362
  - spec/integration/navigation_spec.rb
362
363
  - spec/kuhsaft_spec.rb
363
364
  - spec/models/asset_spec.rb
@@ -368,6 +369,7 @@ files:
368
369
  - spec/routing/assets_routing_spec.rb
369
370
  - spec/routing/pages_routing_spec.rb
370
371
  - spec/spec_helper.rb
372
+ - spec/support/kuhsaft_spec_helper.rb
371
373
  has_rdoc: true
372
374
  homepage: http://github.com/screenconcept/kuhsaft
373
375
  licenses: []
@@ -440,6 +442,7 @@ test_files:
440
442
  - spec/dummy/public/stylesheets/.gitkeep
441
443
  - spec/dummy/script/rails
442
444
  - spec/factories.rb
445
+ - spec/helpers/pages_helper_spec.rb
443
446
  - spec/integration/navigation_spec.rb
444
447
  - spec/kuhsaft_spec.rb
445
448
  - spec/models/asset_spec.rb
@@ -450,3 +453,4 @@ test_files:
450
453
  - spec/routing/assets_routing_spec.rb
451
454
  - spec/routing/pages_routing_spec.rb
452
455
  - spec/spec_helper.rb
456
+ - spec/support/kuhsaft_spec_helper.rb