app/models/kuroko2/job_definition.rb in kuroko2-0.5.2 vs app/models/kuroko2/job_definition.rb in kuroko2-0.6.0

- old
+ new

@@ -33,11 +33,11 @@ has_many :revisions, -> { order(id: :desc) }, class_name: 'ScriptRevision', dependent: :destroy has_one :memory_expectancy, dependent: :destroy before_destroy :confirm_active_instances after_initialize :set_default_values - after_save :create_default_memory_expectancy, on: :create + after_create :create_default_memory_expectancy scope :ordered, -> { order(:id) } scope :tagged_by, ->(tags) { where( id: Kuroko2::JobDefinitionTag. @@ -60,18 +60,18 @@ where(or_query) } - validates :name, length: { maximum: 40 }, presence: true + validates :name, length: { maximum: 180 }, presence: true validates :description, presence: true validates :script, presence: true validate :script_syntax validate :validate_number_of_admins validates :hipchat_additional_text, length: { maximum: 180 } validates :slack_channel, - length: { maximum: 22, too_long: ' is too long (maximum is 21 characters without `#` symbol at the head)' }, + length: { maximum: 81, too_long: ' is too long (maximum is 80 characters without `#` symbol at the head)' }, format: { with: /\A#[^\.\s]+\z/, allow_blank: true, message: ' must start with # and must not include any dots or spaces' } validates :webhook_url, format: { with: /\A#{URI::regexp(%w(http https))}\z/, allow_blank: true } @@ -100,18 +100,30 @@ job_instances.create!(script: script, log_message: message) end def save_and_record_revision(edited_user: nil) - record_revision(edited_user: edited_user) - save + transaction do + if save + record_revision(edited_user: edited_user) + true + else + false + end + end end def update_and_record_revision(attributes, edited_user: nil) assign_attributes(attributes) - record_revision(edited_user: edited_user) - save + transaction do + if save + record_revision(edited_user: edited_user) + true + else + false + end + end end private def confirm_active_instances @@ -140,11 +152,12 @@ EOF end def record_revision(edited_user: nil) unless revisions.first.try(:script) == script - revisions.new(script: script, user: edited_user, changed_at: Time.current) + revisions.create!(script: script, user: edited_user, changed_at: Time.current) end + nil end def create_default_memory_expectancy create_memory_expectancy! unless memory_expectancy end