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