unsakini 0.0.4.pre.1 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -27
- data/angular/angular-cli.json +3 -5
- data/{public/unsakini/app → angular/dist}/favicon.ico +0 -0
- data/angular/dist/index.html +14 -0
- data/angular/dist/inline.bundle.js +139 -0
- data/angular/dist/inline.map +1 -0
- data/angular/dist/main.bundle.js +64689 -0
- data/angular/dist/main.map +1 -0
- data/angular/dist/styles.bundle.js +364 -0
- data/angular/dist/styles.map +1 -0
- data/angular/package.json +1 -4
- data/angular/src/app/app.component.html +4 -1
- data/angular/src/app/app.module.ts +7 -8
- data/angular/src/app/app.routes.module.ts +2 -12
- data/angular/src/app/index.ts +0 -2
- data/angular/src/app/registration/registration.component.html +12 -70
- data/angular/src/app/registration/registration.component.spec.ts +11 -8
- data/angular/src/app/registration/registration.component.ts +8 -10
- data/angular/src/environments/environment.prod.ts +1 -2
- data/angular/src/environments/environment.ts +1 -2
- data/angular/src/index.html +1 -1
- data/angular/src/styles.css +1 -0
- data/app/controllers/api/boards_controller.rb +73 -0
- data/app/controllers/api/comments_controller.rb +51 -0
- data/app/controllers/api/posts_controller.rb +58 -0
- data/app/controllers/api/share_board_controller.rb +118 -0
- data/app/controllers/api/users_controller.rb +40 -0
- data/app/controllers/application_controller.rb +2 -2
- data/app/controllers/concerns/board_owner_controller_concern.rb +38 -0
- data/app/controllers/concerns/comment_owner_controller_concern.rb +33 -0
- data/app/controllers/concerns/logged_in_controller_concern.rb +21 -0
- data/app/controllers/concerns/post_owner_controller_concern.rb +36 -0
- data/app/controllers/concerns/serializer_controller_concern.rb +11 -0
- data/app/controllers/user_token_controller.rb +2 -0
- data/app/controllers/web_base_controller.rb +23 -0
- data/app/models/application_record.rb +5 -0
- data/app/models/board.rb +14 -0
- data/app/models/comment.rb +9 -0
- data/app/models/concerns/encryptable_model_concern.rb +96 -0
- data/app/models/post.rb +12 -0
- data/app/models/user.rb +15 -0
- data/app/models/user_board.rb +82 -0
- data/app/serializers/board_serializer.rb +5 -0
- data/app/serializers/{unsakini/comment_serializer.rb → comment_serializer.rb} +3 -6
- data/app/serializers/post_serializer.rb +23 -0
- data/app/serializers/user_board_serializer.rb +11 -0
- data/app/serializers/{unsakini/user_serializer.rb → user_serializer.rb} +2 -5
- data/app/views/{unsakini/web → web_base}/index.html.erb +169 -65
- data/config/routes.rb +10 -10
- data/db/migrate/20161116114222_create_boards.rb +9 -0
- data/db/migrate/{20161116200034_create_unsakini_user_boards.rb → 20161116200034_create_user_boards.rb} +2 -3
- data/db/migrate/{20161118031023_create_unsakini_posts.rb → 20161118031023_create_posts.rb} +2 -2
- data/db/migrate/{20161118100454_create_unsakini_comments.rb → 20161118100454_create_comments.rb} +2 -2
- data/db/migrate/20161118221508_add_encrypted_password_to_user_board.rb +5 -0
- data/db/migrate/20161122211105_create_users.rb +12 -0
- data/db/migrate/20161124102633_add_is_shared_to_boards.rb +5 -0
- data/lib/generators/unsakini/angular/USAGE +8 -0
- data/lib/generators/unsakini/angular/angular_generator.rb +7 -0
- data/lib/generators/unsakini/config/config_generator.rb +1 -3
- data/lib/tasks/unsakini_tasks.rake +37 -6
- data/lib/unsakini/engine.rb +0 -2
- data/lib/unsakini/version.rb +1 -1
- data/public/css/custom.css +1 -5
- data/public/images/logo.svg +619 -0
- data/spec/concerns/models/encryptable_concern.rb +2 -3
- data/spec/controllers/{web_controller_spec.rb → web_base_controller_spec.rb} +3 -4
- data/spec/dummy/config/application.rb +1 -3
- data/spec/dummy/config/environments/development.rb +0 -2
- data/spec/dummy/config/initializers/assets.rb +11 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20161124210219_create_boards.unsakini_engine.rb +10 -0
- data/spec/dummy/db/migrate/20161124210220_create_user_boards.unsakini_engine.rb +12 -0
- data/spec/dummy/db/migrate/20161124210221_create_posts.unsakini_engine.rb +13 -0
- data/spec/dummy/db/migrate/20161124210222_create_comments.unsakini_engine.rb +12 -0
- data/spec/dummy/db/migrate/20161124210223_add_encrypted_password_to_user_board.unsakini_engine.rb +6 -0
- data/spec/dummy/db/migrate/20161124210224_create_users.unsakini_engine.rb +13 -0
- data/spec/dummy/db/migrate/20161124210225_add_is_shared_to_boards.unsakini_engine.rb +6 -0
- data/spec/dummy/db/schema.rb +14 -16
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/public/app/favicon.ico +0 -0
- data/spec/dummy/public/app/index.html +14 -0
- data/spec/dummy/public/app/inline.bundle.js +139 -0
- data/spec/dummy/public/app/inline.map +1 -0
- data/spec/dummy/public/app/main.bundle.js +64689 -0
- data/spec/dummy/public/app/main.map +1 -0
- data/spec/dummy/public/app/styles.bundle.js +364 -0
- data/spec/dummy/public/app/styles.map +1 -0
- data/spec/dummy/tmp/unsakini-ng2/LICENSE +21 -0
- data/spec/dummy/tmp/unsakini-ng2/README.md +1 -0
- data/spec/dummy/tmp/unsakini-ng2/angular-cli.json +59 -0
- data/spec/dummy/tmp/unsakini-ng2/e2e/app.e2e-spec.ts +14 -0
- data/spec/dummy/tmp/unsakini-ng2/e2e/app.po.ts +11 -0
- data/spec/dummy/tmp/unsakini-ng2/e2e/signup.e2e-spec.ts +28 -0
- data/spec/dummy/tmp/unsakini-ng2/e2e/signup.po.ts +31 -0
- data/spec/dummy/tmp/unsakini-ng2/e2e/tsconfig.json +16 -0
- data/spec/dummy/tmp/unsakini-ng2/karma.conf.js +45 -0
- data/spec/dummy/tmp/unsakini-ng2/package.json +49 -0
- data/spec/dummy/tmp/unsakini-ng2/protractor.conf.js +32 -0
- data/spec/dummy/tmp/unsakini-ng2/src/app/app.component.css +0 -0
- data/spec/dummy/tmp/unsakini-ng2/src/app/app.component.html +4 -0
- data/spec/dummy/tmp/unsakini-ng2/src/app/app.component.spec.ts +47 -0
- data/spec/dummy/tmp/unsakini-ng2/src/app/app.component.ts +10 -0
- data/spec/dummy/tmp/unsakini-ng2/src/app/app.module.ts +29 -0
- data/spec/dummy/tmp/unsakini-ng2/src/app/app.routes.module.ts +29 -0
- data/spec/dummy/tmp/unsakini-ng2/src/app/index.ts +2 -0
- data/spec/dummy/tmp/unsakini-ng2/src/app/registration/registration.component.css +0 -0
- data/spec/dummy/tmp/unsakini-ng2/src/app/registration/registration.component.html +14 -0
- data/spec/dummy/tmp/unsakini-ng2/src/app/registration/registration.component.spec.ts +157 -0
- data/spec/dummy/tmp/unsakini-ng2/src/app/registration/registration.component.ts +42 -0
- data/spec/dummy/tmp/unsakini-ng2/src/environments/environment.prod.ts +3 -0
- data/spec/dummy/tmp/unsakini-ng2/src/environments/environment.ts +8 -0
- data/spec/dummy/tmp/unsakini-ng2/src/favicon.ico +0 -0
- data/spec/dummy/tmp/unsakini-ng2/src/index.html +14 -0
- data/spec/dummy/tmp/unsakini-ng2/src/main.ts +12 -0
- data/spec/dummy/tmp/unsakini-ng2/src/polyfills.ts +19 -0
- data/spec/dummy/tmp/unsakini-ng2/src/styles.css +1 -0
- data/spec/dummy/tmp/unsakini-ng2/src/test.ts +31 -0
- data/spec/dummy/tmp/unsakini-ng2/src/tsconfig.json +18 -0
- data/spec/dummy/tmp/unsakini-ng2/src/typings.d.ts +2 -0
- data/spec/dummy/tmp/unsakini-ng2/tslint.json +114 -0
- data/spec/dummy/tmp/unsakini-ng2/typings.json +4 -0
- data/spec/factories/boards.rb +1 -1
- data/spec/factories/comments.rb +1 -1
- data/spec/factories/posts.rb +1 -1
- data/spec/factories/user_boards.rb +1 -1
- data/spec/factories/users.rb +1 -1
- data/spec/models/board_spec.rb +2 -2
- data/spec/models/comment_spec.rb +2 -2
- data/spec/models/post_spec.rb +2 -2
- data/spec/models/user_board_spec.rb +19 -19
- data/spec/models/user_spec.rb +1 -1
- data/spec/requests/{boards/boards_crud_spec.rb → api/boards/api_boards_crud_spec.rb} +26 -26
- data/spec/requests/{boards/boards_pagination_spec.rb → api/boards/api_boards_pagination_spec.rb} +7 -7
- data/spec/requests/{boards/private_board_spec.rb → api/boards/api_private_board_spec.rb} +26 -26
- data/spec/requests/{boards/shared_board_spec.rb → api/boards/api_shared_board_spec.rb} +9 -9
- data/spec/requests/{boards/sharing_board_spec.rb → api/boards/api_sharing_board_spec.rb} +13 -13
- data/spec/requests/{comments/comments_pagination_spec.rb → api/comments/api_comments_pagination_spec.rb} +3 -3
- data/spec/requests/{comments/comments_private_board_spec.rb → api/comments/api_comments_private_board_spec.rb} +20 -20
- data/spec/requests/{comments/comments_shared_board_spec.rb → api/comments/api_comments_shared_board_spec.rb} +17 -17
- data/spec/requests/{posts/posts_pagination_spec.rb → api/posts/api_posts_pagination_spec.rb} +3 -3
- data/spec/requests/{posts/posts_private_board_spec.rb → api/posts/api_posts_private_board_spec.rb} +22 -22
- data/spec/requests/{posts/posts_shared_board_spec.rb → api/posts/api_posts_shared_board_spec.rb} +24 -24
- data/spec/requests/{user/user_create_spec.rb → api/user/api_user_create_spec.rb} +23 -19
- data/spec/requests/{user/user_search_spec.rb → api/user/api_user_search_spec.rb} +9 -9
- data/spec/spec_helper.rb +0 -1
- data/spec/support/auth_helper.rb +2 -0
- metadata +202 -135
- data/angular/npm-debug.log +0 -54
- data/angular/src/app/confirm-account/confirm-account.component.ts +0 -27
- data/angular/src/app/confirm-account/confirm-account.html +0 -41
- data/angular/src/app/confirm-account/confirm-account.module.ts +0 -24
- data/angular/src/app/confirm-account/confirm-account.scss +0 -3
- data/angular/src/app/confirm-account/confirm-account.service.ts +0 -27
- data/angular/src/app/confirm-account/index.ts +0 -3
- data/angular/src/app/login/index.ts +0 -3
- data/angular/src/app/login/login.component.ts +0 -40
- data/angular/src/app/login/login.html +0 -43
- data/angular/src/app/login/login.module.ts +0 -27
- data/angular/src/app/login/login.service.ts +0 -48
- data/angular/src/app/registration/index.ts +0 -3
- data/angular/src/app/registration/registration.module.ts +0 -23
- data/angular/src/app/registration/registration.service.ts +0 -46
- data/angular/src/app/registration/registration.services.spec.ts +0 -71
- data/angular/src/app/services/auth-http/auth.http.service.ts +0 -35
- data/angular/src/app/services/auth-http/index.ts +0 -1
- data/angular/src/app/services/http/http.service.spec.ts +0 -205
- data/angular/src/app/services/http/http.service.ts +0 -40
- data/angular/src/app/services/http/index.ts +0 -1
- data/angular/src/app/services/index.ts +0 -3
- data/angular/src/app/services/services.module.ts +0 -33
- data/angular/src/assets/global.scss +0 -3
- data/angular/src/environments/custom.ts +0 -4
- data/app/controllers/concerns/unsakini/board_owner_controller_concern.rb +0 -42
- data/app/controllers/concerns/unsakini/comment_owner_controller_concern.rb +0 -36
- data/app/controllers/concerns/unsakini/logged_in_controller_concern.rb +0 -23
- data/app/controllers/concerns/unsakini/post_owner_controller_concern.rb +0 -38
- data/app/controllers/concerns/unsakini/serializer_controller_concern.rb +0 -13
- data/app/controllers/unsakini/base_controller.rb +0 -6
- data/app/controllers/unsakini/boards_controller.rb +0 -76
- data/app/controllers/unsakini/comments_controller.rb +0 -54
- data/app/controllers/unsakini/posts_controller.rb +0 -61
- data/app/controllers/unsakini/share_board_controller.rb +0 -122
- data/app/controllers/unsakini/user_token_controller.rb +0 -17
- data/app/controllers/unsakini/users_controller.rb +0 -69
- data/app/controllers/unsakini/web_controller.rb +0 -27
- data/app/mailers/unsakini/user_mailer.rb +0 -13
- data/app/models/concerns/unsakini/encryptable_model_concern.rb +0 -97
- data/app/models/unsakini/application_record.rb +0 -7
- data/app/models/unsakini/board.rb +0 -16
- data/app/models/unsakini/comment.rb +0 -12
- data/app/models/unsakini/post.rb +0 -15
- data/app/models/unsakini/user.rb +0 -43
- data/app/models/unsakini/user_board.rb +0 -84
- data/app/models/unsakini.rb +0 -5
- data/app/serializers/unsakini/board_serializer.rb +0 -7
- data/app/serializers/unsakini/post_serializer.rb +0 -26
- data/app/serializers/unsakini/user_board_serializer.rb +0 -14
- data/app/views/unsakini/user_mailer/confirm_account.html.erb +0 -3
- data/db/migrate/20161116114222_create_unsakini_boards.rb +0 -10
- data/db/migrate/20161126145352_create_unsakini_users.rb +0 -15
- data/lib/generators/unsakini/dependencies/USAGE +0 -5
- data/lib/generators/unsakini/dependencies/dependencies_generator.rb +0 -19
- data/public/images/unsakini.svg +0 -56
- data/public/unsakini/app/448c34a56d699c29117adc64c43affeb.woff2 +0 -0
- data/public/unsakini/app/89889688147bd7575d6327160d64e760.svg +0 -288
- data/public/unsakini/app/assets/global.scss +0 -3
- data/public/unsakini/app/e18bbf611f2a2e43afc071aa2f4e1512.ttf +0 -0
- data/public/unsakini/app/f4769f9bdb7466be65088239c12046d1.eot +0 -0
- data/public/unsakini/app/fa2772327f55d8198301fdb8bcfc8158.woff +0 -0
- data/public/unsakini/app/index.html +0 -14
- data/public/unsakini/app/inline.d41d8cd98f00b204e980.bundle.js +0 -2
- data/public/unsakini/app/inline.d41d8cd98f00b204e980.bundle.map +0 -1
- data/public/unsakini/app/main.54f49c65d3d20650a5d5.bundle.js +0 -2152
- data/public/unsakini/app/main.54f49c65d3d20650a5d5.bundle.js.gz +0 -0
- data/public/unsakini/app/main.54f49c65d3d20650a5d5.bundle.map +0 -1
- data/public/unsakini/app/styles.58e065928ed8ebd0b582.bundle.js +0 -2
- data/public/unsakini/app/styles.58e065928ed8ebd0b582.bundle.map +0 -1
- data/public/unsakini/app/styles.5dac0e986fce6f8738b300cb558b56a0.bundle.css +0 -8
- data/spec/dummy/config/initializers/knock.rb +0 -59
- data/spec/schema/jwt.json +0 -9
@@ -4,7 +4,7 @@ shared_examples_for "encryptable" do |attributes|
|
|
4
4
|
let(:model) { described_class } # the class that includes the concern
|
5
5
|
|
6
6
|
let(:model_instance) {
|
7
|
-
build(described_class.to_s.underscore.
|
7
|
+
build(described_class.to_s.underscore.to_sym)
|
8
8
|
}
|
9
9
|
|
10
10
|
it "has encryptable attributes" do
|
@@ -14,13 +14,12 @@ shared_examples_for "encryptable" do |attributes|
|
|
14
14
|
|
15
15
|
it "encrypts and decrypts encryptable attributes" do
|
16
16
|
model_hash = parse_json(model_instance.to_json)
|
17
|
-
model_instance.save
|
17
|
+
model_instance.save
|
18
18
|
where_param = Hash.new
|
19
19
|
model_instance.encryptable_attributes.each do |variable|
|
20
20
|
where_param[variable] = model_hash[variable.to_s]
|
21
21
|
end
|
22
22
|
expect(model.where(where_param).count).to eq 0
|
23
|
-
expect(model.find(model_instance.id)).not_to be_nil
|
24
23
|
end
|
25
24
|
|
26
25
|
it "encrypts data before saving and decrypts it after saving" do
|
@@ -12,15 +12,14 @@ RSpec.describe "WebBaseController", type: :request do
|
|
12
12
|
|
13
13
|
def self.visit_app_urls(urls)
|
14
14
|
urls.each do |url|
|
15
|
-
it "renders
|
15
|
+
it "renders app/index.html when visiting #{url}" do
|
16
16
|
get "/#{url}"
|
17
|
-
|
18
|
-
expect(response.body).to match File.read("#{gem_root}/public/unsakini/app/index.html")
|
17
|
+
expect(response.body).to match File.read(Rails.public_path.join("app","index.html"))
|
19
18
|
end
|
20
19
|
end
|
21
20
|
end
|
22
21
|
|
23
|
-
visit_app_urls(['/
|
22
|
+
visit_app_urls(['/app', 'app/', 'app/*anything'])
|
24
23
|
|
25
24
|
end
|
26
25
|
|
@@ -7,11 +7,9 @@ require "unsakini"
|
|
7
7
|
|
8
8
|
module Dummy
|
9
9
|
class Application < Rails::Application
|
10
|
-
config.action_mailer.default_url_options = { :host => "localhost:3000" }
|
11
10
|
# Settings in config/environments/* take precedence over those specified here.
|
12
11
|
# Application configuration should go into files in config/initializers
|
13
12
|
# -- all .rb files in that directory are automatically loaded.
|
14
|
-
config.action_mailer.default_url_options = { :host => "localhost:3000" }
|
15
|
-
config.action_mailer.delivery_method = :letter_opener
|
16
13
|
end
|
17
14
|
end
|
15
|
+
|
@@ -1,6 +1,4 @@
|
|
1
1
|
Rails.application.configure do
|
2
|
-
config.action_mailer.default_url_options = { :host => "localhost:3000" }
|
3
|
-
config.action_mailer.delivery_method = :letter_opener
|
4
2
|
# Settings specified here will take precedence over those in config/application.rb.
|
5
3
|
|
6
4
|
# In the development environment your application's code is reloaded on
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# Be sure to restart your server when you modify this file.
|
2
|
+
|
3
|
+
# Version of your assets, change this if you want to expire all your assets.
|
4
|
+
Rails.application.config.assets.version = '1.0'
|
5
|
+
|
6
|
+
# Add additional assets to the asset load path
|
7
|
+
# Rails.application.config.assets.paths << Emoji.images_path
|
8
|
+
|
9
|
+
# Precompile additional assets.
|
10
|
+
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
11
|
+
# Rails.application.config.assets.precompile += %w( search.js )
|
Binary file
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# This migration comes from unsakini_engine (originally 20161116200034)
|
2
|
+
class CreateUserBoards < ActiveRecord::Migration[5.0]
|
3
|
+
def change
|
4
|
+
create_table :user_boards do |t|
|
5
|
+
t.integer :user_id
|
6
|
+
t.integer :board_id
|
7
|
+
t.boolean :is_admin, :default => false
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# This migration comes from unsakini_engine (originally 20161118031023)
|
2
|
+
class CreatePosts < ActiveRecord::Migration[5.0]
|
3
|
+
def change
|
4
|
+
create_table :posts do |t|
|
5
|
+
t.text :title
|
6
|
+
t.text :content
|
7
|
+
t.integer :user_id
|
8
|
+
t.integer :board_id
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# This migration comes from unsakini_engine (originally 20161118100454)
|
2
|
+
class CreateComments < ActiveRecord::Migration[5.0]
|
3
|
+
def change
|
4
|
+
create_table :comments do |t|
|
5
|
+
t.text :content
|
6
|
+
t.integer :user_id
|
7
|
+
t.integer :post_id
|
8
|
+
|
9
|
+
t.timestamps
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# This migration comes from unsakini_engine (originally 20161122211105)
|
2
|
+
class CreateUsers < ActiveRecord::Migration[5.0]
|
3
|
+
def change
|
4
|
+
create_table :users do |t|
|
5
|
+
t.string :name
|
6
|
+
t.string :email
|
7
|
+
t.string :password_digest
|
8
|
+
t.boolean :confirmed
|
9
|
+
|
10
|
+
t.timestamps
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -10,16 +10,16 @@
|
|
10
10
|
#
|
11
11
|
# It's strongly recommended that you check this file into your version control system.
|
12
12
|
|
13
|
-
ActiveRecord::Schema.define(version:
|
13
|
+
ActiveRecord::Schema.define(version: 20161124210225) do
|
14
14
|
|
15
|
-
create_table "
|
15
|
+
create_table "boards", force: :cascade do |t|
|
16
16
|
t.text "name"
|
17
|
-
t.boolean "is_shared", default: false
|
18
17
|
t.datetime "created_at", null: false
|
19
18
|
t.datetime "updated_at", null: false
|
19
|
+
t.boolean "is_shared", default: false
|
20
20
|
end
|
21
21
|
|
22
|
-
create_table "
|
22
|
+
create_table "comments", force: :cascade do |t|
|
23
23
|
t.text "content"
|
24
24
|
t.integer "user_id"
|
25
25
|
t.integer "post_id"
|
@@ -27,7 +27,7 @@ ActiveRecord::Schema.define(version: 20161126145352) do
|
|
27
27
|
t.datetime "updated_at", null: false
|
28
28
|
end
|
29
29
|
|
30
|
-
create_table "
|
30
|
+
create_table "posts", force: :cascade do |t|
|
31
31
|
t.text "title"
|
32
32
|
t.text "content"
|
33
33
|
t.integer "user_id"
|
@@ -36,24 +36,22 @@ ActiveRecord::Schema.define(version: 20161126145352) do
|
|
36
36
|
t.datetime "updated_at", null: false
|
37
37
|
end
|
38
38
|
|
39
|
-
create_table "
|
39
|
+
create_table "user_boards", force: :cascade do |t|
|
40
40
|
t.integer "user_id"
|
41
41
|
t.integer "board_id"
|
42
|
-
t.string "encrypted_password"
|
43
42
|
t.boolean "is_admin", default: false
|
44
43
|
t.datetime "created_at", null: false
|
45
44
|
t.datetime "updated_at", null: false
|
45
|
+
t.string "encrypted_password"
|
46
46
|
end
|
47
47
|
|
48
|
-
create_table "
|
49
|
-
t.string "name"
|
50
|
-
t.string "email"
|
51
|
-
t.string "password_digest"
|
52
|
-
t.
|
53
|
-
t.datetime "
|
54
|
-
t.datetime "
|
55
|
-
t.datetime "created_at", null: false
|
56
|
-
t.datetime "updated_at", null: false
|
48
|
+
create_table "users", force: :cascade do |t|
|
49
|
+
t.string "name"
|
50
|
+
t.string "email"
|
51
|
+
t.string "password_digest"
|
52
|
+
t.boolean "confirmed"
|
53
|
+
t.datetime "created_at", null: false
|
54
|
+
t.datetime "updated_at", null: false
|
57
55
|
end
|
58
56
|
|
59
57
|
end
|
data/spec/dummy/db/test.sqlite3
CHANGED
Binary file
|
Binary file
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<title>Angular</title>
|
6
|
+
<base href="/app/">
|
7
|
+
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
9
|
+
<link rel="icon" type="image/x-icon" href="favicon.ico">
|
10
|
+
</head>
|
11
|
+
<body>
|
12
|
+
<app-root>Loading...</app-root>
|
13
|
+
<script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body>
|
14
|
+
</html>
|
@@ -0,0 +1,139 @@
|
|
1
|
+
/******/ (function(modules) { // webpackBootstrap
|
2
|
+
/******/ // install a JSONP callback for chunk loading
|
3
|
+
/******/ var parentJsonpFunction = window["webpackJsonp"];
|
4
|
+
/******/ window["webpackJsonp"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {
|
5
|
+
/******/ // add "moreModules" to the modules object,
|
6
|
+
/******/ // then flag all "chunkIds" as loaded and fire callback
|
7
|
+
/******/ var moduleId, chunkId, i = 0, resolves = [], result;
|
8
|
+
/******/ for(;i < chunkIds.length; i++) {
|
9
|
+
/******/ chunkId = chunkIds[i];
|
10
|
+
/******/ if(installedChunks[chunkId])
|
11
|
+
/******/ resolves.push(installedChunks[chunkId][0]);
|
12
|
+
/******/ installedChunks[chunkId] = 0;
|
13
|
+
/******/ }
|
14
|
+
/******/ for(moduleId in moreModules) {
|
15
|
+
/******/ if(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {
|
16
|
+
/******/ modules[moduleId] = moreModules[moduleId];
|
17
|
+
/******/ }
|
18
|
+
/******/ }
|
19
|
+
/******/ if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);
|
20
|
+
/******/ while(resolves.length)
|
21
|
+
/******/ resolves.shift()();
|
22
|
+
/******/ if(executeModules) {
|
23
|
+
/******/ for(i=0; i < executeModules.length; i++) {
|
24
|
+
/******/ result = __webpack_require__(__webpack_require__.s = executeModules[i]);
|
25
|
+
/******/ }
|
26
|
+
/******/ }
|
27
|
+
/******/ return result;
|
28
|
+
/******/ };
|
29
|
+
/******/
|
30
|
+
/******/ // The module cache
|
31
|
+
/******/ var installedModules = {};
|
32
|
+
/******/
|
33
|
+
/******/ // objects to store loaded and loading chunks
|
34
|
+
/******/ var installedChunks = {
|
35
|
+
/******/ 2: 0
|
36
|
+
/******/ };
|
37
|
+
/******/
|
38
|
+
/******/ // The require function
|
39
|
+
/******/ function __webpack_require__(moduleId) {
|
40
|
+
/******/
|
41
|
+
/******/ // Check if module is in cache
|
42
|
+
/******/ if(installedModules[moduleId])
|
43
|
+
/******/ return installedModules[moduleId].exports;
|
44
|
+
/******/
|
45
|
+
/******/ // Create a new module (and put it into the cache)
|
46
|
+
/******/ var module = installedModules[moduleId] = {
|
47
|
+
/******/ i: moduleId,
|
48
|
+
/******/ l: false,
|
49
|
+
/******/ exports: {}
|
50
|
+
/******/ };
|
51
|
+
/******/
|
52
|
+
/******/ // Execute the module function
|
53
|
+
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
54
|
+
/******/
|
55
|
+
/******/ // Flag the module as loaded
|
56
|
+
/******/ module.l = true;
|
57
|
+
/******/
|
58
|
+
/******/ // Return the exports of the module
|
59
|
+
/******/ return module.exports;
|
60
|
+
/******/ }
|
61
|
+
/******/
|
62
|
+
/******/ // This file contains only the entry chunk.
|
63
|
+
/******/ // The chunk loading function for additional chunks
|
64
|
+
/******/ __webpack_require__.e = function requireEnsure(chunkId) {
|
65
|
+
/******/ if(installedChunks[chunkId] === 0)
|
66
|
+
/******/ return Promise.resolve();
|
67
|
+
/******/
|
68
|
+
/******/ // an Promise means "currently loading".
|
69
|
+
/******/ if(installedChunks[chunkId]) {
|
70
|
+
/******/ return installedChunks[chunkId][2];
|
71
|
+
/******/ }
|
72
|
+
/******/ // start chunk loading
|
73
|
+
/******/ var head = document.getElementsByTagName('head')[0];
|
74
|
+
/******/ var script = document.createElement('script');
|
75
|
+
/******/ script.type = 'text/javascript';
|
76
|
+
/******/ script.charset = 'utf-8';
|
77
|
+
/******/ script.async = true;
|
78
|
+
/******/ script.timeout = 120000;
|
79
|
+
/******/
|
80
|
+
/******/ script.src = __webpack_require__.p + "" + chunkId + ".chunk.js";
|
81
|
+
/******/ var timeout = setTimeout(onScriptComplete, 120000);
|
82
|
+
/******/ script.onerror = script.onload = onScriptComplete;
|
83
|
+
/******/ function onScriptComplete() {
|
84
|
+
/******/ // avoid mem leaks in IE.
|
85
|
+
/******/ script.onerror = script.onload = null;
|
86
|
+
/******/ clearTimeout(timeout);
|
87
|
+
/******/ var chunk = installedChunks[chunkId];
|
88
|
+
/******/ if(chunk !== 0) {
|
89
|
+
/******/ if(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));
|
90
|
+
/******/ installedChunks[chunkId] = undefined;
|
91
|
+
/******/ }
|
92
|
+
/******/ };
|
93
|
+
/******/ head.appendChild(script);
|
94
|
+
/******/
|
95
|
+
/******/ var promise = new Promise(function(resolve, reject) {
|
96
|
+
/******/ installedChunks[chunkId] = [resolve, reject];
|
97
|
+
/******/ });
|
98
|
+
/******/ return installedChunks[chunkId][2] = promise;
|
99
|
+
/******/ };
|
100
|
+
/******/
|
101
|
+
/******/ // expose the modules object (__webpack_modules__)
|
102
|
+
/******/ __webpack_require__.m = modules;
|
103
|
+
/******/
|
104
|
+
/******/ // expose the module cache
|
105
|
+
/******/ __webpack_require__.c = installedModules;
|
106
|
+
/******/
|
107
|
+
/******/ // identity function for calling harmory imports with the correct context
|
108
|
+
/******/ __webpack_require__.i = function(value) { return value; };
|
109
|
+
/******/
|
110
|
+
/******/ // define getter function for harmory exports
|
111
|
+
/******/ __webpack_require__.d = function(exports, name, getter) {
|
112
|
+
/******/ Object.defineProperty(exports, name, {
|
113
|
+
/******/ configurable: false,
|
114
|
+
/******/ enumerable: true,
|
115
|
+
/******/ get: getter
|
116
|
+
/******/ });
|
117
|
+
/******/ };
|
118
|
+
/******/
|
119
|
+
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
120
|
+
/******/ __webpack_require__.n = function(module) {
|
121
|
+
/******/ var getter = module && module.__esModule ?
|
122
|
+
/******/ function getDefault() { return module['default']; } :
|
123
|
+
/******/ function getModuleExports() { return module; };
|
124
|
+
/******/ __webpack_require__.d(getter, 'a', getter);
|
125
|
+
/******/ return getter;
|
126
|
+
/******/ };
|
127
|
+
/******/
|
128
|
+
/******/ // Object.prototype.hasOwnProperty.call
|
129
|
+
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
130
|
+
/******/
|
131
|
+
/******/ // __webpack_public_path__
|
132
|
+
/******/ __webpack_require__.p = "";
|
133
|
+
/******/
|
134
|
+
/******/ // on error function for async loading
|
135
|
+
/******/ __webpack_require__.oe = function(err) { console.error(err); throw err; };
|
136
|
+
/******/ })
|
137
|
+
/************************************************************************/
|
138
|
+
/******/ ([]);
|
139
|
+
//# sourceMappingURL=inline.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["webpack:///webpack/bootstrap 85be513a23ff72067b81"],"names":[],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAQ,oBAAoB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAI;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mDAA2C,cAAc;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA,YAAI;AACJ;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;AAEA;AACA,kDAA0C,oBAAoB,WAAW","file":"inline.bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tvar parentJsonpFunction = window[\"webpackJsonp\"];\n \twindow[\"webpackJsonp\"] = function webpackJsonpCallback(chunkIds, moreModules, executeModules) {\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [], result;\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(installedChunks[chunkId])\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules, executeModules);\n \t\twhile(resolves.length)\n \t\t\tresolves.shift()();\n \t\tif(executeModules) {\n \t\t\tfor(i=0; i < executeModules.length; i++) {\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = executeModules[i]);\n \t\t\t}\n \t\t}\n \t\treturn result;\n \t};\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// objects to store loaded and loading chunks\n \tvar installedChunks = {\n \t\t2: 0\n \t};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tif(installedChunks[chunkId] === 0)\n \t\t\treturn Promise.resolve();\n\n \t\t// an Promise means \"currently loading\".\n \t\tif(installedChunks[chunkId]) {\n \t\t\treturn installedChunks[chunkId][2];\n \t\t}\n \t\t// start chunk loading\n \t\tvar head = document.getElementsByTagName('head')[0];\n \t\tvar script = document.createElement('script');\n \t\tscript.type = 'text/javascript';\n \t\tscript.charset = 'utf-8';\n \t\tscript.async = true;\n \t\tscript.timeout = 120000;\n\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".chunk.js\";\n \t\tvar timeout = setTimeout(onScriptComplete, 120000);\n \t\tscript.onerror = script.onload = onScriptComplete;\n \t\tfunction onScriptComplete() {\n \t\t\t// avoid mem leaks in IE.\n \t\t\tscript.onerror = script.onload = null;\n \t\t\tclearTimeout(timeout);\n \t\t\tvar chunk = installedChunks[chunkId];\n \t\t\tif(chunk !== 0) {\n \t\t\t\tif(chunk) chunk[1](new Error('Loading chunk ' + chunkId + ' failed.'));\n \t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t}\n \t\t};\n \t\thead.appendChild(script);\n\n \t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\tinstalledChunks[chunkId] = [resolve, reject];\n \t\t});\n \t\treturn installedChunks[chunkId][2] = promise;\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmory imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmory exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tObject.defineProperty(exports, name, {\n \t\t\tconfigurable: false,\n \t\t\tenumerable: true,\n \t\t\tget: getter\n \t\t});\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 85be513a23ff72067b81"],"sourceRoot":""}
|