enju_message 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +10 -0
- data/app/models/message.rb +5 -5
- data/app/models/message_request.rb +3 -4
- data/app/models/message_request_transition.rb +3 -4
- data/app/models/message_template.rb +3 -3
- data/app/models/message_transition.rb +3 -4
- data/app/views/message_templates/_form.html.erb +1 -1
- data/app/views/messages/index.rss.builder +2 -2
- data/db/migrate/149_create_message_templates.rb +3 -8
- data/db/migrate/154_create_messages.rb +4 -8
- data/db/migrate/20080819181903_create_message_requests.rb +2 -7
- data/db/migrate/20110913115320_add_lft_and_rgt_to_message.rb +2 -7
- data/db/migrate/20120125050502_add_depth_to_message.rb +1 -2
- data/db/migrate/20140518111006_create_message_transitions.rb +3 -8
- data/db/migrate/20140518135713_create_message_request_transitions.rb +3 -8
- data/db/migrate/20160703185015_add_most_recent_to_message_transitions.rb +1 -1
- data/db/migrate/20160814165332_add_most_recent_to_message_request_transitions.rb +1 -1
- data/db/migrate/20180107162659_add_constraints_to_most_recent_for_message_transitions.rb +1 -1
- data/db/migrate/20180107162711_add_constraints_to_most_recent_for_message_request_transitions.rb +1 -1
- data/lib/enju_message/version.rb +1 -1
- data/spec/controllers/messages_controller_spec.rb +7 -7
- data/spec/dummy/app/controllers/application_controller.rb +0 -1
- data/spec/dummy/app/jobs/application_job.rb +7 -0
- data/spec/dummy/app/models/application_record.rb +3 -0
- data/spec/dummy/app/models/user.rb +1 -1
- data/spec/dummy/bin/bundle +1 -1
- data/spec/dummy/bin/setup +1 -3
- data/spec/dummy/bin/update +4 -2
- data/spec/dummy/bin/yarn +3 -3
- data/spec/dummy/config/environments/development.rb +9 -2
- data/spec/dummy/config/environments/production.rb +7 -4
- data/spec/dummy/config/environments/test.rb +5 -1
- data/spec/dummy/config/storage.yml +34 -0
- data/spec/dummy/db/migrate/005_create_manifestations.rb +3 -3
- data/spec/dummy/db/migrate/20100606065209_create_user_has_roles.rb +2 -4
- data/spec/dummy/db/migrate/20140122054321_create_profiles.rb +4 -5
- data/spec/dummy/db/migrate/20150421023923_create_identities.rb +14 -0
- data/spec/dummy/db/migrate/20151126005552_add_provider_to_identity.rb +5 -0
- data/spec/dummy/db/migrate/20151213070943_add_translation_table_to_library_group.rb +0 -8
- data/spec/dummy/db/migrate/20160319144230_create_issn_records.rb +11 -0
- data/spec/dummy/db/migrate/20160506144040_create_isbn_records.rb +11 -0
- data/spec/dummy/db/migrate/20170114174536_add_profile_id_to_user.rb +5 -0
- data/spec/dummy/db/migrate/20170116134107_create_issn_record_and_manifestations.rb +11 -0
- data/spec/dummy/db/migrate/20170116134120_create_isbn_record_and_manifestations.rb +11 -0
- data/spec/dummy/db/migrate/20180107160726_add_constraints_to_most_recent_for_user_import_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20180107160740_add_constraints_to_most_recent_for_user_export_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20180107161311_add_constraints_to_most_recent_for_agent_import_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20180107161331_add_constraints_to_most_recent_for_resource_import_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20180107161347_add_constraints_to_most_recent_for_resource_export_file_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20180107161410_add_constraints_to_most_recent_for_import_request_transitions.rb +1 -1
- data/spec/dummy/db/migrate/20181026064038_add_login_banner_to_library_group.rb +6 -0
- data/spec/dummy/db/migrate/20181030072731_add_not_null_to_position_on_carrier_type.rb +14 -0
- data/spec/dummy/db/migrate/20181030074920_add_not_null_to_position_on_library.rb +14 -0
- data/spec/dummy/db/migrate/20190208135957_create_active_storage_tables.active_storage.rb +27 -0
- data/spec/dummy/db/migrate/20190818075603_add_memo_to_manifestation.rb +5 -0
- data/spec/dummy/db/migrate/20190818075628_add_memo_to_item.rb +5 -0
- data/spec/dummy/db/migrate/20191219122214_create_custom_properties.rb +12 -0
- data/spec/dummy/db/schema.rb +125 -34
- data/spec/factories/message.rb +2 -2
- data/spec/factories/profile.rb +10 -7
- data/spec/factories/user.rb +22 -19
- data/spec/fixtures/message_request_transitions.yml +2 -2
- data/spec/fixtures/message_requests.yml +2 -3
- data/spec/fixtures/message_templates.yml +2 -2
- data/spec/fixtures/messages.yml +3 -3
- data/spec/models/message_request_spec.rb +2 -3
- data/spec/models/message_spec.rb +3 -3
- data/spec/models/message_template_spec.rb +2 -2
- data/spec/views/messages/index.html.erb_spec.rb +3 -9
- metadata +89 -17
- data/README.rdoc +0 -10
- data/spec/dummy/config/initializers/secret_token.rb +0 -7
- data/spec/dummy/config/initializers/session_store.rb +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 624376e2dbfc81534b053da0ea00034c9fd74e28097019525fb0f17159b70630
|
4
|
+
data.tar.gz: ea8c300d45c115ace37c41db2f3492fd0f27e7847222eb36c9741001b2316751
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9106d542d5c6ddb7974727a0bb32db080597f7bbc6596a429eea0049ca0c8bdc99807e42aad20468be39dc922260a6b73f9933f87627f35108e4d57bb1d06c86
|
7
|
+
data.tar.gz: fb951fc23c9dbc64e40a887c398c71b2cd921562c105c798b676f690f965a04858f4aec899931a3052bfbf2ba794aee9ad3ff832dd9e640a6a7e93765fa41f31
|
data/README.md
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# EnjuMessage
|
2
|
+
[![Travis CI](https://travis-ci.com/next-l/enju_message.svg?branch=1.3)](https://travis-ci.com/next-l/enju_message)
|
3
|
+
[![Coverage Status](https://coveralls.io/repos/github/next-l/enju_message/badge.svg?branch=1.3)](https://coveralls.io/github/next-l/enju_message?branch=1.3)
|
4
|
+
[![security](https://hakiri.io/github/next-l/enju_message/1.3.svg)](https://hakiri.io/github/next-l/enju_message/1.3)
|
5
|
+
|
6
|
+
This project rocks and uses MIT-LICENSE.
|
7
|
+
|
8
|
+
## 製作者・貢献者 (Authors and contributors)
|
9
|
+
* [TANABE, Kosuke](https://github.com/nabeta) ([@nabeta](https://twitter.com/nabeta))
|
10
|
+
* [Project Next-L](https://www.next-l.jp) ([@ProjectNextL](https://twitter.com/ProjectNextL))
|
data/app/models/message.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
class Message <
|
1
|
+
class Message < ApplicationRecord
|
2
2
|
include Statesman::Adapters::ActiveRecordQueries
|
3
3
|
scope :unread, -> {in_state('unread')}
|
4
4
|
belongs_to :message_request, optional: true
|
@@ -42,7 +42,7 @@ class Message < ActiveRecord::Base
|
|
42
42
|
|
43
43
|
def set_receiver
|
44
44
|
if recipient
|
45
|
-
self.receiver = User.
|
45
|
+
self.receiver = User.find_by(username: recipient)
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
@@ -80,14 +80,14 @@ end
|
|
80
80
|
#
|
81
81
|
# id :integer not null, primary key
|
82
82
|
# read_at :datetime
|
83
|
-
# receiver_id :integer
|
84
83
|
# sender_id :integer
|
84
|
+
# receiver_id :integer
|
85
85
|
# subject :string not null
|
86
86
|
# body :text
|
87
87
|
# message_request_id :integer
|
88
88
|
# parent_id :integer
|
89
|
-
# created_at :datetime
|
90
|
-
# updated_at :datetime
|
89
|
+
# created_at :datetime not null
|
90
|
+
# updated_at :datetime not null
|
91
91
|
# lft :integer
|
92
92
|
# rgt :integer
|
93
93
|
# depth :integer
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class MessageRequest <
|
1
|
+
class MessageRequest < ApplicationRecord
|
2
2
|
include Statesman::Adapters::ActiveRecordQueries
|
3
3
|
scope :not_sent, -> {in_state(:pending).where('sent_at IS NULL')}
|
4
4
|
scope :sent, -> {in_state(:sent)}
|
@@ -83,8 +83,7 @@ end
|
|
83
83
|
# receiver_id :integer
|
84
84
|
# message_template_id :integer
|
85
85
|
# sent_at :datetime
|
86
|
-
# deleted_at :datetime
|
87
86
|
# body :text
|
88
|
-
# created_at :datetime
|
89
|
-
# updated_at :datetime
|
87
|
+
# created_at :datetime not null
|
88
|
+
# updated_at :datetime not null
|
90
89
|
#
|
@@ -1,6 +1,5 @@
|
|
1
|
-
class MessageRequestTransition <
|
1
|
+
class MessageRequestTransition < ApplicationRecord
|
2
2
|
include Statesman::Adapters::ActiveRecordTransition
|
3
|
-
|
4
3
|
|
5
4
|
belongs_to :message_request, inverse_of: :message_request_transitions
|
6
5
|
# attr_accessible :to_state, :sort_key, :metadata
|
@@ -15,7 +14,7 @@ end
|
|
15
14
|
# metadata :text default({})
|
16
15
|
# sort_key :integer
|
17
16
|
# message_request_id :integer
|
18
|
-
# created_at :datetime
|
19
|
-
# updated_at :datetime
|
17
|
+
# created_at :datetime not null
|
18
|
+
# updated_at :datetime not null
|
20
19
|
# most_recent :boolean not null
|
21
20
|
#
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class MessageTemplate <
|
1
|
+
class MessageTemplate < ApplicationRecord
|
2
2
|
has_many :message_requests
|
3
3
|
|
4
4
|
validates :status, uniqueness: true
|
@@ -31,6 +31,6 @@ end
|
|
31
31
|
# body :text not null
|
32
32
|
# position :integer
|
33
33
|
# locale :string default("en")
|
34
|
-
# created_at :datetime
|
35
|
-
# updated_at :datetime
|
34
|
+
# created_at :datetime not null
|
35
|
+
# updated_at :datetime not null
|
36
36
|
#
|
@@ -1,6 +1,5 @@
|
|
1
|
-
class MessageTransition <
|
1
|
+
class MessageTransition < ApplicationRecord
|
2
2
|
include Statesman::Adapters::ActiveRecordTransition
|
3
|
-
|
4
3
|
|
5
4
|
belongs_to :message, inverse_of: :message_transitions
|
6
5
|
# attr_accessible :to_state, :sort_key, :metadata
|
@@ -15,7 +14,7 @@ end
|
|
15
14
|
# metadata :text default({})
|
16
15
|
# sort_key :integer
|
17
16
|
# message_id :integer
|
18
|
-
# created_at :datetime
|
19
|
-
# updated_at :datetime
|
17
|
+
# created_at :datetime not null
|
18
|
+
# updated_at :datetime not null
|
20
19
|
# most_recent :boolean not null
|
21
20
|
#
|
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
<div class="field">
|
10
10
|
<%= f.label :locale %><br />
|
11
|
-
<%= f.select(:locale, @available_languages.collect{|language| [language.display_name
|
11
|
+
<%= f.select(:locale, @available_languages.collect{|language| [language.display_name, language.iso_639_1]}) %>
|
12
12
|
</div>
|
13
13
|
|
14
14
|
<div class="field">
|
@@ -7,7 +7,7 @@ xml.rss('version' => "2.0",
|
|
7
7
|
xml.title t('message.user_message', login_name: @user.username)
|
8
8
|
xml.link messages_url(@user, format: :rss)
|
9
9
|
else
|
10
|
-
xml.title t('message.library_group_message', library_group_name: @library_group.display_name
|
10
|
+
xml.title t('message.library_group_message', library_group_name: @library_group.display_name)
|
11
11
|
xml.link messages_url(format: :rss)
|
12
12
|
end
|
13
13
|
xml.description "Next-L Enju, an open source integrated library system developed by Project Next-L"
|
@@ -16,7 +16,7 @@ xml.rss('version' => "2.0",
|
|
16
16
|
xml.tag! "atom:link", rel: 'self', href: messages_url(format: :rss)
|
17
17
|
xml.tag! "atom:link", rel: 'alternate', href: messages_url
|
18
18
|
# xml.tag! "atom:link", rel: 'search', type: 'application/opensearchdescription+xml', href: "http://#{request.host_with_port}/page/opensearch"
|
19
|
-
|
19
|
+
if params[:query].present?
|
20
20
|
xml.tag! "opensearch:totalResults", @messages.total_entries
|
21
21
|
xml.tag! "opensearch:startIndex", @messages.offset + 1
|
22
22
|
xml.tag! "opensearch:itemsPerPage", @messages.per_page
|
@@ -1,7 +1,7 @@
|
|
1
|
-
class CreateMessageTemplates < ActiveRecord::Migration[
|
2
|
-
def
|
1
|
+
class CreateMessageTemplates < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
3
|
create_table :message_templates do |t|
|
4
|
-
t.string :status, null: false
|
4
|
+
t.string :status, null: false, index: {unique: true}
|
5
5
|
t.text :title, null: false
|
6
6
|
t.text :body, null: false
|
7
7
|
t.integer :position
|
@@ -9,10 +9,5 @@ class CreateMessageTemplates < ActiveRecord::Migration[4.2]
|
|
9
9
|
|
10
10
|
t.timestamps
|
11
11
|
end
|
12
|
-
add_index :message_templates, :status, unique: true
|
13
|
-
end
|
14
|
-
|
15
|
-
def self.down
|
16
|
-
drop_table :message_templates
|
17
12
|
end
|
18
13
|
end
|
@@ -1,19 +1,15 @@
|
|
1
|
-
class CreateMessages < ActiveRecord::Migration[
|
2
|
-
def
|
3
|
-
create_table :messages
|
1
|
+
class CreateMessages < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
|
+
create_table :messages do |t|
|
4
4
|
t.datetime :read_at
|
5
5
|
t.references :sender, index: true
|
6
6
|
t.references :receiver, index: true
|
7
7
|
t.string :subject, null: false
|
8
8
|
t.text :body
|
9
9
|
t.references :message_request, index: true
|
10
|
-
t.references :parent,
|
10
|
+
t.references :parent, foreign_key: {to_table: :messages}
|
11
11
|
|
12
12
|
t.timestamps
|
13
13
|
end
|
14
14
|
end
|
15
|
-
|
16
|
-
def self.down
|
17
|
-
drop_table :messages
|
18
|
-
end
|
19
15
|
end
|
@@ -1,18 +1,13 @@
|
|
1
|
-
class CreateMessageRequests < ActiveRecord::Migration[
|
2
|
-
def
|
1
|
+
class CreateMessageRequests < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
3
|
create_table :message_requests do |t|
|
4
4
|
t.references :sender
|
5
5
|
t.references :receiver
|
6
6
|
t.references :message_template
|
7
7
|
t.datetime :sent_at
|
8
|
-
t.datetime :deleted_at
|
9
8
|
t.text :body
|
10
9
|
|
11
10
|
t.timestamps
|
12
11
|
end
|
13
12
|
end
|
14
|
-
|
15
|
-
def self.down
|
16
|
-
drop_table :message_requests
|
17
|
-
end
|
18
13
|
end
|
@@ -1,11 +1,6 @@
|
|
1
|
-
class AddLftAndRgtToMessage < ActiveRecord::Migration[
|
2
|
-
def
|
1
|
+
class AddLftAndRgtToMessage < ActiveRecord::Migration[5.2]
|
2
|
+
def change
|
3
3
|
add_column :messages, :lft, :integer
|
4
4
|
add_column :messages, :rgt, :integer
|
5
5
|
end
|
6
|
-
|
7
|
-
def self.down
|
8
|
-
remove_column :messages, :rgt
|
9
|
-
remove_column :messages, :lft
|
10
|
-
end
|
11
6
|
end
|
@@ -1,18 +1,13 @@
|
|
1
|
-
class CreateMessageTransitions < ActiveRecord::Migration[
|
1
|
+
class CreateMessageTransitions < ActiveRecord::Migration[5.2]
|
2
2
|
def change
|
3
3
|
create_table :message_transitions do |t|
|
4
4
|
t.string :to_state
|
5
|
-
|
6
|
-
t.text :metadata
|
7
|
-
else
|
8
|
-
t.text :metadata, default: "{}"
|
9
|
-
end
|
5
|
+
t.text :metadata, default: '{}'
|
10
6
|
t.integer :sort_key
|
11
|
-
t.
|
7
|
+
t.references :message
|
12
8
|
t.timestamps
|
13
9
|
end
|
14
10
|
|
15
|
-
add_index :message_transitions, :message_id
|
16
11
|
add_index :message_transitions, [:sort_key, :message_id], unique: true
|
17
12
|
end
|
18
13
|
end
|
@@ -1,18 +1,13 @@
|
|
1
|
-
class CreateMessageRequestTransitions < ActiveRecord::Migration[
|
1
|
+
class CreateMessageRequestTransitions < ActiveRecord::Migration[5.2]
|
2
2
|
def change
|
3
3
|
create_table :message_request_transitions do |t|
|
4
4
|
t.string :to_state
|
5
|
-
|
6
|
-
t.text :metadata
|
7
|
-
else
|
8
|
-
t.text :metadata, default: "{}"
|
9
|
-
end
|
5
|
+
t.text :metadata, default: '{}'
|
10
6
|
t.integer :sort_key
|
11
|
-
t.
|
7
|
+
t.references :message_request
|
12
8
|
t.timestamps
|
13
9
|
end
|
14
10
|
|
15
|
-
add_index :message_request_transitions, :message_request_id
|
16
11
|
add_index :message_request_transitions, [:sort_key, :message_request_id], unique: true, name: "index_message_request_transitions_on_sort_key_and_request_id"
|
17
12
|
end
|
18
13
|
end
|
data/lib/enju_message/version.rb
CHANGED
@@ -448,13 +448,13 @@ describe MessagesController do
|
|
448
448
|
end
|
449
449
|
|
450
450
|
it 'should not update my message' do
|
451
|
-
put :update, params: { id:
|
451
|
+
put :update, params: { id: messages(:user2_to_user1_1), message: {} }
|
452
452
|
response.should be_forbidden
|
453
453
|
end
|
454
454
|
|
455
455
|
it "should not update other user's message" do
|
456
456
|
lambda do
|
457
|
-
put :update, params: { id:
|
457
|
+
put :update, params: { id: messages(:user1_to_user2_1), message: {} }
|
458
458
|
end.should raise_error(ActiveRecord::RecordNotFound)
|
459
459
|
response.should be_successful
|
460
460
|
end
|
@@ -462,7 +462,7 @@ describe MessagesController do
|
|
462
462
|
|
463
463
|
describe 'When not logged in' do
|
464
464
|
it 'assigns the requested message as @message' do
|
465
|
-
put :update, params: { id:
|
465
|
+
put :update, params: { id: messages(:user2_to_user1_1), message: {} }
|
466
466
|
response.should redirect_to new_user_session_url
|
467
467
|
end
|
468
468
|
end
|
@@ -482,14 +482,14 @@ describe MessagesController do
|
|
482
482
|
login_fixture_user
|
483
483
|
|
484
484
|
it 'should destroy own message' do
|
485
|
-
delete :destroy, params: { id:
|
485
|
+
delete :destroy, params: { id: messages(:user2_to_user1_1) }
|
486
486
|
response.should redirect_to messages_url
|
487
487
|
response.should_not be_forbidden
|
488
488
|
end
|
489
489
|
|
490
490
|
it "should not destroy other user's message" do
|
491
491
|
lambda do
|
492
|
-
delete :destroy, params: { id:
|
492
|
+
delete :destroy, params: { id: messages(:user1_to_user2_1) }
|
493
493
|
end.should raise_error(ActiveRecord::RecordNotFound)
|
494
494
|
response.should be_successful
|
495
495
|
end
|
@@ -497,12 +497,12 @@ describe MessagesController do
|
|
497
497
|
|
498
498
|
describe 'When not logged in' do
|
499
499
|
it 'destroys the requested message' do
|
500
|
-
delete :destroy, params: { id:
|
500
|
+
delete :destroy, params: { id: messages(:user1_to_user2_1) }
|
501
501
|
response.should redirect_to(new_user_session_url)
|
502
502
|
end
|
503
503
|
|
504
504
|
it 'should be redirected to new_user_session_url' do
|
505
|
-
delete :destroy, params: { id:
|
505
|
+
delete :destroy, params: { id: messages(:user1_to_user2_1) }
|
506
506
|
response.should redirect_to(new_user_session_url)
|
507
507
|
end
|
508
508
|
end
|
@@ -0,0 +1,7 @@
|
|
1
|
+
class ApplicationJob < ActiveJob::Base
|
2
|
+
# Automatically retry jobs that encountered a deadlock
|
3
|
+
# retry_on ActiveRecord::Deadlocked
|
4
|
+
|
5
|
+
# Most jobs are safe to ignore if the underlying records are no longer available
|
6
|
+
# discard_on ActiveJob::DeserializationError
|
7
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class User <
|
1
|
+
class User < ApplicationRecord
|
2
2
|
# Include default devise modules. Others available are:
|
3
3
|
# :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
|
4
4
|
devise :database_authenticatable, #:registerable,
|
data/spec/dummy/bin/bundle
CHANGED
data/spec/dummy/bin/setup
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
require 'pathname'
|
3
2
|
require 'fileutils'
|
4
3
|
include FileUtils
|
5
4
|
|
6
5
|
# path to your application root.
|
7
|
-
APP_ROOT =
|
6
|
+
APP_ROOT = File.expand_path('..', __dir__)
|
8
7
|
|
9
8
|
def system!(*args)
|
10
9
|
system(*args) || abort("\n== Command #{args} failed ==")
|
@@ -21,7 +20,6 @@ chdir APP_ROOT do
|
|
21
20
|
# Install JavaScript dependencies if using Yarn
|
22
21
|
# system('bin/yarn')
|
23
22
|
|
24
|
-
|
25
23
|
# puts "\n== Copying sample files =="
|
26
24
|
# unless File.exist?('config/database.yml')
|
27
25
|
# cp 'config/database.yml.sample', 'config/database.yml'
|
data/spec/dummy/bin/update
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
require 'pathname'
|
3
2
|
require 'fileutils'
|
4
3
|
include FileUtils
|
5
4
|
|
6
5
|
# path to your application root.
|
7
|
-
APP_ROOT =
|
6
|
+
APP_ROOT = File.expand_path('..', __dir__)
|
8
7
|
|
9
8
|
def system!(*args)
|
10
9
|
system(*args) || abort("\n== Command #{args} failed ==")
|
@@ -18,6 +17,9 @@ chdir APP_ROOT do
|
|
18
17
|
system! 'gem install bundler --conservative'
|
19
18
|
system('bundle check') || system!('bundle install')
|
20
19
|
|
20
|
+
# Install JavaScript dependencies if using Yarn
|
21
|
+
# system('bin/yarn')
|
22
|
+
|
21
23
|
puts "\n== Updating database =="
|
22
24
|
system! 'bin/rails db:migrate'
|
23
25
|
|