blog_boi 0.0.1
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.md +96 -0
- data/Rakefile +32 -0
- data/app/assets/config/blog_boi_manifest.js +2 -0
- data/app/assets/images/blog_boi/logo.png +0 -0
- data/app/assets/images/blog_boi/star.svg +9 -0
- data/app/assets/javascripts/blog_boi/application.js +18 -0
- data/app/assets/javascripts/blog_boi/global.js +13 -0
- data/app/assets/stylesheets/blog_boi/_blog.scss +11 -0
- data/app/assets/stylesheets/blog_boi/_footer.scss +7 -0
- data/app/assets/stylesheets/blog_boi/_header.scss +13 -0
- data/app/assets/stylesheets/blog_boi/application.scss +48 -0
- data/app/assets/stylesheets/blog_boi/bootstrap_overrides.scss +7 -0
- data/app/assets/stylesheets/bootstrap_customizer.scss +2 -0
- data/app/controllers/blog_boi/application_controller.rb +26 -0
- data/app/controllers/blog_boi/articles_controller.rb +77 -0
- data/app/controllers/blog_boi/comments_controller.rb +21 -0
- data/app/helpers/blog_boi/application_helper.rb +31 -0
- data/app/helpers/blog_boi/articles_helper.rb +4 -0
- data/app/helpers/blog_boi/comments_helper.rb +4 -0
- data/app/jobs/blog_boi/application_job.rb +4 -0
- data/app/mailers/blog_boi/application_mailer.rb +6 -0
- data/app/models/blog_boi/application_record.rb +5 -0
- data/app/models/blog_boi/article.rb +70 -0
- data/app/models/blog_boi/category.rb +12 -0
- data/app/models/blog_boi/comment.rb +11 -0
- data/app/views/blog_boi/articles/_article.html.erb +41 -0
- data/app/views/blog_boi/articles/_article_body.html.erb +5 -0
- data/app/views/blog_boi/articles/_category.html.erb +7 -0
- data/app/views/blog_boi/articles/_form.html.erb +55 -0
- data/app/views/blog_boi/articles/_index_header.html.erb +31 -0
- data/app/views/blog_boi/articles/edit.html.erb +24 -0
- data/app/views/blog_boi/articles/index.html.erb +25 -0
- data/app/views/blog_boi/articles/new.html.erb +23 -0
- data/app/views/blog_boi/articles/show.html.erb +63 -0
- data/app/views/blog_boi/comments/_comment.erb +1 -0
- data/app/views/blog_boi/comments/_form.erb +8 -0
- data/app/views/layouts/blog_boi/_footer.html.erb +21 -0
- data/app/views/layouts/blog_boi/_head_meta_tags.html.erb +7 -0
- data/app/views/layouts/blog_boi/_header.html.erb +43 -0
- data/app/views/layouts/blog_boi/application.html.erb +22 -0
- data/config/routes.rb +9 -0
- data/db/migrate/20190718130349_create_blog_boi_articles.rb +10 -0
- data/db/migrate/20190721015943_create_blog_boi_comments.rb +10 -0
- data/db/migrate/20190721212916_add_author_id_to_blog_boi_articles.rb +5 -0
- data/db/migrate/20190728014133_create_blog_boi_categories.rb +9 -0
- data/db/migrate/20190729022622_create_join_table_article_category.rb +8 -0
- data/db/migrate/20190820235901_add_description_to_blog_boi_articles.rb +5 -0
- data/db/migrate/20190911003115_add_slug_to_article.rb +6 -0
- data/db/seeds.rb +23 -0
- data/lib/blog_boi/engine.rb +14 -0
- data/lib/blog_boi/version.rb +3 -0
- data/lib/blog_boi.rb +29 -0
- data/lib/tasks/blog_boi_tasks.rake +4 -0
- metadata +190 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
<%= form_with(model: article, local: true) do |form| %>
|
2
|
+
|
3
|
+
<% if article.errors.any? %>
|
4
|
+
<div id="error_explanation">
|
5
|
+
<h2><%= pluralize(article.errors.count, "error") %> prohibited this article from being saved:</h2>
|
6
|
+
|
7
|
+
<ul>
|
8
|
+
<% article.errors.full_messages.each do |message| %>
|
9
|
+
<li><%= message %></li>
|
10
|
+
<% end %>
|
11
|
+
</ul>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
14
|
+
|
15
|
+
<div class="field mt-3">
|
16
|
+
<%= form.label :author_name %><br>
|
17
|
+
<%= form.text_field :author_name, placeholder: 'e.g. Charlie Reese', class: 'form-control' %>
|
18
|
+
</div>
|
19
|
+
|
20
|
+
<div class="field mt-3">
|
21
|
+
<%= form.label :title %>
|
22
|
+
<%= form.text_field :title, placeholder: 'e.g. Great Title: 3 Reasons Why', class: 'form-control' %>
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<div class="field mt-3">
|
26
|
+
<%= form.label :slug %>
|
27
|
+
<%= form.text_field :slug, placeholder: 'e.g. appointment-reminders-for-dentists', class: 'form-control' %>
|
28
|
+
</div>
|
29
|
+
|
30
|
+
<div class="field mt-3">
|
31
|
+
<%= form.label :category_names %>
|
32
|
+
<%= form.text_field :category_names, placeholder: 'e.g. no-shows, sales growth', class: 'form-control' %>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div class="field mt-3">
|
36
|
+
<%= form.label :image %>
|
37
|
+
<%= form.file_field :image, class: 'd-block' %>
|
38
|
+
</div>
|
39
|
+
|
40
|
+
<% if @article.image.attached? %>
|
41
|
+
<div class="text-left mt-1">
|
42
|
+
<div>Uploaded image:</div>
|
43
|
+
<%= image_tag main_app.url_for(@article.image), class: 'w-25' %>
|
44
|
+
</div>
|
45
|
+
<% end %>
|
46
|
+
|
47
|
+
<div class="field mt-3">
|
48
|
+
<%= form.label :text %>
|
49
|
+
<%= form.text_area :text, size: "20x20", class: 'form-control' %>
|
50
|
+
</div>
|
51
|
+
|
52
|
+
<div class="actions mt-3">
|
53
|
+
<%= form.submit class: 'btn btn-primary' %>
|
54
|
+
</div>
|
55
|
+
<% end %>
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<div class="bg-primary text-white py-3 border-top-sm-only">
|
2
|
+
|
3
|
+
<div class="container">
|
4
|
+
|
5
|
+
<div class="row text-center">
|
6
|
+
|
7
|
+
<% if !@category_title %>
|
8
|
+
|
9
|
+
<h1 class="col-12 mb-0">
|
10
|
+
The <%= company_name %> Blog
|
11
|
+
</h1>
|
12
|
+
|
13
|
+
<p class="lead col-11 col-md-9 col-lg-7 col-xl-6 mx-auto mt-3 mb-0">
|
14
|
+
<%= blog_description %>
|
15
|
+
</p>
|
16
|
+
|
17
|
+
<% else %>
|
18
|
+
|
19
|
+
<h1 class="col-12">Tutorials and Articles on <%= @category_title %></h1>
|
20
|
+
|
21
|
+
<% end %>
|
22
|
+
|
23
|
+
<div class="mt-2 mt-md-4 col-12 star">
|
24
|
+
<%= image_tag("blog_boi/star.svg") %>
|
25
|
+
</div>
|
26
|
+
|
27
|
+
</div>
|
28
|
+
|
29
|
+
</div>
|
30
|
+
|
31
|
+
</div>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<main class="blog-boi blog edit">
|
2
|
+
|
3
|
+
<div class="container">
|
4
|
+
|
5
|
+
<div class="row">
|
6
|
+
|
7
|
+
<div class="col-12">
|
8
|
+
|
9
|
+
<h1 class="mt-4">Editing Article</h1>
|
10
|
+
|
11
|
+
<%= render 'form', article: @article %>
|
12
|
+
|
13
|
+
<div class="mt-3">
|
14
|
+
<%= link_to 'Show', @article %> |
|
15
|
+
<%= link_to 'Back', articles_path %>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
</div>
|
19
|
+
|
20
|
+
</div>
|
21
|
+
|
22
|
+
</div>
|
23
|
+
|
24
|
+
</main>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<main class="blog-boi blog index text-center">
|
2
|
+
|
3
|
+
<%= render 'index_header' %>
|
4
|
+
|
5
|
+
<div class="container mt-4">
|
6
|
+
|
7
|
+
<div class="row">
|
8
|
+
|
9
|
+
<% if is_admin %>
|
10
|
+
|
11
|
+
<div class="col-12 mt-4">
|
12
|
+
<%= link_to 'New Article', new_article_path, class: 'btn-primary rounded' %>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<%= render @articles %>
|
18
|
+
|
19
|
+
</div>
|
20
|
+
|
21
|
+
</div>
|
22
|
+
|
23
|
+
|
24
|
+
</main>
|
25
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<main class="blog-boi blog edit">
|
2
|
+
|
3
|
+
<div class="container">
|
4
|
+
|
5
|
+
<div class="row">
|
6
|
+
|
7
|
+
<div class="col-12">
|
8
|
+
|
9
|
+
<h1 class="mt-4">New Article</h1>
|
10
|
+
|
11
|
+
<%= render 'form', article: @article %>
|
12
|
+
|
13
|
+
<div class="mt-3">
|
14
|
+
<%= link_to 'Back', articles_path %>
|
15
|
+
</div>
|
16
|
+
|
17
|
+
</div>
|
18
|
+
|
19
|
+
</div>
|
20
|
+
|
21
|
+
</div>
|
22
|
+
|
23
|
+
</main>
|
@@ -0,0 +1,63 @@
|
|
1
|
+
<main class="blog-boi blog edit">
|
2
|
+
|
3
|
+
<div class="bg-primary">
|
4
|
+
|
5
|
+
<div class="container">
|
6
|
+
|
7
|
+
<div class="row">
|
8
|
+
|
9
|
+
<div class="col-12 mb-neg-md-125-sm-50">
|
10
|
+
|
11
|
+
<% if @article.image.attached? %>
|
12
|
+
|
13
|
+
<%= image_tag main_app.url_for(@article.image), class: 'mw-100 rounded' %>
|
14
|
+
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
</div>
|
18
|
+
|
19
|
+
</div>
|
20
|
+
|
21
|
+
</div>
|
22
|
+
|
23
|
+
</div>
|
24
|
+
|
25
|
+
<div class="container mt-md-125-sm-50">
|
26
|
+
|
27
|
+
<div class="row">
|
28
|
+
|
29
|
+
<div class="col-12 col-md-10 col-lg-7 mx-auto text-center mt-4">
|
30
|
+
|
31
|
+
<div>
|
32
|
+
<%= render partial: 'category', collection: @article.categories %>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<h1 class="mb-0 mt-3">
|
36
|
+
<%= @article.title %>
|
37
|
+
</h1>
|
38
|
+
|
39
|
+
<div class="mt-3 text-muted">
|
40
|
+
<%= @article.author.name %>,
|
41
|
+
<%= @article.updated_at.strftime("%B %e, %Y") %>
|
42
|
+
</div>
|
43
|
+
|
44
|
+
<%= render 'article_body' %>
|
45
|
+
|
46
|
+
<% if is_admin %>
|
47
|
+
|
48
|
+
<div class="mt-5">
|
49
|
+
|
50
|
+
<%= link_to 'Edit', edit_article_path(@article) %> |
|
51
|
+
<%= link_to 'Back', articles_path %>
|
52
|
+
|
53
|
+
</div>
|
54
|
+
|
55
|
+
<% end %>
|
56
|
+
|
57
|
+
</div>
|
58
|
+
|
59
|
+
</div>
|
60
|
+
|
61
|
+
</div>
|
62
|
+
|
63
|
+
</main>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%= comment_counter + 1 %>. <%= comment.text %>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<footer class="blog-boi-blog">
|
2
|
+
|
3
|
+
<div class="bg-dark text-white">
|
4
|
+
|
5
|
+
<div class="container">
|
6
|
+
|
7
|
+
<div class="row">
|
8
|
+
|
9
|
+
<div class="col-12 py-3 text-center">
|
10
|
+
|
11
|
+
<div>© <%= company_name %> <%= Time.current.year %></div>
|
12
|
+
|
13
|
+
</div>
|
14
|
+
|
15
|
+
</div>
|
16
|
+
|
17
|
+
</div>
|
18
|
+
|
19
|
+
</div>
|
20
|
+
|
21
|
+
</footer>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<title><%= @meta_tags[:title] || company_name + ' Blog' %></title>
|
2
|
+
<meta property="og:title" content="<%= @meta_tags[:title] || blog_seo_title %>" />
|
3
|
+
|
4
|
+
<meta property="og:site_name" content="<%= company_name %>" />
|
5
|
+
|
6
|
+
<meta name="description" content="<%= @meta_tags[:description] || blog_seo_description %>" />
|
7
|
+
<meta property="og:description" content="<%= @meta_tags[:description] || blog_seo_description %>" />
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<header class="blog-boi-blog text-white">
|
2
|
+
|
3
|
+
<div class="bg-primary text-center text-md-left">
|
4
|
+
|
5
|
+
<div class="container">
|
6
|
+
|
7
|
+
<div class="row pt-4 pb-3">
|
8
|
+
|
9
|
+
<div class="col-12 col-md-6 col-lg-7">
|
10
|
+
|
11
|
+
<a href='<%= blog_boi.root_url %>' class="text-white">
|
12
|
+
<%= image_tag company_logo_path, class: 'logo mr-2 align-top' %>
|
13
|
+
</a>
|
14
|
+
|
15
|
+
</div>
|
16
|
+
|
17
|
+
<div class="col-12 col-md-6 col-lg-5 text-primary-light font-weight-light mt-3 mt-md-0">
|
18
|
+
<em>
|
19
|
+
Brought to you by <a href="/" class="text-orange"><%= company_name %></a>, a <%= company_description %>
|
20
|
+
</em>
|
21
|
+
</div>
|
22
|
+
|
23
|
+
</div>
|
24
|
+
|
25
|
+
</div>
|
26
|
+
|
27
|
+
</div>
|
28
|
+
|
29
|
+
</header>
|
30
|
+
|
31
|
+
<% if notice %>
|
32
|
+
|
33
|
+
<div class="container mt-4">
|
34
|
+
|
35
|
+
<div class="row">
|
36
|
+
|
37
|
+
<div id="notice" class="col-12"><%= notice %></div>
|
38
|
+
|
39
|
+
</div>
|
40
|
+
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<% end %>
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<%= render 'layouts/blog_boi/head_meta_tags' %>
|
5
|
+
|
6
|
+
<meta name="viewport" content="width=device-width" />
|
7
|
+
<%= csrf_meta_tags %>
|
8
|
+
<%= csp_meta_tag %>
|
9
|
+
|
10
|
+
<%= stylesheet_link_tag "blog_boi/application", media: "all" %>
|
11
|
+
<%= stylesheet_link_tag "bootstrap_customizer", media: "all" %>
|
12
|
+
<%= javascript_include_tag "blog_boi/application" %>
|
13
|
+
</head>
|
14
|
+
<body>
|
15
|
+
|
16
|
+
<%= render 'layouts/blog_boi/header' %>
|
17
|
+
|
18
|
+
<%= yield %>
|
19
|
+
|
20
|
+
<%= render 'layouts/blog_boi/footer' %>
|
21
|
+
</body>
|
22
|
+
</html>
|
data/config/routes.rb
ADDED
@@ -0,0 +1,8 @@
|
|
1
|
+
class CreateJoinTableArticleCategory < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
create_join_table :blog_boi_articles, :blog_boi_categories do |t|
|
4
|
+
t.index [:article_id, :category_id], name: 'index_blog_boi_article_id_category_id'
|
5
|
+
t.index [:category_id, :article_id], name: 'index_blog_boi_category_id_article_id'
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
data/db/seeds.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# START Create article, author, categories, comments
|
2
|
+
|
3
|
+
article = BlogBoi::Article.create({
|
4
|
+
title: 'Make More Sales: 3 Ways to Reduce No-Shows',
|
5
|
+
slug: 'reduce-no-shows',
|
6
|
+
text: 'It is so lit.',
|
7
|
+
author_name: 'Charlie Reese',
|
8
|
+
description: 'This is the description. It is very exciting.',
|
9
|
+
category_names: "no-shows, sales growth",
|
10
|
+
})
|
11
|
+
|
12
|
+
article.comments.create({
|
13
|
+
text: "Comment text stuff",
|
14
|
+
})
|
15
|
+
|
16
|
+
article.comments.create({
|
17
|
+
text: "Other comment text stuff",
|
18
|
+
})
|
19
|
+
|
20
|
+
# END Create article, author, categories, comments
|
21
|
+
|
22
|
+
|
23
|
+
puts "Seeded DB"
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module BlogBoi
|
2
|
+
class Engine < ::Rails::Engine
|
3
|
+
isolate_namespace BlogBoi
|
4
|
+
|
5
|
+
require 'bootstrap'
|
6
|
+
require 'jquery-rails'
|
7
|
+
require 'rails-ujs'
|
8
|
+
|
9
|
+
|
10
|
+
initializer "blog_boi.assets.precompile" do |app|
|
11
|
+
app.config.assets.precompile += %w( bootstrap_customizer.scss blog_boi/logo.png blog_boi/star.svg )
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
data/lib/blog_boi.rb
ADDED
@@ -0,0 +1,29 @@
|
|
1
|
+
require "blog_boi/engine"
|
2
|
+
|
3
|
+
module BlogBoi
|
4
|
+
mattr_accessor :author_class, :company_name, :company_logo_path, :company_description, :blog_description,
|
5
|
+
:blog_seo_description, :blog_seo_title
|
6
|
+
|
7
|
+
class << self
|
8
|
+
def author_class
|
9
|
+
@@author_class.constantize
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
##################
|
14
|
+
# Default values
|
15
|
+
##################
|
16
|
+
|
17
|
+
# Admin class in parent application
|
18
|
+
self.author_class = 'Author'
|
19
|
+
|
20
|
+
# Company info
|
21
|
+
self.company_name = 'SaaSy'
|
22
|
+
self.company_description = 'business that does xyz'
|
23
|
+
self.company_logo_path = 'blog_boi/logo'
|
24
|
+
|
25
|
+
# Blog info
|
26
|
+
self.blog_description = 'We help your business reduce no-shows, get more reviews, and increase sales and productivity: detailed tutorials and insight from business owners and experts'
|
27
|
+
self.blog_seo_description = blog_description
|
28
|
+
self.blog_seo_title = blog_seo_title
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,190 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: blog_boi
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Charlie Reese
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2019-09-17 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: kramdown
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.1.0
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.1.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rails
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 6.0.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 6.0.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bootstrap
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '4.3'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '4.3'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: jquery-rails
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '4.3'
|
62
|
+
- - ">="
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: 4.3.3
|
65
|
+
type: :runtime
|
66
|
+
prerelease: false
|
67
|
+
version_requirements: !ruby/object:Gem::Requirement
|
68
|
+
requirements:
|
69
|
+
- - "~>"
|
70
|
+
- !ruby/object:Gem::Version
|
71
|
+
version: '4.3'
|
72
|
+
- - ">="
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: 4.3.3
|
75
|
+
- !ruby/object:Gem::Dependency
|
76
|
+
name: rails-ujs
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
78
|
+
requirements:
|
79
|
+
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: 0.1.0
|
82
|
+
type: :runtime
|
83
|
+
prerelease: false
|
84
|
+
version_requirements: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - "~>"
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 0.1.0
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: sqlite3
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
|
+
description: Easily add blogging functionality to your rails project using BlogBoi.
|
104
|
+
email:
|
105
|
+
- j.charles.reese@gmail.com
|
106
|
+
executables: []
|
107
|
+
extensions: []
|
108
|
+
extra_rdoc_files: []
|
109
|
+
files:
|
110
|
+
- MIT-LICENSE
|
111
|
+
- README.md
|
112
|
+
- Rakefile
|
113
|
+
- app/assets/config/blog_boi_manifest.js
|
114
|
+
- app/assets/images/blog_boi/logo.png
|
115
|
+
- app/assets/images/blog_boi/star.svg
|
116
|
+
- app/assets/javascripts/blog_boi/application.js
|
117
|
+
- app/assets/javascripts/blog_boi/global.js
|
118
|
+
- app/assets/stylesheets/blog_boi/_blog.scss
|
119
|
+
- app/assets/stylesheets/blog_boi/_footer.scss
|
120
|
+
- app/assets/stylesheets/blog_boi/_header.scss
|
121
|
+
- app/assets/stylesheets/blog_boi/application.scss
|
122
|
+
- app/assets/stylesheets/blog_boi/bootstrap_overrides.scss
|
123
|
+
- app/assets/stylesheets/bootstrap_customizer.scss
|
124
|
+
- app/controllers/blog_boi/application_controller.rb
|
125
|
+
- app/controllers/blog_boi/articles_controller.rb
|
126
|
+
- app/controllers/blog_boi/comments_controller.rb
|
127
|
+
- app/helpers/blog_boi/application_helper.rb
|
128
|
+
- app/helpers/blog_boi/articles_helper.rb
|
129
|
+
- app/helpers/blog_boi/comments_helper.rb
|
130
|
+
- app/jobs/blog_boi/application_job.rb
|
131
|
+
- app/mailers/blog_boi/application_mailer.rb
|
132
|
+
- app/models/blog_boi/application_record.rb
|
133
|
+
- app/models/blog_boi/article.rb
|
134
|
+
- app/models/blog_boi/category.rb
|
135
|
+
- app/models/blog_boi/comment.rb
|
136
|
+
- app/views/blog_boi/articles/_article.html.erb
|
137
|
+
- app/views/blog_boi/articles/_article_body.html.erb
|
138
|
+
- app/views/blog_boi/articles/_category.html.erb
|
139
|
+
- app/views/blog_boi/articles/_form.html.erb
|
140
|
+
- app/views/blog_boi/articles/_index_header.html.erb
|
141
|
+
- app/views/blog_boi/articles/edit.html.erb
|
142
|
+
- app/views/blog_boi/articles/index.html.erb
|
143
|
+
- app/views/blog_boi/articles/new.html.erb
|
144
|
+
- app/views/blog_boi/articles/show.html.erb
|
145
|
+
- app/views/blog_boi/comments/_comment.erb
|
146
|
+
- app/views/blog_boi/comments/_form.erb
|
147
|
+
- app/views/layouts/blog_boi/_footer.html.erb
|
148
|
+
- app/views/layouts/blog_boi/_head_meta_tags.html.erb
|
149
|
+
- app/views/layouts/blog_boi/_header.html.erb
|
150
|
+
- app/views/layouts/blog_boi/application.html.erb
|
151
|
+
- config/routes.rb
|
152
|
+
- db/migrate/20190718130349_create_blog_boi_articles.rb
|
153
|
+
- db/migrate/20190721015943_create_blog_boi_comments.rb
|
154
|
+
- db/migrate/20190721212916_add_author_id_to_blog_boi_articles.rb
|
155
|
+
- db/migrate/20190728014133_create_blog_boi_categories.rb
|
156
|
+
- db/migrate/20190729022622_create_join_table_article_category.rb
|
157
|
+
- db/migrate/20190820235901_add_description_to_blog_boi_articles.rb
|
158
|
+
- db/migrate/20190911003115_add_slug_to_article.rb
|
159
|
+
- db/seeds.rb
|
160
|
+
- lib/blog_boi.rb
|
161
|
+
- lib/blog_boi/engine.rb
|
162
|
+
- lib/blog_boi/version.rb
|
163
|
+
- lib/tasks/blog_boi_tasks.rake
|
164
|
+
homepage: https://github.com/charliereese/blog_boi
|
165
|
+
licenses:
|
166
|
+
- MIT
|
167
|
+
metadata:
|
168
|
+
source_code_uri: https://github.com/charliereese/blog_boi
|
169
|
+
post_install_message:
|
170
|
+
rdoc_options: []
|
171
|
+
require_paths:
|
172
|
+
- lib
|
173
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
174
|
+
requirements:
|
175
|
+
- - ">="
|
176
|
+
- !ruby/object:Gem::Version
|
177
|
+
version: '0'
|
178
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
|
+
requirements:
|
180
|
+
- - ">="
|
181
|
+
- !ruby/object:Gem::Version
|
182
|
+
version: '0'
|
183
|
+
requirements: []
|
184
|
+
rubyforge_project:
|
185
|
+
rubygems_version: 2.7.7
|
186
|
+
signing_key:
|
187
|
+
specification_version: 4
|
188
|
+
summary: BlogBoi is a rails engine for adding blogging functionality to your rails
|
189
|
+
project.
|
190
|
+
test_files: []
|