mirror of
https://github.com/astuto/astuto.git
synced 2025-12-16 19:57:52 +01:00
Random color assigned to new post statuses
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
class PostStatus < ApplicationRecord
|
class PostStatus < ApplicationRecord
|
||||||
after_initialize :set_order_to_last
|
after_initialize :set_random_color, :set_order_to_last
|
||||||
|
|
||||||
validates :name, presence: true, uniqueness: true
|
validates :name, presence: true, uniqueness: true
|
||||||
validates :color, format: { with: /\A#(?:[0-9a-fA-F]{3}){1,2}\z/ }
|
validates :color, format: { with: /\A#(?:[0-9a-fA-F]{3}){1,2}\z/ }
|
||||||
@@ -12,6 +12,13 @@ class PostStatus < ApplicationRecord
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def set_random_color
|
||||||
|
return unless new_record?
|
||||||
|
return unless color.nil?
|
||||||
|
|
||||||
|
self.color = '#' + Random.bytes(3).unpack1('H*')
|
||||||
|
end
|
||||||
|
|
||||||
def set_order_to_last
|
def set_order_to_last
|
||||||
return unless new_record?
|
return unless new_record?
|
||||||
return unless order.nil?
|
return unless order.nil?
|
||||||
|
|||||||
@@ -62,6 +62,12 @@ RSpec.describe PostStatus, type: :model do
|
|||||||
expect(roadmap.second).to eq(post_status2)
|
expect(roadmap.second).to eq(post_status2)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'automatically sets a random color if not specified' do
|
||||||
|
post_status1 = PostStatus.new
|
||||||
|
|
||||||
|
expect(post_status1.color).to match(/\A#(?:[0-9a-fA-F]{3}){1,2}\z/)
|
||||||
|
end
|
||||||
|
|
||||||
it 'automatically sets order to last order if not specified' do
|
it 'automatically sets order to last order if not specified' do
|
||||||
order = 10
|
order = 10
|
||||||
post_status1 = FactoryBot.create(:post_status, order: order)
|
post_status1 = FactoryBot.create(:post_status, order: order)
|
||||||
|
|||||||
Reference in New Issue
Block a user