railswiki 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +185 -0
  4. data/Rakefile +24 -0
  5. data/app/assets/config/railswiki_manifest.js +2 -0
  6. data/app/assets/javascripts/railswiki/application.js +13 -0
  7. data/app/assets/javascripts/railswiki/histories.js +2 -0
  8. data/app/assets/javascripts/railswiki/invites.js +2 -0
  9. data/app/assets/javascripts/railswiki/pages.js +2 -0
  10. data/app/assets/javascripts/railswiki/sessions.js +2 -0
  11. data/app/assets/javascripts/railswiki/uploaded_files.js +2 -0
  12. data/app/assets/javascripts/railswiki/users.js +2 -0
  13. data/app/assets/stylesheets/railswiki/application.css +15 -0
  14. data/app/assets/stylesheets/railswiki/histories.css +4 -0
  15. data/app/assets/stylesheets/railswiki/invites.css +4 -0
  16. data/app/assets/stylesheets/railswiki/pages.scss +55 -0
  17. data/app/assets/stylesheets/railswiki/sessions.css +4 -0
  18. data/app/assets/stylesheets/railswiki/uploaded_files.scss +54 -0
  19. data/app/assets/stylesheets/railswiki/users.css +4 -0
  20. data/app/controllers/railswiki/application_controller.rb +126 -0
  21. data/app/controllers/railswiki/histories_controller.rb +48 -0
  22. data/app/controllers/railswiki/invites_controller.rb +61 -0
  23. data/app/controllers/railswiki/pages_controller.rb +141 -0
  24. data/app/controllers/railswiki/sessions_controller.rb +75 -0
  25. data/app/controllers/railswiki/uploaded_files_controller.rb +100 -0
  26. data/app/controllers/railswiki/users_controller.rb +55 -0
  27. data/app/helpers/railswiki/application_helper.rb +26 -0
  28. data/app/helpers/railswiki/histories_helper.rb +4 -0
  29. data/app/helpers/railswiki/invites_helper.rb +4 -0
  30. data/app/helpers/railswiki/pages_helper.rb +76 -0
  31. data/app/helpers/railswiki/sessions_helper.rb +4 -0
  32. data/app/helpers/railswiki/title_helper.rb +7 -0
  33. data/app/helpers/railswiki/uploaded_files_helper.rb +4 -0
  34. data/app/helpers/railswiki/users_helper.rb +4 -0
  35. data/app/helpers/railswiki/wiki_helper.rb +189 -0
  36. data/app/jobs/railswiki/application_job.rb +4 -0
  37. data/app/mailers/railswiki/application_mailer.rb +6 -0
  38. data/app/models/railswiki/application_record.rb +5 -0
  39. data/app/models/railswiki/history.rb +14 -0
  40. data/app/models/railswiki/invite.rb +20 -0
  41. data/app/models/railswiki/page.rb +56 -0
  42. data/app/models/railswiki/uploaded_file.rb +32 -0
  43. data/app/models/railswiki/user.rb +27 -0
  44. data/app/uploaders/railswiki/file_uploader.rb +56 -0
  45. data/app/views/layouts/railswiki/application.html.erb +25 -0
  46. data/app/views/railswiki/histories/index.html.erb +33 -0
  47. data/app/views/railswiki/histories/show.html.erb +17 -0
  48. data/app/views/railswiki/invites/_form.html.erb +38 -0
  49. data/app/views/railswiki/invites/index.html.erb +39 -0
  50. data/app/views/railswiki/invites/new.html.erb +7 -0
  51. data/app/views/railswiki/invites/show.html.erb +34 -0
  52. data/app/views/railswiki/pages/_form.html.erb +144 -0
  53. data/app/views/railswiki/pages/edit.html.erb +8 -0
  54. data/app/views/railswiki/pages/history.html.erb +11 -0
  55. data/app/views/railswiki/pages/index.html.erb +72 -0
  56. data/app/views/railswiki/pages/new.html.erb +7 -0
  57. data/app/views/railswiki/pages/show.html.erb +36 -0
  58. data/app/views/railswiki/sessions/no_invite.erb +7 -0
  59. data/app/views/railswiki/sessions/not_authorized.html.erb +12 -0
  60. data/app/views/railswiki/uploaded_files/_form.html.erb +31 -0
  61. data/app/views/railswiki/uploaded_files/_inline.html.erb +5 -0
  62. data/app/views/railswiki/uploaded_files/edit.html.erb +8 -0
  63. data/app/views/railswiki/uploaded_files/file_dialog.html.erb +11 -0
  64. data/app/views/railswiki/uploaded_files/image_dialog.html.erb +11 -0
  65. data/app/views/railswiki/uploaded_files/index.html.erb +36 -0
  66. data/app/views/railswiki/uploaded_files/new.html.erb +7 -0
  67. data/app/views/railswiki/uploaded_files/show.html.erb +29 -0
  68. data/app/views/railswiki/users/_form.html.erb +29 -0
  69. data/app/views/railswiki/users/edit.html.erb +8 -0
  70. data/app/views/railswiki/users/index.html.erb +37 -0
  71. data/app/views/railswiki/users/show.html.erb +59 -0
  72. data/app/views/shared/_formatting.md.erb +29 -0
  73. data/app/views/shared/_histories.html.erb +21 -0
  74. data/app/views/shared/_layout.html.erb +17 -0
  75. data/app/views/shared/_menu.html.erb +15 -0
  76. data/app/views/shared/_meta.html.erb +1 -0
  77. data/app/views/shared/_notices.html.erb +3 -0
  78. data/app/views/shared/_roles.html.erb +12 -0
  79. data/app/views/shared/_search.md.erb +5 -0
  80. data/config/initializers/carrierwave.rb +6 -0
  81. data/config/initializers/omniauth.rb +16 -0
  82. data/config/initializers/session_store.rb +1 -0
  83. data/config/routes.rb +25 -0
  84. data/db/migrate/20170420000841_create_railswiki_pages.rb +10 -0
  85. data/db/migrate/20170420010111_add_sessions_table.rb +12 -0
  86. data/db/migrate/20170420010147_create_railswiki_users.rb +14 -0
  87. data/db/migrate/20170420021039_add_lowercase_title_to_page.rb +5 -0
  88. data/db/migrate/20170420021840_create_railswiki_histories.rb +11 -0
  89. data/db/migrate/20170420235420_add_email_and_image_to_user.rb +8 -0
  90. data/db/migrate/20170421000333_add_last_login_to_user.rb +5 -0
  91. data/db/migrate/20170421010945_add_role_to_user.rb +7 -0
  92. data/db/migrate/20170421020932_create_railswiki_uploaded_files.rb +10 -0
  93. data/db/migrate/20170421030140_add_title_to_uploaded_file.rb +5 -0
  94. data/db/migrate/20170517224700_create_railswiki_invites.rb +12 -0
  95. data/db/migrate/20170517234452_add_role_to_invite.rb +5 -0
  96. data/db/migrate/20170622033540_set_all_mysql_tables_to_utf8.rb +54 -0
  97. data/lib/railswiki.rb +5 -0
  98. data/lib/railswiki/engine.rb +14 -0
  99. data/lib/railswiki/version.rb +3 -0
  100. data/lib/tasks/railswiki_tasks.rake +4 -0
  101. metadata +255 -0
