cmor_links 0.0.1.pre
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 +7 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +76 -0
- data/Rakefile +19 -0
- data/app/controllers/cmor/links/categories_controller.rb +11 -0
- data/app/decorators/cmor/links/category_decorator.rb +17 -0
- data/app/models/cmor/links/category.rb +90 -0
- data/app/models/cmor/links/link.rb +50 -0
- data/app/view_helpers/cmor/links/application_view_helper.rb +19 -0
- data/app/views/cmor/links/application_view_helper/_render_footer.html.erb +14 -0
- data/app/views/cmor/links/categories/_category.html.erb +22 -0
- data/app/views/cmor/links/categories/_category_in_index.html.erb +5 -0
- data/app/views/cmor/links/categories/index.html.erb +5 -0
- data/app/views/cmor/links/categories/show.html.erb +9 -0
- data/app/views/cmor/links/links/_link.html.erb +1 -0
- data/app/views/cmor/links/links/_link_in_table.html.erb +5 -0
- data/app/views/cmor/links/links/_table.html.erb +7 -0
- data/config/locales/de.yml +46 -0
- data/config/locales/en.yml +45 -0
- data/config/routes.rb +7 -0
- data/db/migrate/001_create_cmor_links_categories.rb +23 -0
- data/db/migrate/002_create_cmor_links_links.rb +19 -0
- data/lib/cmor/links/configuration.rb +33 -0
- data/lib/cmor/links/engine.rb +8 -0
- data/lib/cmor/links/version.rb +7 -0
- data/lib/cmor/links.rb +14 -0
- data/lib/cmor_links.rb +11 -0
- data/lib/generators/cmor/links/install/install_generator.rb +27 -0
- data/lib/generators/cmor/links/install/templates/initializer.rb +29 -0
- data/lib/generators/cmor/links/install/templates/routes.source +3 -0
- data/lib/generators/cmor/links/locales/locales_generator.rb +20 -0
- data/lib/tasks/cmor_links_tasks.rake +49 -0
- data/spec/factories/cmor_links_categories.rb +16 -0
- data/spec/factories/cmor_links_links.rb +7 -0
- metadata +426 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: f53a7a6bdb2c5e945299e940cb6d11fc41aee43d8f3d9e92e7eeaf94d93befd3
|
4
|
+
data.tar.gz: fd510ba858006e7021fc0da12b4bd397ea2d7874fe1d24d2d6ecb5b3d8bbac9e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 705cb816143d684a004f15163a934780c9a222d2d9ec09d8c69309dc6c5822338836070e39790866ae31709e63d7668cde0b9ce8f67cadff2b573d8ae9781dc2
|
7
|
+
data.tar.gz: c98b4fed7f359dfd043b0425885a446b7cca7bbf9a93a944a136c1b442891cda2f46f539d51de369a925b25d2741e732bdb0247e30ed927ce91bd9b94f4e89b8
|
data/MIT-LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright 2015 Roberto Vasquez Angel
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.rdoc
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
= CMOR Links
|
2
|
+
|
3
|
+
= Migrating from 1.x.x to 2.0.0
|
4
|
+
|
5
|
+
Add active_admin-awesome_nested_set to your gemfile, if you are using activeadmin:
|
6
|
+
|
7
|
+
# Gemfile
|
8
|
+
gem 'active_admin-acts_as_list'
|
9
|
+
gem 'active_admin-awesome_nested_set'
|
10
|
+
|
11
|
+
|
12
|
+
= Prerequisites
|
13
|
+
|
14
|
+
if you are using activeadmin as backend, cmor_cms2 comes with admin files to provide a backend. In that case, you'll need active_admin-acts_as_list and active_admin-awesome_nested_set. Add it to your gemfile:
|
15
|
+
|
16
|
+
# Gemfile
|
17
|
+
gem 'active_admin-acts_as_list'
|
18
|
+
gem 'active_admin-awesome_nested_set'
|
19
|
+
|
20
|
+
|
21
|
+
= Installation
|
22
|
+
|
23
|
+
Add it to your gemfile:
|
24
|
+
|
25
|
+
# Gemfile
|
26
|
+
gem 'cmor_links2'
|
27
|
+
|
28
|
+
Install your bundle:
|
29
|
+
|
30
|
+
> bundle install
|
31
|
+
|
32
|
+
Generate initializer:
|
33
|
+
|
34
|
+
> rails generate cmor:links:install
|
35
|
+
|
36
|
+
Generatre the migrations:
|
37
|
+
|
38
|
+
> rake cmor_links_engine:install:migrations
|
39
|
+
|
40
|
+
Migrate:
|
41
|
+
|
42
|
+
> rake db:migrate
|
43
|
+
|
44
|
+
|
45
|
+
== Optional: Generate locale files
|
46
|
+
|
47
|
+
You may want to copy the locales to your app:
|
48
|
+
|
49
|
+
> rails generate cmor:links:locales
|
50
|
+
|
51
|
+
= Usage
|
52
|
+
|
53
|
+
Use the helper to display the link footer:
|
54
|
+
|
55
|
+
# i.e. app/views/layouts/application.html.erb
|
56
|
+
<%= render_link_footer %>
|
57
|
+
|
58
|
+
== Optional: Display a link tree
|
59
|
+
|
60
|
+
To display a link tree, you have to add the routes:
|
61
|
+
|
62
|
+
# config/routes.rb
|
63
|
+
Cmor::Links::Routing.routes(self)
|
64
|
+
|
65
|
+
This will give you a route to /cmor_links_categories
|
66
|
+
|
67
|
+
= Running specs
|
68
|
+
|
69
|
+
gem install bundler
|
70
|
+
bundle
|
71
|
+
cd spec/dummy && rake db:migrate RAILS_ENV=test && cd ../..
|
72
|
+
guard
|
73
|
+
|
74
|
+
= License
|
75
|
+
|
76
|
+
This project rocks and uses MIT-LICENSE.
|
data/Rakefile
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
begin
|
2
|
+
require 'bundler/setup'
|
3
|
+
rescue LoadError
|
4
|
+
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
5
|
+
end
|
6
|
+
|
7
|
+
require 'rdoc/task'
|
8
|
+
|
9
|
+
RDoc::Task.new(:rdoc) do |rdoc|
|
10
|
+
rdoc.rdoc_dir = 'rdoc'
|
11
|
+
rdoc.title = 'Cmor::Links'
|
12
|
+
rdoc.options << '--line-numbers'
|
13
|
+
rdoc.rdoc_files.include('README.rdoc')
|
14
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
15
|
+
end
|
16
|
+
|
17
|
+
Bundler::GemHelper.install_tasks
|
18
|
+
|
19
|
+
require 'rails/dummy/tasks'
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Cmor::Links
|
2
|
+
class CategoryDecorator < Draper::Decorator
|
3
|
+
delegate_all
|
4
|
+
|
5
|
+
def links_count_label
|
6
|
+
h.content_tag(:span, links_count, class: 'badge')
|
7
|
+
end
|
8
|
+
|
9
|
+
def locale_label
|
10
|
+
h.content_tag(:span, locale, class: 'label label-info')
|
11
|
+
end
|
12
|
+
|
13
|
+
def tree_name
|
14
|
+
name
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require_dependency 'redcloth'
|
2
|
+
|
3
|
+
module Cmor::Links
|
4
|
+
class Category < ActiveRecord::Base
|
5
|
+
# associations
|
6
|
+
has_many :links, -> { order(:position) },
|
7
|
+
dependent: :destroy
|
8
|
+
|
9
|
+
accepts_nested_attributes_for :links, allow_destroy: true
|
10
|
+
|
11
|
+
# awesome nested set
|
12
|
+
acts_as_nested_set
|
13
|
+
default_scope { order(lft: :asc) }
|
14
|
+
|
15
|
+
# callbacks
|
16
|
+
after_initialize :set_defaults
|
17
|
+
|
18
|
+
# friendly id
|
19
|
+
extend FriendlyId
|
20
|
+
friendly_id :name, use: [:slugged, :finders]
|
21
|
+
|
22
|
+
# validations
|
23
|
+
validates :locale, presence: true, if: proc { |c| c.parent.nil? }
|
24
|
+
validates :locale, absence: true, if: proc { |c| !c.parent.nil? }
|
25
|
+
validates :name, presence: true,
|
26
|
+
uniqueness: { scope: [:parent_id] }
|
27
|
+
validates :markup_language, presence: true,
|
28
|
+
inclusion: Configuration.markup_languages.map(&:to_s)
|
29
|
+
|
30
|
+
def human
|
31
|
+
name
|
32
|
+
end
|
33
|
+
|
34
|
+
def to_s
|
35
|
+
human
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.for_actual_locale
|
39
|
+
where(locale: I18n.locale)
|
40
|
+
end
|
41
|
+
|
42
|
+
def self.for_link_footer
|
43
|
+
where(arel_table['link_footer_column'].not_eq(nil)).for_actual_locale
|
44
|
+
end
|
45
|
+
|
46
|
+
def long_description(options = {})
|
47
|
+
options.reverse_merge!(as: :plain)
|
48
|
+
case options[:as]
|
49
|
+
when :html
|
50
|
+
markup(self[:long_description])
|
51
|
+
else
|
52
|
+
self[:long_description]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def short_description(options = {})
|
57
|
+
options.reverse_merge!(as: :plain)
|
58
|
+
case options[:as]
|
59
|
+
when :html
|
60
|
+
markup(self[:short_description])
|
61
|
+
else
|
62
|
+
self[:short_description]
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def links_count
|
67
|
+
links.count
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
def markup(text)
|
73
|
+
case markup_language.to_sym
|
74
|
+
when :textile
|
75
|
+
return unless text
|
76
|
+
RedCloth.new(text).to_html
|
77
|
+
when :none
|
78
|
+
text
|
79
|
+
else
|
80
|
+
fail "Unsupported markup language #{markup_language}"
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def set_defaults
|
85
|
+
if self.new_record?
|
86
|
+
self.markup_language ||= Configuration.default_markup_language.to_s
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require_dependency 'redcloth'
|
2
|
+
|
3
|
+
class Cmor::Links::Link < ActiveRecord::Base
|
4
|
+
# acts as list
|
5
|
+
acts_as_list scope: :category
|
6
|
+
|
7
|
+
# associations
|
8
|
+
belongs_to :category, optional: true
|
9
|
+
|
10
|
+
|
11
|
+
# callbacks
|
12
|
+
after_initialize :set_defaults
|
13
|
+
|
14
|
+
# constants
|
15
|
+
MARKUP_LANGUAGES = %w(markdown textile rdoc)
|
16
|
+
|
17
|
+
# validations
|
18
|
+
validates :name, presence: true
|
19
|
+
validates :url, presence: true
|
20
|
+
validates :markup_language, presence: true,
|
21
|
+
inclusion: MARKUP_LANGUAGES
|
22
|
+
|
23
|
+
def description(options = {})
|
24
|
+
options.reverse_merge!(as: :plain)
|
25
|
+
case options[:as]
|
26
|
+
when :html
|
27
|
+
markup(self[:description])
|
28
|
+
else
|
29
|
+
self[:description]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def markup(text)
|
36
|
+
case markup_language.to_sym
|
37
|
+
when :textile
|
38
|
+
return unless text
|
39
|
+
RedCloth.new(text).to_html
|
40
|
+
when :none
|
41
|
+
text
|
42
|
+
else
|
43
|
+
fail "Unsupported markup language #{markup_language}"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def set_defaults
|
48
|
+
self.markup_language ||= 'textile' if self.new_record?
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module Cmor
|
2
|
+
module Links
|
3
|
+
class ApplicationViewHelper < Rao::ViewHelper::Base
|
4
|
+
def render_footer(categories = nil)
|
5
|
+
categories = categories || Cmor::Links::Category.for_link_footer.all
|
6
|
+
grouped_categories = categories.group_by(&:link_footer_column)
|
7
|
+
c.render partial: 'cmor/links/application_view_helper/render_footer', locals: { categories: grouped_categories }
|
8
|
+
end
|
9
|
+
|
10
|
+
def render_category(category)
|
11
|
+
c.render partial: "cmor/links/categories/category", locals: { category: category }
|
12
|
+
end
|
13
|
+
|
14
|
+
def render_link(link)
|
15
|
+
c.render partial: "cmor/links/links/link", locals: { link: link }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="row link-footer">
|
2
|
+
<% Cmor::Links::Configuration.link_footer_columns.times do |column| %>
|
3
|
+
<div class="column-<%= column + 1 %> <%= Cmor::Links::Configuration.link_footer_column_css_classes.join(' ') %>">
|
4
|
+
<% categories[column + 1].each do |c| %>
|
5
|
+
<h4><%= c.name %></h4>
|
6
|
+
<ul>
|
7
|
+
<% c.links.each do |l| %>
|
8
|
+
<li><%= render partial: 'cmor/links/links/link', locals: { link: l } %></li>
|
9
|
+
<% end %>
|
10
|
+
</ul>
|
11
|
+
<% end if categories.has_key?(column + 1) %>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<div class="link_category category" id="<%= dom_id(category) %>">
|
2
|
+
<h1><%= category.name %></h1>
|
3
|
+
|
4
|
+
<% unless category.long_description.blank? %>
|
5
|
+
<div class="link_categories-description">
|
6
|
+
<p><%= category.long_description %></p>
|
7
|
+
</div>
|
8
|
+
<% end %>
|
9
|
+
|
10
|
+
<div class="list-group">
|
11
|
+
<%= render partial: 'cmor/links/categories/category_in_index', collection: Cmor::Links::CategoryDecorator.decorate_collection(category.descendants), as: :category %>
|
12
|
+
</div>
|
13
|
+
|
14
|
+
<div class="download_category-downloads item_list">
|
15
|
+
<h2><%= Cmor::Links::Category.human_attribute_name(:cmor_links_links) %></h2>
|
16
|
+
<% if category.links.count == 0 %>
|
17
|
+
<p><%= t('cmor.links.category.messages.no_links_available') %></p>
|
18
|
+
<% else %>
|
19
|
+
<%= render partial: 'cmor/links/links/table', locals: { links: category.links } %>
|
20
|
+
<% end %>
|
21
|
+
</div>
|
22
|
+
</div>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<%= render @category %>
|
2
|
+
|
3
|
+
<div class="well">
|
4
|
+
<% if @category.root? %>
|
5
|
+
<%= link_to(t('cmor.links.category.actions.back_to_index'), cmor_links.categories_path, class: 'btn btn-default') if respond_to?(:cmor_links_categories_path) %>
|
6
|
+
<% else %>
|
7
|
+
<%= link_to(Cmor::Links::Category.human_attribute_name(:parent), @category.parent, class: 'btn btn-default') %>
|
8
|
+
<% end %>
|
9
|
+
</div>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= link_to link.name, link.url, { title: link.description } %>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<tr class="<%= link.class.name.underscore.gsub('/', ' ') %>" id="<%= "#{link.class.name.underscore.gsub('/', '-')}-#{link.to_param}" %>">
|
2
|
+
<td><%= link_to link.name, link.url %></td>
|
3
|
+
<td><%= link_to link.category.human, link.category %></td>
|
4
|
+
<td><%= link.description(as: :html).html_safe %></td>
|
5
|
+
</tr>
|
@@ -0,0 +1,46 @@
|
|
1
|
+
de:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
cmor/links/category:
|
5
|
+
one: Link Kategorie
|
6
|
+
other: Link Kategorien
|
7
|
+
cmor/links/link:
|
8
|
+
one: Link
|
9
|
+
other: Links
|
10
|
+
attributes:
|
11
|
+
cmor/links/category:
|
12
|
+
id: ID
|
13
|
+
children: Unterkategorien
|
14
|
+
created_at: Erstellt am
|
15
|
+
depth: Tiefe
|
16
|
+
lft: Links
|
17
|
+
link_footer_column: Link Footer Spalte
|
18
|
+
links: Links
|
19
|
+
links_count: Links
|
20
|
+
locale: Sprache
|
21
|
+
long_description: Langbeschreibung
|
22
|
+
markup_language: Markup Sprache
|
23
|
+
name: Name
|
24
|
+
parent: Übergeordnete Kategorie
|
25
|
+
parent_id: Übergeordnete Kategorie
|
26
|
+
rgt: Rechts
|
27
|
+
short_description: Kurzbeschreibung
|
28
|
+
slug: Freundliche ID
|
29
|
+
updated_at: Aktualisiert am
|
30
|
+
cmor/links/link:
|
31
|
+
id: ID
|
32
|
+
category: Link Kategorie
|
33
|
+
category_id: Link Kategorie
|
34
|
+
created_at: Erstellt am
|
35
|
+
description: Beschreibung
|
36
|
+
link_actions: ''
|
37
|
+
markup_language: Markup Sprache
|
38
|
+
name: Name
|
39
|
+
position: Position
|
40
|
+
updated_at: Aktualisiert am
|
41
|
+
url: URL
|
42
|
+
routes:
|
43
|
+
cmor_links_engine: links
|
44
|
+
categories: kategorien
|
45
|
+
links: links
|
46
|
+
|
@@ -0,0 +1,45 @@
|
|
1
|
+
en:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
cmor/links/category:
|
5
|
+
one: link category
|
6
|
+
other: link categories
|
7
|
+
cmor/links/link:
|
8
|
+
one: link
|
9
|
+
other: links
|
10
|
+
attributes:
|
11
|
+
cmor/links/category:
|
12
|
+
id: ID
|
13
|
+
children: Subcategories
|
14
|
+
created_at: created at
|
15
|
+
depth: depth
|
16
|
+
lft: left
|
17
|
+
link_footer_column: link footer column
|
18
|
+
links: links
|
19
|
+
links_count: links
|
20
|
+
locale: language
|
21
|
+
long_description: long description
|
22
|
+
markup_language: markup language
|
23
|
+
name: name
|
24
|
+
parent: parent category
|
25
|
+
parent_id: parent category
|
26
|
+
rgt: right
|
27
|
+
short_description: short description
|
28
|
+
slug: friendly id
|
29
|
+
updated_at: updated at
|
30
|
+
cmor/links/link:
|
31
|
+
id: ID
|
32
|
+
category: link category
|
33
|
+
category_id: link category
|
34
|
+
created_at: created at
|
35
|
+
description: description
|
36
|
+
link_action: ''
|
37
|
+
markup_language: markup language
|
38
|
+
name: name
|
39
|
+
position: position
|
40
|
+
updated_at: updated at
|
41
|
+
url: url
|
42
|
+
routes:
|
43
|
+
cmor_links_engine: links
|
44
|
+
categories: categories
|
45
|
+
links: links
|
data/config/routes.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
class CreateCmorLinksCategories < ActiveRecord::Migration[4.2]
|
2
|
+
def change
|
3
|
+
create_table :cmor_links_categories do |t|
|
4
|
+
t.string :locale
|
5
|
+
t.string :name
|
6
|
+
t.text :short_description
|
7
|
+
t.text :long_description
|
8
|
+
t.string :markup_language
|
9
|
+
t.integer :link_footer_column
|
10
|
+
|
11
|
+
# awesome nested set
|
12
|
+
t.integer :lft
|
13
|
+
t.integer :rgt
|
14
|
+
t.integer :parent_id
|
15
|
+
t.integer :depth
|
16
|
+
|
17
|
+
# friendly id
|
18
|
+
t.string :slug
|
19
|
+
|
20
|
+
t.timestamps
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
class CreateCmorLinksLinks < ActiveRecord::Migration[4.2]
|
2
|
+
def change
|
3
|
+
create_table :cmor_links_links do |t|
|
4
|
+
t.string :name
|
5
|
+
t.string :url
|
6
|
+
t.text :description
|
7
|
+
t.string :markup_language
|
8
|
+
|
9
|
+
# associations
|
10
|
+
t.references :category
|
11
|
+
|
12
|
+
# acts as list
|
13
|
+
t.integer :position
|
14
|
+
|
15
|
+
t.timestamps
|
16
|
+
end
|
17
|
+
add_index :cmor_links_links, :category_id
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'active_support/core_ext/module/delegation'
|
2
|
+
require 'active_support/core_ext/module/attribute_accessors'
|
3
|
+
require 'active_support/hash_with_indifferent_access'
|
4
|
+
|
5
|
+
module Cmor
|
6
|
+
module Links
|
7
|
+
module Configuration
|
8
|
+
def configure
|
9
|
+
yield self
|
10
|
+
end
|
11
|
+
|
12
|
+
mattr_accessor :link_footer_columns do
|
13
|
+
4
|
14
|
+
end
|
15
|
+
|
16
|
+
mattr_accessor :link_footer_column_css_classes do
|
17
|
+
'link-footer-column col-lg-3'
|
18
|
+
end
|
19
|
+
|
20
|
+
mattr_accessor :base_controller do
|
21
|
+
'ApplicationController'
|
22
|
+
end
|
23
|
+
|
24
|
+
mattr_accessor :default_markup_language do
|
25
|
+
'textile'
|
26
|
+
end
|
27
|
+
|
28
|
+
mattr_accessor :markup_languages do
|
29
|
+
['textile']
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/lib/cmor/links.rb
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
require 'cmor/links/configuration'
|
2
|
+
require 'cmor/links/engine'
|
3
|
+
|
4
|
+
module Cmor
|
5
|
+
module Links
|
6
|
+
extend Configuration
|
7
|
+
|
8
|
+
def self.table_name_prefix
|
9
|
+
'cmor_links_'
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
Cmor.configure { |c| c.register_configuration(:links, Cmor::Links) }
|
data/lib/cmor_links.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
module Cmor
|
2
|
+
module Links
|
3
|
+
module Generators
|
4
|
+
class InstallGenerator < Rails::Generators::Base
|
5
|
+
desc 'Generates the initializer'
|
6
|
+
|
7
|
+
source_root File.expand_path('../templates', __FILE__)
|
8
|
+
|
9
|
+
attr_reader :base_controller_class_name
|
10
|
+
|
11
|
+
def initialize(*args)
|
12
|
+
super
|
13
|
+
@base_controller_class_name = ENV.fetch('BASE_CONTROLLER_CLASS_NAME') { '::ApplicationController' }
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
def generate_initializer
|
18
|
+
template 'initializer.rb', 'config/initializers/cmor_links.rb'
|
19
|
+
end
|
20
|
+
|
21
|
+
def generate_routes
|
22
|
+
route File.read(File.join(File.expand_path('../templates', __FILE__), 'routes.source'))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
Cmor::Links.configure do |config|
|
2
|
+
# Configure your link footer columns here.
|
3
|
+
#
|
4
|
+
# Default: config.link_footer_columns = 4
|
5
|
+
#
|
6
|
+
config.link_footer_columns = 4
|
7
|
+
|
8
|
+
# Configure your link footer colum css classes here.
|
9
|
+
#
|
10
|
+
# Default: config.link_footer_column_css_classes = %w[ link-footer-column col-lg-3 ]
|
11
|
+
#
|
12
|
+
config.link_footer_column_css_classes = %w( link-footer-column col-lg-3 )
|
13
|
+
|
14
|
+
# Set the base controller for the contact form
|
15
|
+
#
|
16
|
+
# Default: config.base_controller = '<%= base_controller_class_name %>'
|
17
|
+
#
|
18
|
+
config.base_controller = '<%= base_controller_class_name %>'
|
19
|
+
|
20
|
+
# Accepted markup languages
|
21
|
+
#
|
22
|
+
# default: config.markup_languages = %w[ textile ]
|
23
|
+
config.markup_languages = %w( textile )
|
24
|
+
|
25
|
+
# Default markup language
|
26
|
+
#
|
27
|
+
# default: config.default_markup_language = 'textile'
|
28
|
+
config.default_markup_language = 'textile'
|
29
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Cmor
|
2
|
+
module Links
|
3
|
+
module Generators
|
4
|
+
class LocalesGenerator < Rails::Generators::Base
|
5
|
+
desc 'Copies the locale files to your application'
|
6
|
+
|
7
|
+
source_root File.expand_path('../../../../../../config/locales', __FILE__)
|
8
|
+
|
9
|
+
def generate_locales
|
10
|
+
copy_file 'cmor.links.category.en.yml', 'config/locales/cmor.links.category.en.yml'
|
11
|
+
copy_file 'cmor.links.category.de.yml', 'config/locales/cmor.links.category.de.yml'
|
12
|
+
copy_file 'cmor.links.en.yml', 'config/locales/cmor.links.en.yml'
|
13
|
+
copy_file 'cmor.links.de.yml', 'config/locales/cmor.links.de.yml'
|
14
|
+
copy_file 'cmor.links.link.en.yml', 'config/locales/cmor.links.link.en.yml'
|
15
|
+
copy_file 'cmor.links.link.de.yml', 'config/locales/cmor.links.link.de.yml'
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
namespace :cmor_links do
|
2
|
+
namespace :db do
|
3
|
+
desc 'Purges and creates example data'
|
4
|
+
task :populate!, [] => [:environment] do |_t, _args|
|
5
|
+
Rake::Task['cmor_links:db:clear!'].execute
|
6
|
+
Rake::Task['cmor_links:db:populate'].execute
|
7
|
+
end
|
8
|
+
|
9
|
+
desc 'Clears all data!'
|
10
|
+
task :clear!, [] => [:environment] do |_t, _args|
|
11
|
+
Cmor::Links::Category.delete_all
|
12
|
+
Cmor::Links::Link.delete_all
|
13
|
+
end
|
14
|
+
|
15
|
+
desc 'Creates example_data'
|
16
|
+
task :populate, [] => [:environment] do |_t, _args|
|
17
|
+
require 'ffaker'
|
18
|
+
require 'forgery'
|
19
|
+
|
20
|
+
# Create example categories
|
21
|
+
5.times do
|
22
|
+
Cmor::Links::Category.create! do |c|
|
23
|
+
c.locale = I18n.available_locales.map(&:to_s).choice
|
24
|
+
c.name = "#{Faker::Company.name} Category"
|
25
|
+
c.link_footer_column = [nil, 1, 2, 3, 4].choice
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
50.times do
|
30
|
+
Cmor::Links::Category.create! do |c|
|
31
|
+
c.parent = Cmor::Links::Category.all.choice
|
32
|
+
c.name = "#{Faker::Company.name} Category"
|
33
|
+
c.link_footer_column = [nil, 1, 2, 3, 4].choice
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# Create example links
|
38
|
+
categories = Cmor::Links::Category.all
|
39
|
+
50.times do
|
40
|
+
Cmor::Links::Link.create! do |l|
|
41
|
+
l.name = "#{Faker::Company.name} Link"
|
42
|
+
l.url = "#{Faker::Internet.http_url} Link"
|
43
|
+
l.description = Faker::Lorem.paragraph(rand(3))
|
44
|
+
l.cmor_links_category = categories.choice
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
FactoryBot.define do
|
2
|
+
factory :cmor_links_category, class: Cmor::Links::Category do
|
3
|
+
locale { I18n.locale }
|
4
|
+
sequence(:name) { |i| "Link category #{i}" }
|
5
|
+
markup_language { 'textile' }
|
6
|
+
|
7
|
+
factory(:cmor_links_category_with_parent) do
|
8
|
+
locale { nil }
|
9
|
+
association :parent, factory: :cmor_links_category
|
10
|
+
end
|
11
|
+
|
12
|
+
factory(:cmor_links_category_for_link_footer) do
|
13
|
+
link_footer_column { 1 }
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,426 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cmor_links
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1.pre
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Roberto Vasquez Angel
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-03-27 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rails
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 5.2.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 5.2.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: cmor_core
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.0.1.pre
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.0.1.pre
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: sqlite3
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.3.6
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.3.6
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: capybara
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: coveralls
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: factory_bot_rails
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: git_log_generator
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: guard-bundler
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: guard-rails
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: guard-rspec
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: pry-rails
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0'
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: rao-shoulda_matchers
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - ">="
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '0'
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - ">="
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '0'
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: rails-dummy
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - ">="
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: '0'
|
188
|
+
type: :development
|
189
|
+
prerelease: false
|
190
|
+
version_requirements: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: '0'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: rails-i18n
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: '0'
|
202
|
+
type: :development
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: '0'
|
209
|
+
- !ruby/object:Gem::Dependency
|
210
|
+
name: rspec-rails
|
211
|
+
requirement: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: '0'
|
216
|
+
type: :development
|
217
|
+
prerelease: false
|
218
|
+
version_requirements: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: rubocop
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: '0'
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - ">="
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: '0'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: shoulda-matchers
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: simplecov
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ">="
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0'
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: simplecov-console
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ">="
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '0'
|
272
|
+
type: :development
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - ">="
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '0'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: acts_as_list
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - ">="
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: '0'
|
286
|
+
type: :runtime
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - ">="
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '0'
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: awesome_nested_set
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - ">="
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '0'
|
300
|
+
type: :runtime
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - ">="
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '0'
|
307
|
+
- !ruby/object:Gem::Dependency
|
308
|
+
name: awesome_nested_set-tools
|
309
|
+
requirement: !ruby/object:Gem::Requirement
|
310
|
+
requirements:
|
311
|
+
- - ">="
|
312
|
+
- !ruby/object:Gem::Version
|
313
|
+
version: '0'
|
314
|
+
type: :runtime
|
315
|
+
prerelease: false
|
316
|
+
version_requirements: !ruby/object:Gem::Requirement
|
317
|
+
requirements:
|
318
|
+
- - ">="
|
319
|
+
- !ruby/object:Gem::Version
|
320
|
+
version: '0'
|
321
|
+
- !ruby/object:Gem::Dependency
|
322
|
+
name: friendly_id
|
323
|
+
requirement: !ruby/object:Gem::Requirement
|
324
|
+
requirements:
|
325
|
+
- - ">="
|
326
|
+
- !ruby/object:Gem::Version
|
327
|
+
version: '0'
|
328
|
+
type: :runtime
|
329
|
+
prerelease: false
|
330
|
+
version_requirements: !ruby/object:Gem::Requirement
|
331
|
+
requirements:
|
332
|
+
- - ">="
|
333
|
+
- !ruby/object:Gem::Version
|
334
|
+
version: '0'
|
335
|
+
- !ruby/object:Gem::Dependency
|
336
|
+
name: RedCloth
|
337
|
+
requirement: !ruby/object:Gem::Requirement
|
338
|
+
requirements:
|
339
|
+
- - ">="
|
340
|
+
- !ruby/object:Gem::Version
|
341
|
+
version: '0'
|
342
|
+
type: :runtime
|
343
|
+
prerelease: false
|
344
|
+
version_requirements: !ruby/object:Gem::Requirement
|
345
|
+
requirements:
|
346
|
+
- - ">="
|
347
|
+
- !ruby/object:Gem::Version
|
348
|
+
version: '0'
|
349
|
+
- !ruby/object:Gem::Dependency
|
350
|
+
name: draper
|
351
|
+
requirement: !ruby/object:Gem::Requirement
|
352
|
+
requirements:
|
353
|
+
- - ">="
|
354
|
+
- !ruby/object:Gem::Version
|
355
|
+
version: '0'
|
356
|
+
type: :runtime
|
357
|
+
prerelease: false
|
358
|
+
version_requirements: !ruby/object:Gem::Requirement
|
359
|
+
requirements:
|
360
|
+
- - ">="
|
361
|
+
- !ruby/object:Gem::Version
|
362
|
+
version: '0'
|
363
|
+
description: Link management module for ruby on rails.
|
364
|
+
email:
|
365
|
+
- roberto@vasquez-angel.de
|
366
|
+
executables: []
|
367
|
+
extensions: []
|
368
|
+
extra_rdoc_files: []
|
369
|
+
files:
|
370
|
+
- MIT-LICENSE
|
371
|
+
- README.rdoc
|
372
|
+
- Rakefile
|
373
|
+
- app/controllers/cmor/links/categories_controller.rb
|
374
|
+
- app/decorators/cmor/links/category_decorator.rb
|
375
|
+
- app/models/cmor/links/category.rb
|
376
|
+
- app/models/cmor/links/link.rb
|
377
|
+
- app/view_helpers/cmor/links/application_view_helper.rb
|
378
|
+
- app/views/cmor/links/application_view_helper/_render_footer.html.erb
|
379
|
+
- app/views/cmor/links/categories/_category.html.erb
|
380
|
+
- app/views/cmor/links/categories/_category_in_index.html.erb
|
381
|
+
- app/views/cmor/links/categories/index.html.erb
|
382
|
+
- app/views/cmor/links/categories/show.html.erb
|
383
|
+
- app/views/cmor/links/links/_link.html.erb
|
384
|
+
- app/views/cmor/links/links/_link_in_table.html.erb
|
385
|
+
- app/views/cmor/links/links/_table.html.erb
|
386
|
+
- config/locales/de.yml
|
387
|
+
- config/locales/en.yml
|
388
|
+
- config/routes.rb
|
389
|
+
- db/migrate/001_create_cmor_links_categories.rb
|
390
|
+
- db/migrate/002_create_cmor_links_links.rb
|
391
|
+
- lib/cmor/links.rb
|
392
|
+
- lib/cmor/links/configuration.rb
|
393
|
+
- lib/cmor/links/engine.rb
|
394
|
+
- lib/cmor/links/version.rb
|
395
|
+
- lib/cmor_links.rb
|
396
|
+
- lib/generators/cmor/links/install/install_generator.rb
|
397
|
+
- lib/generators/cmor/links/install/templates/initializer.rb
|
398
|
+
- lib/generators/cmor/links/install/templates/routes.source
|
399
|
+
- lib/generators/cmor/links/locales/locales_generator.rb
|
400
|
+
- lib/tasks/cmor_links_tasks.rake
|
401
|
+
- spec/factories/cmor_links_categories.rb
|
402
|
+
- spec/factories/cmor_links_links.rb
|
403
|
+
homepage: https://github.com/content-management-on-rails
|
404
|
+
licenses:
|
405
|
+
- MIT
|
406
|
+
metadata: {}
|
407
|
+
post_install_message:
|
408
|
+
rdoc_options: []
|
409
|
+
require_paths:
|
410
|
+
- lib
|
411
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
412
|
+
requirements:
|
413
|
+
- - ">="
|
414
|
+
- !ruby/object:Gem::Version
|
415
|
+
version: '0'
|
416
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
417
|
+
requirements:
|
418
|
+
- - ">"
|
419
|
+
- !ruby/object:Gem::Version
|
420
|
+
version: 1.3.1
|
421
|
+
requirements: []
|
422
|
+
rubygems_version: 3.0.3
|
423
|
+
signing_key:
|
424
|
+
specification_version: 4
|
425
|
+
summary: Link management module for ruby on rails.
|
426
|
+
test_files: []
|