kuhsaft 2.0.3 → 2.1.0
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.
- checksums.yaml +4 -4
- data/README.md +82 -9
- data/Rakefile +31 -0
- data/app/controllers/kuhsaft/cms/admin_controller.rb +2 -2
- data/app/models/kuhsaft/page.rb +1 -0
- data/app/uploaders/kuhsaft/asset_brick_asset_uploader.rb +1 -1
- data/app/uploaders/kuhsaft/image_brick_image_uploader.rb +1 -1
- data/db/migrate/14_move_kuhsaft_assets.rb +22 -0
- data/db/seeds.rb +18 -11
- data/lib/kuhsaft.rb +1 -0
- data/lib/kuhsaft/version.rb +1 -1
- data/spec/controllers/kuhsaft/cms/admin_controller_spec.rb +7 -0
- data/spec/dummy/config/boot.rb +1 -2
- data/spec/dummy/config/database.yml +11 -15
- data/spec/features/search_spec.rb +2 -2
- data/spec/models/brick_spec.rb +2 -2
- data/spec/models/page_spec.rb +19 -0
- data/spec/spec_helper.rb +3 -5
- metadata +90 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a644e28bc6049a19a8878e3476d648d7257000e2
|
4
|
+
data.tar.gz: dd5345fd7f913827a6efb2056cd9f79dfb598f36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a884c25283286b6a15e7b450e6467b870d9220c0e940af760ead60e369fb1a8a6ffaf1a8119d267c0b1ee7743a4f5b216810f0522fb0fc8ab620531198218daa
|
7
|
+
data.tar.gz: 95fb7cce42f9f7919ea94a4da3e9d47096e15651f32b56ddca2d188c84db3c9f104c1078dac92ae575a078c9c144adf384c21f40f16e32d0bfd254d36a3c1364
|
data/README.md
CHANGED
@@ -10,7 +10,7 @@ Kuhsaft is made by some Rails developers at Screen Concept that got tired of
|
|
10
10
|
fiddling with unusable content management sytems. We are trying hard to make a
|
11
11
|
minimalistic and developer friendly CMS. Our goal is to provide a system for
|
12
12
|
ourselves and our customers that makes the of-the-shelf website project a
|
13
|
-
|
13
|
+
hasslefree thing. On one side easy to set up, integrate and customize (good for
|
14
14
|
devs) on the other hand it should be easily usable by anyone.
|
15
15
|
|
16
16
|
## What's in it
|
@@ -99,11 +99,10 @@ Make sure they are in the `config.assets.precompile` array in environments like
|
|
99
99
|
|
100
100
|
There's a dummy app inside spec/dummy. Get it running by executing the following steps:
|
101
101
|
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
Start up the dummy app. The first two steps also make sure you're ready to run `rspec spec` to run the test suite. (Todo: This workflow must be improved))
|
102
|
+
```
|
103
|
+
rake setup
|
104
|
+
rake start_dummy
|
105
|
+
```
|
107
106
|
|
108
107
|
# Usage
|
109
108
|
|
@@ -199,6 +198,78 @@ Finally, add the new translation locale to your `available_locales` inside your
|
|
199
198
|
|
200
199
|
config.available_locales = [:en, :fr]
|
201
200
|
|
201
|
+
## Adding a language switch
|
202
|
+
|
203
|
+
Add scope around routes:
|
204
|
+
|
205
|
+
scope "(:locale)", locale: /de|en|fr/ do
|
206
|
+
root 'kuhsaft/pages#show'
|
207
|
+
end
|
208
|
+
|
209
|
+
Set the locale in the ApplicationController in a before_action and set default url options:
|
210
|
+
|
211
|
+
before_action :set_locale
|
212
|
+
|
213
|
+
def set_locale
|
214
|
+
if I18n.available_locales.map{|sym| sym.to_s }.include?(params[:locale])
|
215
|
+
I18n.locale = params[:locale]
|
216
|
+
else
|
217
|
+
I18n.locale = I18n.default_locale
|
218
|
+
end
|
219
|
+
end
|
220
|
+
|
221
|
+
def default_url_options(options={})
|
222
|
+
{ locale: I18n.locale }
|
223
|
+
end
|
224
|
+
|
225
|
+
Add method to ApplicationHelper which redirects to homepage when current page is not translated.
|
226
|
+
Make sure to have the homepage translated in every available language.
|
227
|
+
|
228
|
+
def localized_url(url, target_locale)
|
229
|
+
page = Kuhsaft::Page.find_by_url("#{I18n.locale}/#{url}")
|
230
|
+
I18n.with_locale target_locale do
|
231
|
+
translated_url = page.presence && page.url
|
232
|
+
if translated_url.present?
|
233
|
+
"/#{translated_url}"
|
234
|
+
else
|
235
|
+
root_path(locale: target_locale)
|
236
|
+
end
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
240
|
+
def language_link(url, locale)
|
241
|
+
localized_url(params[:url], locale)
|
242
|
+
end
|
243
|
+
|
244
|
+
Add language switch to navigation:
|
245
|
+
|
246
|
+
SimpleNavigation::Configuration.run do |navigation|
|
247
|
+
I18n.available_locales.each do |locale|
|
248
|
+
primary.item locale, locale.to_s.upcase, language_link(params[:url], locale), highlights_on: Proc.new { I18n.locale == locale }
|
249
|
+
end
|
250
|
+
end
|
251
|
+
|
252
|
+
Make sure to render only pages which are translated and published by using `published` and `translated` scope, so pages
|
253
|
+
without translation and which are not published will not be displayed in the navigation.
|
254
|
+
Here is an example of a possible navigation:
|
255
|
+
|
256
|
+
SimpleNavigation::Configuration.run do |navigation|
|
257
|
+
navigation.items do |primary|
|
258
|
+
primary.dom_class = 'right'
|
259
|
+
primary.selected_class = 'active'
|
260
|
+
Kuhsaft::Page.find_by(slug_de: 'meta-navigation').children.published.translated.each do |page|
|
261
|
+
primary.item page.id, page.title, page.link, class: 'contact icon'
|
262
|
+
end
|
263
|
+
|
264
|
+
primary.item '', 'Sprache', '#', class: 'language icon has-dropdown'do |language|
|
265
|
+
I18n.available_locales.each do |locale|
|
266
|
+
language.dom_class = 'dropdown'
|
267
|
+
language.item locale, language_text(locale), language_link(params[:url], locale), highlights_on: Proc.new { I18n.locale == locale }, class: "icon lang-#{locale}"
|
268
|
+
end
|
269
|
+
end
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
202
273
|
## Styling the content
|
203
274
|
|
204
275
|
By default, the text editor lets you add the following tags, for which you should supply some styles in your app:
|
@@ -207,17 +278,19 @@ By default, the text editor lets you add the following tags, for which you shoul
|
|
207
278
|
|
208
279
|
## Building a navigation
|
209
280
|
|
210
|
-
Building a navigation is simple, access to the page tree is available through the common methods built into the ancestry gem.
|
281
|
+
Building a navigation is simple, access to the page tree is available through the common methods built into the ancestry gem.
|
282
|
+
Just make sure you are only accessing published pages for your production site, using the `published` scope.
|
283
|
+
Or if your page is translated, using the `translated` scope and the `published` scope.
|
211
284
|
|
212
285
|
### 2 level navigation example using simple-navigation
|
213
286
|
|
214
287
|
SimpleNavigation::Configuration.run do |navigation|
|
215
288
|
navigation.items do |primary|
|
216
289
|
# build first level
|
217
|
-
Kuhsaft::Page.roots.published.each do |page|
|
290
|
+
Kuhsaft::Page.roots.published.translated.each do |page|
|
218
291
|
primary.item page.id, page.title, page.link do |sub_item|
|
219
292
|
# build second level
|
220
|
-
page.children.published.each do |subpage|
|
293
|
+
page.children.published.translated.each do |subpage|
|
221
294
|
sub_item.item subpage.id, subpage.title, subpage.link
|
222
295
|
end
|
223
296
|
end
|
data/Rakefile
CHANGED
@@ -11,6 +11,27 @@ rescue LoadError
|
|
11
11
|
RDoc::Task = Rake::RDocTask
|
12
12
|
end
|
13
13
|
|
14
|
+
module Postgres
|
15
|
+
class << self
|
16
|
+
def exec(query)
|
17
|
+
`psql postgres -tAc "#{query}"`
|
18
|
+
end
|
19
|
+
|
20
|
+
def user_exists?(username)
|
21
|
+
exec("SELECT 1 FROM pg_user WHERE usename='#{username}'").strip == '1'
|
22
|
+
end
|
23
|
+
|
24
|
+
def drop_user(username)
|
25
|
+
puts "dropping user #{username}"
|
26
|
+
puts exec("DROP USER #{username}").inspect
|
27
|
+
end
|
28
|
+
|
29
|
+
def create_user(username)
|
30
|
+
user_exists?(username) ? false : `createuser -s #{username}`
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
14
35
|
desc "Run specs"
|
15
36
|
RSpec::Core::RakeTask.new(:spec => :setup)
|
16
37
|
|
@@ -22,7 +43,9 @@ RDoc::Task.new(:rdoc) do |rdoc|
|
|
22
43
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
23
44
|
end
|
24
45
|
|
46
|
+
desc 'set up the dummy app for testing'
|
25
47
|
task :setup do
|
48
|
+
Postgres.create_user 'screenconcept'
|
26
49
|
Dir.chdir('spec/dummy') do
|
27
50
|
`bundle exec rake kuhsaft:install:migrations`
|
28
51
|
`bundle exec rails generate kuhsaft:install:assets`
|
@@ -33,3 +56,11 @@ task :setup do
|
|
33
56
|
end
|
34
57
|
|
35
58
|
task :default => [:spec]
|
59
|
+
|
60
|
+
desc 'start the dummy app'
|
61
|
+
task :start_dummy do
|
62
|
+
Dir.chdir('spec/dummy') do
|
63
|
+
ENV['BUNDLE_GEMFILE'] = '../../Gemfile'
|
64
|
+
`bundle exec rails server`
|
65
|
+
end
|
66
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Kuhsaft
|
2
2
|
module Cms
|
3
|
-
class AdminController <
|
3
|
+
class AdminController < InheritedResources::Base
|
4
4
|
respond_to :html
|
5
5
|
layout 'kuhsaft/cms/application'
|
6
6
|
before_filter :set_content_locale
|
@@ -16,4 +16,4 @@ module Kuhsaft
|
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
19
|
-
end
|
19
|
+
end
|
data/app/models/kuhsaft/page.rb
CHANGED
@@ -20,6 +20,7 @@ class Kuhsaft::Page < ActiveRecord::Base
|
|
20
20
|
default_scope { order('position ASC') }
|
21
21
|
|
22
22
|
scope :published, -> { where(:published => Kuhsaft::PublishState::PUBLISHED) }
|
23
|
+
scope :translated, -> { where("url_#{I18n.locale} is not null") }
|
23
24
|
|
24
25
|
# TODO: cleanup page_types (content pages => nil or PageType::CONTENT
|
25
26
|
scope :content_page, -> { where(
|
@@ -13,7 +13,7 @@ class Kuhsaft::AssetBrickAssetUploader < CarrierWave::Uploader::Base
|
|
13
13
|
# Override the directory where uploaded files will be stored.
|
14
14
|
# This is a sensible default for uploaders that are meant to be mounted:
|
15
15
|
def store_dir
|
16
|
-
"uploads/#{model.class.
|
16
|
+
"uploads/#{model.class.name.underscore.gsub(/^kuhsaft/,'cms')}/#{mounted_as}/#{model.id}"
|
17
17
|
end
|
18
18
|
|
19
19
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
@@ -12,7 +12,7 @@ module Kuhsaft
|
|
12
12
|
# Override the directory where uploaded files will be stored.
|
13
13
|
# This is a sensible default for uploaders that are meant to be mounted:
|
14
14
|
def store_dir
|
15
|
-
"uploads/#{model.class.
|
15
|
+
"uploads/#{model.class.name.underscore.gsub(/^kuhsaft/,'cms')}/#{mounted_as}/#{model.id}"
|
16
16
|
end
|
17
17
|
|
18
18
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class MoveKuhsaftAssets < ActiveRecord::Migration
|
2
|
+
def old_kuhsaft_assets_dir
|
3
|
+
File.join(Rails.root,'public/uploads/kuhsaft')
|
4
|
+
end
|
5
|
+
|
6
|
+
def new_kuhsaft_assets_dir
|
7
|
+
File.join(Rails.root,'public/uploads/cms')
|
8
|
+
end
|
9
|
+
|
10
|
+
def up
|
11
|
+
if File.exists? old_kuhsaft_assets_dir
|
12
|
+
puts "Moving Kuhsaft Assets from #{old_kuhsaft_assets_dir} to #{new_kuhsaft_assets_dir}"
|
13
|
+
File.rename old_kuhsaft_assets_dir, new_kuhsaft_assets_dir
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def down
|
18
|
+
if File.exists? new_kuhsaft_assets_dir
|
19
|
+
File.rename new_kuhsaft_assets_dir, old_kuhsaft_assets_dir
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/db/seeds.rb
CHANGED
@@ -1,13 +1,20 @@
|
|
1
1
|
# Add default kuhsaft brick types
|
2
|
+
brick_types = [
|
3
|
+
{ class_name: 'Kuhsaft::TextBrick', group: 'elements' },
|
4
|
+
{ class_name: 'Kuhsaft::LinkBrick', group: 'elements' },
|
5
|
+
{ class_name: 'Kuhsaft::VideoBrick', group: 'elements' },
|
6
|
+
{ class_name: 'Kuhsaft::AccordionBrick', group: 'elements' },
|
7
|
+
{ class_name: 'Kuhsaft::AccordionItemBrick', group: 'elements' },
|
8
|
+
{ class_name: 'Kuhsaft::TwoColumnBrick', group: 'layout_elements' },
|
9
|
+
{ class_name: 'Kuhsaft::SliderBrick', group: 'elements' },
|
10
|
+
{ class_name: 'Kuhsaft::ImageBrick', group: 'elements' },
|
11
|
+
{ class_name: 'Kuhsaft::PlaceholderBrick', group: 'elements' },
|
12
|
+
{ class_name: 'Kuhsaft::AnchorBrick', group: 'elements' },
|
13
|
+
{ class_name: 'Kuhsaft::AssetBrick', group: 'elements' }
|
14
|
+
]
|
15
|
+
|
16
|
+
brick_types.each do |bt|
|
17
|
+
brick_type = Kuhsaft::BrickType.find_or_create_by(class_name: bt[:class_name])
|
18
|
+
brick_type.update! bt
|
19
|
+
end
|
2
20
|
|
3
|
-
Kuhsaft::BrickType.create(:class_name => 'Kuhsaft::TextBrick', :group => 'elements')
|
4
|
-
Kuhsaft::BrickType.create(:class_name => 'Kuhsaft::LinkBrick', :group => 'elements')
|
5
|
-
Kuhsaft::BrickType.create(:class_name => 'Kuhsaft::VideoBrick', :group => 'elements')
|
6
|
-
Kuhsaft::BrickType.create(:class_name => 'Kuhsaft::AccordionBrick', :group => 'elements')
|
7
|
-
Kuhsaft::BrickType.create(:class_name => 'Kuhsaft::AccordionItemBrick', :group => 'elements')
|
8
|
-
Kuhsaft::BrickType.create(:class_name => 'Kuhsaft::TwoColumnBrick', :group => 'layout_elements')
|
9
|
-
Kuhsaft::BrickType.create(:class_name => 'Kuhsaft::SliderBrick', :group => 'elements')
|
10
|
-
Kuhsaft::BrickType.create(:class_name => 'Kuhsaft::ImageBrick', :group => 'elements')
|
11
|
-
Kuhsaft::BrickType.create(:class_name => 'Kuhsaft::PlaceholderBrick', :group => 'elements')
|
12
|
-
Kuhsaft::BrickType.create(:class_name => 'Kuhsaft::AnchorBrick', :group => 'elements')
|
13
|
-
Kuhsaft::BrickType.create(:class_name => 'Kuhsaft::AssetBrick', :group => 'elements')
|
data/lib/kuhsaft.rb
CHANGED
data/lib/kuhsaft/version.rb
CHANGED
data/spec/dummy/config/boot.rb
CHANGED
@@ -1,23 +1,19 @@
|
|
1
|
-
# SQLite version 3.x
|
2
|
-
# gem install sqlite3
|
3
|
-
#
|
4
|
-
# Ensure the SQLite 3 gem is defined in your Gemfile
|
5
|
-
# gem 'sqlite3'
|
6
1
|
development:
|
7
|
-
adapter:
|
2
|
+
adapter: postgresql
|
8
3
|
database: kuhsaft_development
|
9
|
-
|
4
|
+
username: screenconcept
|
10
5
|
password:
|
6
|
+
host: localhost
|
7
|
+
encoding: unicode
|
11
8
|
pool: 5
|
12
|
-
|
9
|
+
port: <%= ENV["BOXEN_POSTGRESQL_PORT"] || 5432 %>
|
13
10
|
|
14
|
-
# Warning: The database defined as "test" will be erased and
|
15
|
-
# re-generated from your development database when you run "rake".
|
16
|
-
# Do not set this db to the same as development or production.
|
17
11
|
test:
|
18
|
-
adapter:
|
19
|
-
database:
|
20
|
-
|
12
|
+
adapter: postgresql
|
13
|
+
database: kuhsaft_development
|
14
|
+
username: screenconcept
|
21
15
|
password:
|
16
|
+
host: localhost
|
17
|
+
encoding: unicode
|
22
18
|
pool: 5
|
23
|
-
|
19
|
+
port: <%= ENV["BOXEN_POSTGRESQL_PORT"] || 5432 %>
|
@@ -32,13 +32,13 @@ describe 'pages#index' do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
it 'highlights search term in preview' do
|
35
|
-
within("ul.search-results
|
35
|
+
within("ul.search-results.success") do
|
36
36
|
page.should have_content('Chromodorididae')
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
40
|
it 'truncates the text' do
|
41
|
-
find('.summary .
|
41
|
+
find('.summary .excerpt').text.length.should == 110
|
42
42
|
end
|
43
43
|
end
|
44
44
|
|
data/spec/models/brick_spec.rb
CHANGED
@@ -36,7 +36,7 @@ describe Kuhsaft::Brick do
|
|
36
36
|
|
37
37
|
describe '#parents' do
|
38
38
|
it 'returns the chain of parents' do
|
39
|
-
item1, item2, item3 =
|
39
|
+
item1, item2, item3 = double, double, Kuhsaft::Brick.new
|
40
40
|
item2.stub(:brick_list).and_return(item1)
|
41
41
|
item3.stub(:brick_list).and_return(item2)
|
42
42
|
item3.parents.should == [item1, item2]
|
@@ -56,7 +56,7 @@ describe Kuhsaft::Brick do
|
|
56
56
|
end
|
57
57
|
|
58
58
|
it 'returns true if the brick has siblings' do
|
59
|
-
item1, item2, item3 =
|
59
|
+
item1, item2, item3 = double, double, Kuhsaft::Brick.new
|
60
60
|
item1.stub(:bricks).and_return([item2, item3])
|
61
61
|
item2.stub(:brick_list).and_return(item1)
|
62
62
|
item3.stub(:brick_list).and_return(item1)
|
data/spec/models/page_spec.rb
CHANGED
@@ -393,4 +393,23 @@ describe Kuhsaft::Page do
|
|
393
393
|
end
|
394
394
|
end
|
395
395
|
end
|
396
|
+
|
397
|
+
describe '#translated' do
|
398
|
+
before :each do
|
399
|
+
@page_1 = create(:page, title: 'Page 1', slug: 'page1')
|
400
|
+
@page_2 = create(:page, title: 'Page 2', slug: 'page1')
|
401
|
+
@page_3 = create(:page, title: 'Page 3', slug: 'page1')
|
402
|
+
end
|
403
|
+
|
404
|
+
it 'returns all pages that have a translation' do
|
405
|
+
expect(Kuhsaft::Page.translated).to eq [@page_1, @page_2, @page_3]
|
406
|
+
end
|
407
|
+
|
408
|
+
it 'does not return untranslated pages' do
|
409
|
+
I18n.with_locale :de do
|
410
|
+
@page_1.update(title: 'Page 1 fr', slug: 'page_1_fr')
|
411
|
+
expect(Kuhsaft::Page.translated).to eq [@page_1]
|
412
|
+
end
|
413
|
+
end
|
414
|
+
end
|
396
415
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,11 +1,9 @@
|
|
1
1
|
ENV["RAILS_ENV"] = "test"
|
2
2
|
|
3
3
|
require File.expand_path("../dummy/config/environment.rb", __FILE__)
|
4
|
-
|
5
|
-
|
6
|
-
require
|
7
|
-
require 'capybara/rails'
|
8
|
-
require 'rake'
|
4
|
+
[ 'rails/test_help', 'rspec/rails', 'factory_girl', 'capybara/rails',
|
5
|
+
'rake', 'database_cleaner', 'pry-debugger'
|
6
|
+
].each{|lib| require lib }
|
9
7
|
|
10
8
|
FactoryGirl.find_definitions
|
11
9
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kuhsaft
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Immanuel Häussermann
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2013-
|
15
|
+
date: 2013-08-21 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: rspec
|
@@ -71,7 +71,7 @@ dependencies:
|
|
71
71
|
- !ruby/object:Gem::Version
|
72
72
|
version: '2.0'
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
|
-
name:
|
74
|
+
name: pg
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
76
76
|
requirements:
|
77
77
|
- - '>='
|
@@ -252,6 +252,90 @@ dependencies:
|
|
252
252
|
- - '>='
|
253
253
|
- !ruby/object:Gem::Version
|
254
254
|
version: '0'
|
255
|
+
- !ruby/object:Gem::Dependency
|
256
|
+
name: jquery-rails
|
257
|
+
requirement: !ruby/object:Gem::Requirement
|
258
|
+
requirements:
|
259
|
+
- - '>='
|
260
|
+
- !ruby/object:Gem::Version
|
261
|
+
version: '0'
|
262
|
+
type: :runtime
|
263
|
+
prerelease: false
|
264
|
+
version_requirements: !ruby/object:Gem::Requirement
|
265
|
+
requirements:
|
266
|
+
- - '>='
|
267
|
+
- !ruby/object:Gem::Version
|
268
|
+
version: '0'
|
269
|
+
- !ruby/object:Gem::Dependency
|
270
|
+
name: database_cleaner
|
271
|
+
requirement: !ruby/object:Gem::Requirement
|
272
|
+
requirements:
|
273
|
+
- - '>='
|
274
|
+
- !ruby/object:Gem::Version
|
275
|
+
version: '0'
|
276
|
+
type: :development
|
277
|
+
prerelease: false
|
278
|
+
version_requirements: !ruby/object:Gem::Requirement
|
279
|
+
requirements:
|
280
|
+
- - '>='
|
281
|
+
- !ruby/object:Gem::Version
|
282
|
+
version: '0'
|
283
|
+
- !ruby/object:Gem::Dependency
|
284
|
+
name: pry-rails
|
285
|
+
requirement: !ruby/object:Gem::Requirement
|
286
|
+
requirements:
|
287
|
+
- - '>='
|
288
|
+
- !ruby/object:Gem::Version
|
289
|
+
version: '0'
|
290
|
+
type: :development
|
291
|
+
prerelease: false
|
292
|
+
version_requirements: !ruby/object:Gem::Requirement
|
293
|
+
requirements:
|
294
|
+
- - '>='
|
295
|
+
- !ruby/object:Gem::Version
|
296
|
+
version: '0'
|
297
|
+
- !ruby/object:Gem::Dependency
|
298
|
+
name: pry-debugger
|
299
|
+
requirement: !ruby/object:Gem::Requirement
|
300
|
+
requirements:
|
301
|
+
- - '>='
|
302
|
+
- !ruby/object:Gem::Version
|
303
|
+
version: '0'
|
304
|
+
type: :development
|
305
|
+
prerelease: false
|
306
|
+
version_requirements: !ruby/object:Gem::Requirement
|
307
|
+
requirements:
|
308
|
+
- - '>='
|
309
|
+
- !ruby/object:Gem::Version
|
310
|
+
version: '0'
|
311
|
+
- !ruby/object:Gem::Dependency
|
312
|
+
name: sass-rails
|
313
|
+
requirement: !ruby/object:Gem::Requirement
|
314
|
+
requirements:
|
315
|
+
- - '>='
|
316
|
+
- !ruby/object:Gem::Version
|
317
|
+
version: '0'
|
318
|
+
type: :runtime
|
319
|
+
prerelease: false
|
320
|
+
version_requirements: !ruby/object:Gem::Requirement
|
321
|
+
requirements:
|
322
|
+
- - '>='
|
323
|
+
- !ruby/object:Gem::Version
|
324
|
+
version: '0'
|
325
|
+
- !ruby/object:Gem::Dependency
|
326
|
+
name: inherited_resources
|
327
|
+
requirement: !ruby/object:Gem::Requirement
|
328
|
+
requirements:
|
329
|
+
- - '>='
|
330
|
+
- !ruby/object:Gem::Version
|
331
|
+
version: '0'
|
332
|
+
type: :runtime
|
333
|
+
prerelease: false
|
334
|
+
version_requirements: !ruby/object:Gem::Requirement
|
335
|
+
requirements:
|
336
|
+
- - '>='
|
337
|
+
- !ruby/object:Gem::Version
|
338
|
+
version: '0'
|
255
339
|
- !ruby/object:Gem::Dependency
|
256
340
|
name: rails
|
257
341
|
requirement: !ruby/object:Gem::Requirement
|
@@ -450,6 +534,7 @@ files:
|
|
450
534
|
- db/migrate/11_update_url_and_redirect_url_value.rb
|
451
535
|
- db/migrate/12_regenerate_fulltext.rb
|
452
536
|
- db/migrate/13_add_page_title_to_pages.rb
|
537
|
+
- db/migrate/14_move_kuhsaft_assets.rb
|
453
538
|
- db/seeds.rb
|
454
539
|
- lib/generators/kuhsaft/assets/install_generator.rb
|
455
540
|
- lib/generators/kuhsaft/translations/add_generator.rb
|
@@ -471,6 +556,7 @@ files:
|
|
471
556
|
- vendor/assets/stylesheets/nestable.css
|
472
557
|
- Rakefile
|
473
558
|
- README.md
|
559
|
+
- spec/controllers/kuhsaft/cms/admin_controller_spec.rb
|
474
560
|
- spec/controllers/kuhsaft/pages_controller_spec.rb
|
475
561
|
- spec/dummy/Rakefile
|
476
562
|
- spec/dummy/app/assets/images/spec-image.png
|
@@ -568,6 +654,7 @@ signing_key:
|
|
568
654
|
specification_version: 4
|
569
655
|
summary: A tool that helps you to manage your content within your app.
|
570
656
|
test_files:
|
657
|
+
- spec/controllers/kuhsaft/cms/admin_controller_spec.rb
|
571
658
|
- spec/controllers/kuhsaft/pages_controller_spec.rb
|
572
659
|
- spec/dummy/Rakefile
|
573
660
|
- spec/dummy/app/assets/images/spec-image.png
|