railspress 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 91da481a90115a5afc178573a7b7662a043599912b5e668c0aa8c3f82f3037fd
4
+ data.tar.gz: b889839e9190727ccd853fe439dcbad09e0eb448e4650f2ec5da29a05f702410
5
+ SHA512:
6
+ metadata.gz: '09ae7d91bd9ceadbba0bf5cde85b8792422d7b111d0b1147e9b0ba0dba9f14905ce9ac8ded0b5c6605f18260e24b8d2e2fa946e88ef29cda058af1c4237724e5'
7
+ data.tar.gz: aadc763d3f3539bf0694a4e6f9f40a1677f9e60f1dd0e7251801f8336693dd2466e2bbf6b832bf95d3c3e55b3a93031749809488f8df47a5f102a8ad5baab8aa
data/README.md ADDED
@@ -0,0 +1,28 @@
1
+ # Railspress
2
+ Short description and motivation.
3
+
4
+ ## Usage
5
+ How to use my plugin.
6
+
7
+ ## Installation
8
+ Add this line to your application's Gemfile:
9
+
10
+ ```ruby
11
+ gem 'railspress'
12
+ ```
13
+
14
+ And then execute:
15
+ ```bash
16
+ $ bundle
17
+ ```
18
+
19
+ Or install it yourself as:
20
+ ```bash
21
+ $ gem install railspress
22
+ ```
23
+
24
+ ## Contributing
25
+ Contribution directions go here.
26
+
27
+ ## License
28
+ The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
data/Rakefile ADDED
@@ -0,0 +1,18 @@
1
+ require "bundler/setup"
2
+
3
+ APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
4
+ load "rails/tasks/engine.rake"
5
+
6
+ load "rails/tasks/statistics.rake"
7
+
8
+ require "bundler/gem_tasks"
9
+
10
+ require "rake/testtask"
11
+
12
+ Rake::TestTask.new(:test) do |t|
13
+ t.libs << 'test'
14
+ t.pattern = 'test/**/*_test.rb'
15
+ t.verbose = false
16
+ end
17
+
18
+ task default: :test
@@ -0,0 +1 @@
1
+ //= link_directory ../stylesheets/railspress .css
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,4 @@
1
+ module Railspress
2
+ class ApplicationController < ActionController::Base
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Railspress
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Railspress
2
+ class ApplicationJob < ActiveJob::Base
3
+ end
4
+ end
@@ -0,0 +1,6 @@
1
+ module Railspress
2
+ class ApplicationMailer < ActionMailer::Base
3
+ default from: 'from@example.com'
4
+ layout 'mailer'
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ module Railspress
2
+ class ApplicationRecord < ActiveRecord::Base
3
+ self.abstract_class = true
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module Railspress
2
+ class Comment < ApplicationRecord
3
+ belongs_to :post
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Railspress
4
+ class Post < ApplicationRecord
5
+ belongs_to :user, proc { readonly(true) }, class_name: Railspress.user_class.to_s, foreign_key: :user_id, optional: true
6
+ has_many :comments
7
+
8
+ validates :title, presence: true
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Railspress
4
+ class Vote < ApplicationRecord
5
+ end
6
+ end
@@ -0,0 +1,15 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Railspress</title>
5
+ <%= csrf_meta_tags %>
6
+ <%= csp_meta_tag %>
7
+
8
+ <%= stylesheet_link_tag "railspress/application", media: "all" %>
9
+ </head>
10
+ <body>
11
+
12
+ <%= yield %>
13
+
14
+ </body>
15
+ </html>
data/config/routes.rb ADDED
@@ -0,0 +1,2 @@
1
+ Railspress::Engine.routes.draw do
2
+ end
@@ -0,0 +1,10 @@
1
+ class CreateRailspressPosts < ActiveRecord::Migration[6.1]
2
+ def change
3
+ create_table :railspress_posts do |t|
4
+ t.string :title
5
+ t.string :status
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ class CreateRailspressVotes < ActiveRecord::Migration[6.1]
2
+ def change
3
+ create_table :railspress_votes do |t|
4
+ t.intenger :likes
5
+ t.intenger :deslikes
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ class CreateRailspressComments < ActiveRecord::Migration[6.1]
2
+ def change
3
+ create_table :railspress_comments do |t|
4
+ t.references :post, null: false, foreign_key: true
5
+ t.integer :user_id
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Railspress
4
+ include ActiveSupport::Configurable
5
+
6
+ config_accessor :validate_source_url, :comments_per_page, :posts_per_page,
7
+ :post_teaser_length, :share_this_key, :page_url
8
+
9
+ self.validate_source_url = false
10
+ self.comments_per_page = 10
11
+ self.posts_per_page = 10
12
+ self.post_teaser_length = 250
13
+ self.share_this_key = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
14
+ self.page_url = "/blog"
15
+
16
+ # Refinery::User isn't available when this line gets hit, so we use static methods instead
17
+ @@user_class_name = nil
18
+ class << self
19
+ def user_class=(class_name)
20
+ if class_name.is_a?(Class)
21
+ raise TypeError, "You can't set user_class to be a class, e.g., User. Instead, please use a string like 'User'"
22
+ elsif class_name.is_a?(String)
23
+ @@user_class_name = class_name
24
+ else
25
+ raise TypeError, "Invalid type for user_class. Please use a string like 'User'"
26
+ end
27
+ end
28
+
29
+ def user_class
30
+ class_name = @@user_class_name
31
+ begin
32
+ Object.const_get(class_name) if class_name.present?
33
+ rescue NameError
34
+ class_name.constantize
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,5 @@
1
+ module Railspress
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace Railspress
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ module Railspress
2
+ VERSION = '0.1.1'
3
+ end
data/lib/railspress.rb ADDED
@@ -0,0 +1,6 @@
1
+ require "railspress/version"
2
+ require "railspress/engine"
3
+
4
+ module Railspress
5
+ # Your code goes here...
6
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :railspress do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,108 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: railspress
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.1
5
+ platform: ruby
6
+ authors:
7
+ - Pedro Souza
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2021-06-18 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: 6.1.3
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 6.1.3.2
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "~>"
28
+ - !ruby/object:Gem::Version
29
+ version: 6.1.3
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 6.1.3.2
33
+ - !ruby/object:Gem::Dependency
34
+ name: ransack
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.4'
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: 2.4.2
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - "~>"
48
+ - !ruby/object:Gem::Version
49
+ version: '2.4'
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ version: 2.4.2
53
+ description: RailsPress is a Rails Engine that provide Blog features to your project
54
+ email:
55
+ - opedrosouza@hotmail.com
56
+ executables: []
57
+ extensions: []
58
+ extra_rdoc_files: []
59
+ files:
60
+ - README.md
61
+ - Rakefile
62
+ - app/assets/config/railspress_manifest.js
63
+ - app/assets/stylesheets/railspress/application.css
64
+ - app/controllers/railspress/application_controller.rb
65
+ - app/helpers/railspress/application_helper.rb
66
+ - app/jobs/railspress/application_job.rb
67
+ - app/mailers/railspress/application_mailer.rb
68
+ - app/models/railspress/application_record.rb
69
+ - app/models/railspress/comment.rb
70
+ - app/models/railspress/post.rb
71
+ - app/models/railspress/vote.rb
72
+ - app/views/layouts/railspress/application.html.erb
73
+ - config/routes.rb
74
+ - db/migrate/20210618025918_create_railspress_posts.rb
75
+ - db/migrate/20210618030739_create_railspress_votes.rb
76
+ - db/migrate/20210618030817_create_railspress_comments.rb
77
+ - lib/railspress.rb
78
+ - lib/railspress/configuration.rb
79
+ - lib/railspress/engine.rb
80
+ - lib/railspress/version.rb
81
+ - lib/tasks/railspress_tasks.rake
82
+ homepage: https://github.com/opedrosouza/railspress
83
+ licenses:
84
+ - MIT
85
+ metadata:
86
+ homepage_uri: https://github.com/opedrosouza/railspress
87
+ source_code_uri: https://github.com/opedrosouza/railspress
88
+ changelog_uri: https://github.com/opedrosouza/railspress/CHANGELOG.md
89
+ post_install_message:
90
+ rdoc_options: []
91
+ require_paths:
92
+ - lib
93
+ required_ruby_version: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ version: '0'
98
+ required_rubygems_version: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ requirements: []
104
+ rubygems_version: 3.1.6
105
+ signing_key:
106
+ specification_version: 4
107
+ summary: https://github.com/opedrosouza/railspress
108
+ test_files: []