@@ -0,0 +1,21 @@
1
+ <table class="list-table">
2
+ <thead>
3
+ <tr>
4
+ <th>Title</th>
5
+ <th>Time</th>
6
+ <th colspan="2"></th>
7
+ </tr>
8
+ </thead>
9
+
10
+ <tbody>
11
+ <% histories.order(created_at: :desc).limit(20).each do |history| %>
12
+ <tr>
13
+ <td><%= link_to history.page.title, wiki_path(history.page) %></td>
14
+ <td><%= time_ago_in_words history.created_at %> ago</td>
15
+ <td><%= link_to 'Show', history %></td>
16
+ <td><%= link_to 'Destroy', history, method: :delete, data: { confirm: 'Are you sure?' } if user_can?(:delete_history) %></td>
17
+ </tr>
18
+ <% end %>
19
+ </tbody>
20
+ </table>
21
+
@@ -0,0 +1,17 @@
1
+ <header class="header">
2
+ <%= include_wiki "Special:Header" %>
3
+ </header>
4
+
5
+ <nav class="menu">
6
+ <%= render "shared/menu" %>
7
+ </nav>
8
+
9
+ <section class="content">
10
+ <%= render partial: "shared/notices" %>
11
+
12
+ <%= yield %>
13
+ </section>
14
+
15
+ <footer class="footer">
16
+ <%= include_wiki "Special:Footer" %>
17
+ </footer>
@@ -0,0 +1,15 @@
1
+ <nav>
2
+ <%= link_to "New page", new_page_path if user_can?(:create_page) %>
3
+ <%= link_to "Pages", pages_path if user_can?(:list_pages) %>
4
+ <%= link_to "Histories", histories_path if user_can?(:list_histories) %>
5
+ <%= link_to "Users", users_path if user_can?(:list_users) %>
6
+ <%= link_to "Invites", invites_path if user_can?(:list_invites) %>
7
+ <%= link_to "Files", uploaded_files_path if user_can?(:list_files) %>
8
+ <% if current_user %>
9
+ Logged in as
10
+ <%= link_to current_user.name, current_user %>
11
+ <%= link_to "Sign out", logout_path %>
12
+ <% else %>
13
+ <%= link_to "Sign in with Google", main_app.login_path %>
14
+ <% end %>
15
+ </nav>
@@ -0,0 +1 @@
1
+ <!-- empty -->
@@ -0,0 +1,3 @@
1
+ <% if notice.present? %>
2
+ <p id="notice"><%= notice %></p>
3
+ <% end %>
@@ -0,0 +1,12 @@
1
+ <div class="field">
2
+ <%= form.label :role %>
3
+ <%= form.select :role, Railswiki::User::AVAILABLE_ROLES %>
4
+ </div>
5
+
6
+ <h2>Description of roles:</h2>
7
+
8
+ <ul>
9
+ <li><strong><%= Railswiki::User::ROLE_ADMIN %></strong> users can edit, invite and remove users</li>
10
+ <li><strong><%= Railswiki::User::ROLE_EDITOR %></strong> users can edit pages and view page histories</li>
11
+ <li><strong><%= Railswiki::User::ROLE_DEFAULT %></strong> users can view pages</li>
12
+ </ul>
@@ -0,0 +1,5 @@
1
+ <%= form_tag(Railswiki::Engine.routes.url_helpers.pages_path, method: :get, class: "search-form") do |f| %>
2
+ <label for="search">Title:</label>
3
+ <%= text_field_tag :search, params[:search], placeholder: "Search" %>
4
+ <%= submit_tag "Search" %>
5
+ <% end %>
@@ -0,0 +1,6 @@
1
+ require_dependency "carrierwave"
2
+
3
+ CarrierWave.configure do |config|
4
+ config.root = Rails.root
5
+ CarrierWave.tmp_path = Rails.root.join 'tmp/uploads'
6
+ end
@@ -0,0 +1,16 @@
1
+ require_dependency 'omniauth'
2
+ require_dependency 'omniauth-google-oauth2'
3
+
4
+ Rails.application.config.middleware.use OmniAuth::Builder do
5
+ raise "No OAUTH_CLIENT_ID provided" unless ENV['OAUTH_CLIENT_ID']
6
+ raise "No OAUTH_CLIENT_SECRET provided" unless ENV['OAUTH_CLIENT_SECRET']
7
+
8
+ provider :google_oauth2,
9
+ ENV['OAUTH_CLIENT_ID'],
10
+ ENV['OAUTH_CLIENT_SECRET'],
11
+ {
12
+ name: "google_login",
13
+ approval_prompt: '',
14
+ verify_iss: false, # Fix Google screwing around with ISS spec. See https://github.com/zquestz/omniauth-google-oauth2/issues/292
15
+ }
16
+ end
@@ -0,0 +1 @@
1
+ Rails.application.config.session_store :active_record_store
@@ -0,0 +1,25 @@
1
+ Railswiki::Engine.routes.draw do
2
+ # get "/auth/google_login/callback" => "sessions#create"
3
+ get "/signout" => "sessions#destroy", as: :logout
4
+
5
+ get "/sessions/not_authorized"
6
+ get "/sessions/no_invite"
7
+
8
+ resources :pages do
9
+ get :history
10
+ end
11
+ resources :users, only: [:index, :show, :edit, :update, :destroy]
12
+ resources :invites, only: [:index, :new, :create, :show, :destroy]
13
+ resources :histories, only: [:show, :index, :destroy]
14
+ resources :uploaded_files do
15
+ collection do
16
+ get :image_dialog
17
+ get :file_dialog
18
+ end
19
+ end
20
+
21
+ get "/download/:title", to: "uploaded_files#download", as: "download_file", format: false, constraints: { title: /.*/ }
22
+ get "*path", to: 'pages#show', via: :get, as: :title
23
+
24
+ root to: "pages#show", id: "Home"
25
+ end
@@ -0,0 +1,10 @@
1
+ class CreateRailswikiPages < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :railswiki_pages do |t|
4
+ t.string :title, null: false, unique: true
5
+ t.integer :latest_version_id, null: true, index: true
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,12 @@
1
+ class AddSessionsTable < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :sessions do |t|
4
+ t.string :session_id, :null => false
5
+ t.text :data
6
+ t.timestamps
7
+ end
8
+
9
+ add_index :sessions, :session_id, :unique => true
10
+ add_index :sessions, :updated_at
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ class CreateRailswikiUsers < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :railswiki_users do |t|
4
+ t.string :provider
5
+ t.string :uid
6
+ t.string :name
7
+ t.string :refresh_token
8
+ t.string :access_token
9
+ t.timestamp :expires
10
+
11
+ t.timestamps
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,5 @@
1
+ class AddLowercaseTitleToPage < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :railswiki_pages, :lowercase_title, :string, null: false, unique: true
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ class CreateRailswikiHistories < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :railswiki_histories do |t|
4
+ t.integer :page_id, null: false, index: true
5
+ t.text :body
6
+ t.integer :author_id, null: false, index: true
7
+
8
+ t.timestamps
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,8 @@
1
+ class AddEmailAndImageToUser < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :railswiki_users, :email, :string
4
+ add_column :railswiki_users, :image_url, :string
5
+
6
+ add_index :railswiki_users, :email, :unique => true
7
+ end
8
+ end
@@ -0,0 +1,5 @@
1
+ class AddLastLoginToUser < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :railswiki_users, :last_login, :timestamp
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ class AddRoleToUser < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :railswiki_users, :role, :string
4
+
5
+ add_index :railswiki_users, :role
6
+ end
7
+ end
@@ -0,0 +1,10 @@
1
+ class CreateRailswikiUploadedFiles < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :railswiki_uploaded_files do |t|
4
+ t.string :file
5
+ t.integer :user_id, null: false, index: true
6
+
7
+ t.timestamps
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,5 @@
1
+ class AddTitleToUploadedFile < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :railswiki_uploaded_files, :title, :string
4
+ end
5
+ end
@@ -0,0 +1,12 @@
1
+ class CreateRailswikiInvites < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :railswiki_invites do |t|
4
+ t.string :email, null: false, unique: true
5
+ t.datetime :accepted_at, null: true
6
+ t.integer :inviting_user_id, null: false, index: true
7
+ t.integer :invited_user_id, null: true, index: true
8
+
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,5 @@
1
+ class AddRoleToInvite < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :railswiki_invites, :role, :string, null: false, default: "user"
4
+ end
5
+ end
@@ -0,0 +1,54 @@
1
+ class SetAllMysqlTablesToUtf8 < ActiveRecord::Migration[5.1]
2
+ MAX_VARCHAR_LENGTH = 191
3
+
4
+ def up
5
+ # we have to reduce the length of varchar(255) to varchar(191)
6
+ # so it fits in 255 bytes with UTF8 for MySQL
7
+ change_table :railswiki_users do |t|
8
+ t.change :provider, :string, limit: MAX_VARCHAR_LENGTH
9
+ t.change :uid, :string, limit: MAX_VARCHAR_LENGTH
10
+ t.change :name, :string, limit: MAX_VARCHAR_LENGTH
11
+ t.change :refresh_token, :string, limit: MAX_VARCHAR_LENGTH
12
+ t.change :access_token, :string, limit: MAX_VARCHAR_LENGTH
13
+ t.change :email, :string, limit: MAX_VARCHAR_LENGTH
14
+ t.change :image_url, :string, limit: MAX_VARCHAR_LENGTH
15
+ t.change :role, :string, limit: MAX_VARCHAR_LENGTH
16
+ end
17
+
18
+ change_table :railswiki_invites do |t|
19
+ t.change :email, :string, limit: MAX_VARCHAR_LENGTH
20
+ t.change :role, :string, limit: MAX_VARCHAR_LENGTH
21
+ end
22
+
23
+ change_table :railswiki_pages do |t|
24
+ t.change :title, :string, limit: MAX_VARCHAR_LENGTH
25
+ t.change :lowercase_title, :string, limit: MAX_VARCHAR_LENGTH
26
+ end
27
+
28
+ change_table :railswiki_uploaded_files do |t|
29
+ t.change :file, :string, limit: MAX_VARCHAR_LENGTH
30
+ t.change :title, :string, limit: MAX_VARCHAR_LENGTH
31
+ end
32
+
33
+ # then change the character sets
34
+ adapter_type = connection.adapter_name.downcase.to_sym
35
+ case adapter_type
36
+ when :mysql, :mysql2
37
+ [
38
+ "railswiki_histories",
39
+ "railswiki_invites",
40
+ "railswiki_pages",
41
+ "railswiki_uploaded_files",
42
+ "railswiki_users"
43
+ ].each do |table|
44
+ Railswiki::Page.connection.execute "ALTER TABLE #{table} CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
45
+ end
46
+ else
47
+ puts "Ignoring adapter #{adapter_type}"
48
+ end
49
+ end
50
+
51
+ def down
52
+ # We don't really care about the reversibility of this migration
53
+ end
54
+ end
@@ -0,0 +1,5 @@
1
+ require "railswiki/engine"
2
+
3
+ module Railswiki
4
+ # Your code goes here...
5
+ end
@@ -0,0 +1,14 @@
1
+ require 'active_record/session_store'
2
+ require 'webpacker'
3
+
4
+ module Railswiki
5
+ class Engine < ::Rails::Engine
6
+ isolate_namespace Railswiki
7
+
8
+ attr_accessor :use_slugs
9
+
10
+ def initialize
11
+ @use_slugs = false
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,3 @@
1
+ module Railswiki
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :railswiki do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,255 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: railswiki
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jevon Wright
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-02-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: '5.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: omniauth-google-oauth2
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activerecord-session_store
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: redcarpet
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
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: carrierwave
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '1.0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: email_validator
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
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: webpacker
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: sqlite3
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
+ description: A wiki engine in Rails 5.
126
+ email:
127
+ - jevon@jevon.org
128
+ executables: []
129
+ extensions: []
130
+ extra_rdoc_files: []
131
+ files:
132
+ - MIT-LICENSE
133
+ - README.md
134
+ - Rakefile
135
+ - app/assets/config/railswiki_manifest.js
136
+ - app/assets/javascripts/railswiki/application.js
137
+ - app/assets/javascripts/railswiki/histories.js
138
+ - app/assets/javascripts/railswiki/invites.js
139
+ - app/assets/javascripts/railswiki/pages.js
140
+ - app/assets/javascripts/railswiki/sessions.js
141
+ - app/assets/javascripts/railswiki/uploaded_files.js
142
+ - app/assets/javascripts/railswiki/users.js
143
+ - app/assets/stylesheets/railswiki/application.css
144
+ - app/assets/stylesheets/railswiki/histories.css
145
+ - app/assets/stylesheets/railswiki/invites.css
146
+ - app/assets/stylesheets/railswiki/pages.scss
147
+ - app/assets/stylesheets/railswiki/sessions.css
148
+ - app/assets/stylesheets/railswiki/uploaded_files.scss
149
+ - app/assets/stylesheets/railswiki/users.css
150
+ - app/controllers/railswiki/application_controller.rb
151
+ - app/controllers/railswiki/histories_controller.rb
152
+ - app/controllers/railswiki/invites_controller.rb
153
+ - app/controllers/railswiki/pages_controller.rb
154
+ - app/controllers/railswiki/sessions_controller.rb
155
+ - app/controllers/railswiki/uploaded_files_controller.rb
156
+ - app/controllers/railswiki/users_controller.rb
157
+ - app/helpers/railswiki/application_helper.rb
158
+ - app/helpers/railswiki/histories_helper.rb
159
+ - app/helpers/railswiki/invites_helper.rb
160
+ - app/helpers/railswiki/pages_helper.rb
161
+ - app/helpers/railswiki/sessions_helper.rb
162
+ - app/helpers/railswiki/title_helper.rb
163
+ - app/helpers/railswiki/uploaded_files_helper.rb
164
+ - app/helpers/railswiki/users_helper.rb
165
+ - app/helpers/railswiki/wiki_helper.rb
166
+ - app/jobs/railswiki/application_job.rb
167
+ - app/mailers/railswiki/application_mailer.rb
168
+ - app/models/railswiki/application_record.rb
169
+ - app/models/railswiki/history.rb
170
+ - app/models/railswiki/invite.rb
171
+ - app/models/railswiki/page.rb
172
+ - app/models/railswiki/uploaded_file.rb
173
+ - app/models/railswiki/user.rb
174
+ - app/uploaders/railswiki/file_uploader.rb
175
+ - app/views/layouts/railswiki/application.html.erb
176
+ - app/views/railswiki/histories/index.html.erb
177
+ - app/views/railswiki/histories/show.html.erb
178
+ - app/views/railswiki/invites/_form.html.erb
179
+ - app/views/railswiki/invites/index.html.erb
180
+ - app/views/railswiki/invites/new.html.erb
181
+ - app/views/railswiki/invites/show.html.erb
182
+ - app/views/railswiki/pages/_form.html.erb
183
+ - app/views/railswiki/pages/edit.html.erb
184
+ - app/views/railswiki/pages/history.html.erb
185
+ - app/views/railswiki/pages/index.html.erb
186
+ - app/views/railswiki/pages/new.html.erb
187
+ - app/views/railswiki/pages/show.html.erb
188
+ - app/views/railswiki/sessions/no_invite.erb
189
+ - app/views/railswiki/sessions/not_authorized.html.erb
190
+ - app/views/railswiki/uploaded_files/_form.html.erb
191
+ - app/views/railswiki/uploaded_files/_inline.html.erb
192
+ - app/views/railswiki/uploaded_files/edit.html.erb
193
+ - app/views/railswiki/uploaded_files/file_dialog.html.erb
194
+ - app/views/railswiki/uploaded_files/image_dialog.html.erb
195
+ - app/views/railswiki/uploaded_files/index.html.erb
196
+ - app/views/railswiki/uploaded_files/new.html.erb
197
+ - app/views/railswiki/uploaded_files/show.html.erb
198
+ - app/views/railswiki/users/_form.html.erb
199
+ - app/views/railswiki/users/edit.html.erb
200
+ - app/views/railswiki/users/index.html.erb
201
+ - app/views/railswiki/users/show.html.erb
202
+ - app/views/shared/_formatting.md.erb
203
+ - app/views/shared/_histories.html.erb
204
+ - app/views/shared/_layout.html.erb
205
+ - app/views/shared/_menu.html.erb
206
+ - app/views/shared/_meta.html.erb
207
+ - app/views/shared/_notices.html.erb
208
+ - app/views/shared/_roles.html.erb
209
+ - app/views/shared/_search.md.erb
210
+ - config/initializers/carrierwave.rb
211
+ - config/initializers/omniauth.rb
212
+ - config/initializers/session_store.rb
213
+ - config/routes.rb
214
+ - db/migrate/20170420000841_create_railswiki_pages.rb
215
+ - db/migrate/20170420010111_add_sessions_table.rb
216
+ - db/migrate/20170420010147_create_railswiki_users.rb
217
+ - db/migrate/20170420021039_add_lowercase_title_to_page.rb
218
+ - db/migrate/20170420021840_create_railswiki_histories.rb
219
+ - db/migrate/20170420235420_add_email_and_image_to_user.rb
220
+ - db/migrate/20170421000333_add_last_login_to_user.rb
221
+ - db/migrate/20170421010945_add_role_to_user.rb
222
+ - db/migrate/20170421020932_create_railswiki_uploaded_files.rb
223
+ - db/migrate/20170421030140_add_title_to_uploaded_file.rb
224
+ - db/migrate/20170517224700_create_railswiki_invites.rb
225
+ - db/migrate/20170517234452_add_role_to_invite.rb
226
+ - db/migrate/20170622033540_set_all_mysql_tables_to_utf8.rb
227
+ - lib/railswiki.rb
228
+ - lib/railswiki/engine.rb
229
+ - lib/railswiki/version.rb
230
+ - lib/tasks/railswiki_tasks.rake
231
+ homepage: https://github.com/soundasleep/railswiki
232
+ licenses:
233
+ - MIT
234
+ metadata: {}
235
+ post_install_message:
236
+ rdoc_options: []
237
+ require_paths:
238
+ - lib
239
+ required_ruby_version: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ required_rubygems_version: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - ">="
247
+ - !ruby/object:Gem::Version
248
+ version: '0'
249
+ requirements: []
250
+ rubyforge_project:
251
+ rubygems_version: 2.5.2
252
+ signing_key:
253
+ specification_version: 4
254
+ summary: A wiki engine in Rails 5.
255
+ test_files: []