knowledge_base 0.0.3 → 0.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/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
|