blog_boi 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +96 -0
  4. data/Rakefile +32 -0
  5. data/app/assets/config/blog_boi_manifest.js +2 -0
  6. data/app/assets/images/blog_boi/logo.png +0 -0
  7. data/app/assets/images/blog_boi/star.svg +9 -0
  8. data/app/assets/javascripts/blog_boi/application.js +18 -0
  9. data/app/assets/javascripts/blog_boi/global.js +13 -0
  10. data/app/assets/stylesheets/blog_boi/_blog.scss +11 -0
  11. data/app/assets/stylesheets/blog_boi/_footer.scss +7 -0
  12. data/app/assets/stylesheets/blog_boi/_header.scss +13 -0
  13. data/app/assets/stylesheets/blog_boi/application.scss +48 -0
  14. data/app/assets/stylesheets/blog_boi/bootstrap_overrides.scss +7 -0
  15. data/app/assets/stylesheets/bootstrap_customizer.scss +2 -0
  16. data/app/controllers/blog_boi/application_controller.rb +26 -0
  17. data/app/controllers/blog_boi/articles_controller.rb +77 -0
  18. data/app/controllers/blog_boi/comments_controller.rb +21 -0
  19. data/app/helpers/blog_boi/application_helper.rb +31 -0
  20. data/app/helpers/blog_boi/articles_helper.rb +4 -0
  21. data/app/helpers/blog_boi/comments_helper.rb +4 -0
  22. data/app/jobs/blog_boi/application_job.rb +4 -0
  23. data/app/mailers/blog_boi/application_mailer.rb +6 -0
  24. data/app/models/blog_boi/application_record.rb +5 -0
  25. data/app/models/blog_boi/article.rb +70 -0
  26. data/app/models/blog_boi/category.rb +12 -0
  27. data/app/models/blog_boi/comment.rb +11 -0
  28. data/app/views/blog_boi/articles/_article.html.erb +41 -0
  29. data/app/views/blog_boi/articles/_article_body.html.erb +5 -0
  30. data/app/views/blog_boi/articles/_category.html.erb +7 -0
  31. data/app/views/blog_boi/articles/_form.html.erb +55 -0
  32. data/app/views/blog_boi/articles/_index_header.html.erb +31 -0
  33. data/app/views/blog_boi/articles/edit.html.erb +24 -0
  34. data/app/views/blog_boi/articles/index.html.erb +25 -0
  35. data/app/views/blog_boi/articles/new.html.erb +23 -0
  36. data/app/views/blog_boi/articles/show.html.erb +63 -0
  37. data/app/views/blog_boi/comments/_comment.erb +1 -0
  38. data/app/views/blog_boi/comments/_form.erb +8 -0
  39. data/app/views/layouts/blog_boi/_footer.html.erb +21 -0
  40. data/app/views/layouts/blog_boi/_head_meta_tags.html.erb +7 -0
  41. data/app/views/layouts/blog_boi/_header.html.erb +43 -0
  42. data/app/views/layouts/blog_boi/application.html.erb +22 -0
  43. data/config/routes.rb +9 -0
  44. data/db/migrate/20190718130349_create_blog_boi_articles.rb +10 -0
  45. data/db/migrate/20190721015943_create_blog_boi_comments.rb +10 -0
  46. data/db/migrate/20190721212916_add_author_id_to_blog_boi_articles.rb +5 -0
  47. data/db/migrate/20190728014133_create_blog_boi_categories.rb +9 -0
  48. data/db/migrate/20190729022622_create_join_table_article_category.rb +8 -0
  49. data/db/migrate/20190820235901_add_description_to_blog_boi_articles.rb +5 -0
  50. data/db/migrate/20190911003115_add_slug_to_article.rb +6 -0
  51. data/db/seeds.rb +23 -0
  52. data/lib/blog_boi/engine.rb +14 -0
  53. data/lib/blog_boi/version.rb +3 -0
  54. data/lib/blog_boi.rb +29 -0
  55. data/lib/tasks/blog_boi_tasks.rake +4 -0
  56. 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,8 @@
1
+ <h3>New comment</h3>
2
+ <%= form_with(model: [@article, @article.comments.build], local: true) do |form| %>
3
+ <p>
4
+ <%= form.label :text %><br>
5
+ <%= form.text_area :text %>
6
+ </p>
7
+ <%= form.submit %>
8
+ <% end %>
@@ -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,9 @@
1
+ BlogBoi::Engine.routes.draw do
2
+ root to: "articles#index"
3
+
4
+ resources :articles, path: '/' do
5
+ resources :comments
6
+ end
7
+
8
+ get '/category/:category_name', to: 'articles#category_index'
9
+ end
@@ -0,0 +1,10 @@
1
+ class CreateBlogBoiArticles < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :blog_boi_articles do |t|
4
+ t.string :title
5
+ t.text :text
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ class CreateBlogBoiComments < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :blog_boi_comments do |t|
4
+ t.integer :article_id
5
+ t.text :text
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ class AddAuthorIdToBlogBoiArticles < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :blog_boi_articles, :author_id, :integer
4
+ end
5
+ end
@@ -0,0 +1,9 @@
1
+ class CreateBlogBoiCategories < ActiveRecord::Migration[5.2]
2
+ def change
3
+ create_table :blog_boi_categories do |t|
4
+ t.string :name
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end
@@ -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
@@ -0,0 +1,5 @@
1
+ class AddDescriptionToBlogBoiArticles < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :blog_boi_articles, :description, :string
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddSlugToArticle < ActiveRecord::Migration[6.0]
2
+ def change
3
+ add_column :blog_boi_articles, :slug, :string
4
+ add_index :blog_boi_articles, :slug, unique: true
5
+ end
6
+ 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
@@ -0,0 +1,3 @@
1
+ module BlogBoi
2
+ VERSION = '0.0.1'
3
+ 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
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :blog_boi do
3
+ # # Task goes here
4
+ # 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: []