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.
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: []