knowledge_base 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/knowledge_base/application_controller.rb +1 -1
- data/app/controllers/knowledge_base/articles_controller.rb +1 -11
- data/app/controllers/knowledge_base/categories_controller.rb +1 -7
- data/app/models/knowledge_base/article.rb +1 -9
- data/app/models/knowledge_base/category.rb +1 -12
- data/app/models/knowledge_base/sectionables/gallery.rb +6 -2
- data/app/models/knowledge_base/sectionables/image.rb +6 -2
- data/app/models/knowledge_base/sectionables/links.rb +6 -2
- data/app/models/knowledge_base/sectionables/list.rb +6 -2
- data/app/models/knowledge_base/sectionables/sectionable.rb +9 -0
- data/app/models/knowledge_base/sectionables/text.rb +5 -2
- data/app/models/knowledge_base/sectionables/video.rb +6 -2
- data/app/uploaders/knowledge_base/image_uploader.rb +0 -1
- data/app/views/knowledge_base/articles/_article.html.erb +17 -0
- data/app/views/knowledge_base/articles/show.html.erb +1 -11
- data/app/views/knowledge_base/categories/_category.html.erb +19 -0
- data/app/views/knowledge_base/categories/index.html.erb +9 -7
- data/app/views/knowledge_base/categories/show.html.erb +1 -15
- data/app/views/knowledge_base/sectionables/galleries/_gallery.html.erb +1 -1
- data/app/views/knowledge_base/sectionables/links/_links.html.erb +1 -1
- data/app/views/knowledge_base/sectionables/lists/_list.html.erb +2 -2
- data/config/initializers/routing.rb +15 -0
- data/config/locales/nb.yml +49 -0
- data/config/routes.rb +2 -2
- data/lib/knowledge_base.rb +5 -0
- data/lib/knowledge_base/concerns.rb +4 -0
- data/lib/knowledge_base/concerns/controllers.rb +4 -0
- data/lib/knowledge_base/concerns/controllers/articles_controller.rb +19 -0
- data/lib/knowledge_base/concerns/controllers/categories_controller.rb +15 -0
- data/lib/knowledge_base/concerns/models.rb +4 -0
- data/lib/knowledge_base/concerns/models/article.rb +22 -0
- data/lib/knowledge_base/concerns/models/category.rb +24 -0
- data/lib/knowledge_base/configuration.rb +19 -1
- data/lib/knowledge_base/engine.rb +6 -0
- data/lib/knowledge_base/seeds.rb +32 -0
- data/lib/knowledge_base/version.rb +1 -1
- data/lib/tasks/knowledge_base_tasks.rake +6 -4
- data/spec/dummy/db/seeds.rb +1 -28
- data/spec/lib/knowledge_base/configuration_spec.rb +24 -8
- data/spec/lib/knowledge_base_spec.rb +19 -0
- metadata +36 -45
- data/MIT-LICENSE +0 -20
- data/app/views/layouts/knowledge_base/application.html.erb +0 -14
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/log/development.log +0 -12030
- data/spec/dummy/log/test.log +0 -917
- data/spec/dummy/tmp/cache/assets/development/sprockets/062b47a3a70e4df7224b893bf001a98f +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/183c0bd4fe8641adfc2b9f735484664a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2f86727a5dfdf38270057bb8a6b140bc +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/32c50a0141ffd19eb481b35a22532865 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/806fae72d2de8ab235cdf1503e8c950b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/e9c371dd2bf884ad2ab7c34915daf486 +0 -0
- data/spec/dummy/tmp/pids/server.pid +0 -1
- data/spec/fixtures/parrot.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 902f665c6b7069b91bfb814f3ac35a037b84dba8
|
4
|
+
data.tar.gz: b07ccea2e4bbd55331fdf4450e7f2f3ae854d755
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2b61a7f8da04f0203a213b49057ef44d4b4eb9901af0468000378bc475a0262322784b32b6b29897309b1f09fc9ead01e2dab5102785e53ab401dea25d625e72
|
7
|
+
data.tar.gz: 95974a702dcf790fa2a60d5f974fad3963c02817242c2b5121668354a1fdab44546b5840db151a61f4e4979a5cdf23beef122f9b556fe98c0e360f89436880c7
|
@@ -2,16 +2,6 @@ require_dependency "knowledge_base/application_controller"
|
|
2
2
|
|
3
3
|
module KnowledgeBase
|
4
4
|
class ArticlesController < ApplicationController
|
5
|
-
|
6
|
-
|
7
|
-
def show
|
8
|
-
@article = @category.articles.friendly.find params[:id]
|
9
|
-
end
|
10
|
-
|
11
|
-
private
|
12
|
-
|
13
|
-
def set_category
|
14
|
-
@category = Category.friendly.find params[:category_id]
|
15
|
-
end
|
5
|
+
include Concerns::Controllers::ArticlesController
|
16
6
|
end
|
17
7
|
end
|
@@ -2,12 +2,6 @@ require_dependency "knowledge_base/application_controller"
|
|
2
2
|
|
3
3
|
module KnowledgeBase
|
4
4
|
class CategoriesController < ApplicationController
|
5
|
-
|
6
|
-
@categories = Category.all
|
7
|
-
end
|
8
|
-
|
9
|
-
def show
|
10
|
-
@category = Category.friendly.find params[:id]
|
11
|
-
end
|
5
|
+
include Concerns::Controllers::CategoriesController
|
12
6
|
end
|
13
7
|
end
|
@@ -1,13 +1,5 @@
|
|
1
1
|
module KnowledgeBase
|
2
2
|
class Article < ActiveRecord::Base
|
3
|
-
|
4
|
-
|
5
|
-
publishable
|
6
|
-
|
7
|
-
friendly_id :title, use: :slugged
|
8
|
-
|
9
|
-
has_many :category_article_associations
|
10
|
-
has_many :categories, through: :category_article_associations
|
11
|
-
has_many :sections, -> { order 'position ASC' }, as: :container
|
3
|
+
include Concerns::Models::Article
|
12
4
|
end
|
13
5
|
end
|
@@ -1,16 +1,5 @@
|
|
1
1
|
module KnowledgeBase
|
2
2
|
class Category < ActiveRecord::Base
|
3
|
-
|
4
|
-
|
5
|
-
publishable
|
6
|
-
|
7
|
-
friendly_id :title, use: :slugged
|
8
|
-
|
9
|
-
belongs_to :category
|
10
|
-
has_many :category_article_associations
|
11
|
-
has_many :articles, through: :category_article_associations
|
12
|
-
|
13
|
-
scope :root, -> { where parent_id: nil }
|
14
|
-
scope :published, -> { where published: true }
|
3
|
+
include Concerns::Models::Category
|
15
4
|
end
|
16
5
|
end
|
@@ -1,9 +1,13 @@
|
|
1
|
-
module KnowledgeBase
|
2
|
-
class
|
1
|
+
module KnowledgeBase::Sectionables
|
2
|
+
class Video < Sectionable
|
3
3
|
VIDEO_ID_EXPRESSION = %r{^https?://(?:(?:www|m)\.)?youtube\.com/watch\?v=([^&]+)}
|
4
4
|
|
5
5
|
def youtube_id
|
6
6
|
url[VIDEO_ID_EXPRESSION, 1]
|
7
7
|
end
|
8
|
+
|
9
|
+
def to_s
|
10
|
+
"#{super}: #{url}"
|
11
|
+
end
|
8
12
|
end
|
9
13
|
end
|
@@ -9,7 +9,6 @@ module KnowledgeBase
|
|
9
9
|
|
10
10
|
# Choose what kind of storage to use for this uploader:
|
11
11
|
storage KnowledgeBase.config.storage
|
12
|
-
# storage :fog
|
13
12
|
|
14
13
|
# Override the directory where uploaded files will be stored.
|
15
14
|
# This is a sensible default for uploaders that are meant to be mounted:
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<div class="article">
|
2
|
+
<div class="meta">
|
3
|
+
<h1 class="title"><%= article.title %></h1>
|
4
|
+
|
5
|
+
<div class="description">
|
6
|
+
<%= simple_format article.description %>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="sections">
|
11
|
+
<% article.sections.each do |section| %>
|
12
|
+
<div class="<%= section.sectionable.class.name.demodulize.downcase %> section">
|
13
|
+
<%= render section.sectionable %>
|
14
|
+
</div>
|
15
|
+
<% end %>
|
16
|
+
</div>
|
17
|
+
</div>
|
@@ -1,11 +1 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
<div class="description">
|
4
|
-
<%= simple_format @article.description %>
|
5
|
-
|
6
|
-
<% @article.sections.each do |section| %>
|
7
|
-
<div class="<%= section.sectionable.class.name.demodulize.downcase %> section">
|
8
|
-
<%= render section.sectionable %>
|
9
|
-
</div>
|
10
|
-
<% end %>
|
11
|
-
</div>
|
1
|
+
<%= render @article %>
|
@@ -0,0 +1,19 @@
|
|
1
|
+
<div class="category">
|
2
|
+
<div class="meta">
|
3
|
+
<h1 class="title"><%= category.title %></h1>
|
4
|
+
|
5
|
+
<div class="description">
|
6
|
+
<%= simple_format category.description %>
|
7
|
+
</div>
|
8
|
+
</div>
|
9
|
+
|
10
|
+
<div class="articles">
|
11
|
+
<% category.articles.each do |article| %>
|
12
|
+
<div class="article">
|
13
|
+
<h2 class="title"><%= link_to article.title, category_article_path(category, article) %></h2>
|
14
|
+
|
15
|
+
<div class="description"><%= simple_format article.description %></div>
|
16
|
+
</div>
|
17
|
+
<% end %>
|
18
|
+
</div>
|
19
|
+
</div>
|
@@ -1,11 +1,13 @@
|
|
1
|
-
<h1>Categories</h1>
|
2
|
-
|
3
1
|
<div class="categories">
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
<h1>Categories</h1>
|
3
|
+
|
4
|
+
<div class="list">
|
5
|
+
<% @categories.each do |category| %>
|
6
|
+
<div class="category">
|
7
|
+
<h2 class="title"><%= link_to category.title, category %></h2>
|
7
8
|
|
8
|
-
|
9
|
+
<div class="description"><%= simple_format category.description %></div>
|
10
|
+
</div>
|
11
|
+
<% end %>
|
9
12
|
</div>
|
10
|
-
<% end %>
|
11
13
|
</div>
|
@@ -1,15 +1 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
<div class="description">
|
4
|
-
<%= simple_format @category.description %>
|
5
|
-
</div>
|
6
|
-
|
7
|
-
<div class="articles">
|
8
|
-
<% @category.articles.each do |article| %>
|
9
|
-
<div class="article">
|
10
|
-
<h2 class="title"><%= link_to article.title, category_article_path(@category, article) %></h2>
|
11
|
-
|
12
|
-
<div class="description"><%= simple_format article.description %></div>
|
13
|
-
</div>
|
14
|
-
<% end %>
|
15
|
-
</div>
|
1
|
+
<%= render @category %>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module KnowledgeBase
|
2
|
+
module ApplicationHelper
|
3
|
+
|
4
|
+
# Knowledge base uses the layout of the client application, which causes Rails' url helpers to get confused
|
5
|
+
# and require you to prepend 'main_app' to your own routes. This hack allows developers to keep referring to
|
6
|
+
# routes without a prefix by sending undefined routes to 'main_app' before failing.
|
7
|
+
def method_missing(method, *args, &block)
|
8
|
+
if (method.to_s.end_with?('_path') || method.to_s.end_with?('_url')) && main_app.respond_to?(method)
|
9
|
+
main_app.send(method, *args)
|
10
|
+
else
|
11
|
+
super
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
nb:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
knowledge_base/category:
|
5
|
+
one: Kategori
|
6
|
+
other: Kategorier
|
7
|
+
knowledge_base/article:
|
8
|
+
one: Artikkel
|
9
|
+
other: Artikler
|
10
|
+
knowledge_base/category_article_association:
|
11
|
+
one: Lenke
|
12
|
+
other: Lenker
|
13
|
+
knowledge_base/section:
|
14
|
+
one: Seksjon
|
15
|
+
other: Seksjoner
|
16
|
+
attributes:
|
17
|
+
knowledge_base/category:
|
18
|
+
title: Tittel
|
19
|
+
slug: Slug
|
20
|
+
description: Beskrivelse
|
21
|
+
category: Kategori
|
22
|
+
category_id: Kategori
|
23
|
+
position: Plassering
|
24
|
+
published_at: Publisert
|
25
|
+
created_at: Opprettet
|
26
|
+
updated_at: Oppdatert
|
27
|
+
knowledge_base/article:
|
28
|
+
title: Tittel
|
29
|
+
slug: slug
|
30
|
+
description: Beskrivelse
|
31
|
+
category_article_assocations: Lenker mellom kategorier og artikler
|
32
|
+
categories: Kategorier
|
33
|
+
sections: Seksjoner
|
34
|
+
published_at: Publisert
|
35
|
+
created_at: Opprettet
|
36
|
+
updated_at: Oppdatert
|
37
|
+
knowledge_base/category_article_association:
|
38
|
+
category: Kategori
|
39
|
+
category_id: Kategori
|
40
|
+
article: Artikkel
|
41
|
+
article_id: Artikkel
|
42
|
+
position: Plassering
|
43
|
+
created_at: Opprettet
|
44
|
+
updated_at: Oppdatert
|
45
|
+
knowledge_base/section:
|
46
|
+
sectionable: Innhold
|
47
|
+
position: Plassering
|
48
|
+
created_at: Opprettet
|
49
|
+
updated_at: Oppdatert
|
data/config/routes.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
KnowledgeBase::Engine.routes.draw do
|
2
|
-
resources :categories, only: [:index, :show] do
|
3
|
-
resources :articles, only: [:show]
|
2
|
+
resources :categories, path: KnowledgeBase.config.categories_path, only: [:index, :show] do
|
3
|
+
resources :articles, path: KnowledgeBase.config.articles_path, only: [:show]
|
4
4
|
end
|
5
5
|
end
|
data/lib/knowledge_base.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "knowledge_base/engine"
|
2
2
|
require "knowledge_base/configuration"
|
3
|
+
require "knowledge_base/concerns"
|
3
4
|
require "carrierwave"
|
4
5
|
|
5
6
|
module KnowledgeBase
|
@@ -11,5 +12,9 @@ module KnowledgeBase
|
|
11
12
|
def config
|
12
13
|
@config ||= KnowledgeBase::Configuration.new
|
13
14
|
end
|
15
|
+
|
16
|
+
def reset
|
17
|
+
@config = nil
|
18
|
+
end
|
14
19
|
end
|
15
20
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module KnowledgeBase
|
2
|
+
module Concerns::Controllers::ArticlesController
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
before_action :set_category
|
7
|
+
|
8
|
+
def show
|
9
|
+
@article = @category.articles.friendly.find params[:id]
|
10
|
+
end
|
11
|
+
|
12
|
+
private
|
13
|
+
|
14
|
+
def set_category
|
15
|
+
@category = Category.friendly.find params[:category_id]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module KnowledgeBase
|
2
|
+
module Concerns::Controllers::CategoriesController
|
3
|
+
extend ActiveSupport::Concern
|
4
|
+
|
5
|
+
included do
|
6
|
+
def index
|
7
|
+
@categories = Category.all
|
8
|
+
end
|
9
|
+
|
10
|
+
def show
|
11
|
+
@category = Category.friendly.find params[:id]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|