Skip to content

Instantly share code, notes, and snippets.

@Insood
Created June 4, 2018 15:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Insood/e45965c00a22df9a0a5c49d8561c17b0 to your computer and use it in GitHub Desktop.
Save Insood/e45965c00a22df9a0a5c49d8561c17b0 to your computer and use it in GitHub Desktop.
module Build::BeaterScan
attr_accessor :beater1_sn, :beater2_sn, :beater3_sn, :beater4_sn
def self.included(base)
base.load_beater_serial_numbers()
base.validates :beater1_sn, format: { with: /\A([BZ]\d{8}|\d{4}.{2}\d{4})\z/, message: "must have the format XnnnnYYMM OR YYMMRXnnnn"}
base.validates :beater2_sn, format: { with: /\A([BZ]\d{8}|\d{4}.{2}\d{4})\z/, message: "must have the format XnnnnYYMM OR YYMMRXnnnn"}, allow_blank: true
base.validates :beater3_sn, format: { with: /\A([BZ]\d{8}|\d{4}.{2}\d{4})\z/, message: "must have the format XnnnnYYMM OR YYMMRXnnnn"}, allow_blank: true
base.validates :beater4_sn, format: { with: /\A([BZ]\d{8}|\d{4}.{2}\d{4})\z/, message: "must have the format XnnnnYYMM OR YYMMRXnnnn"}, allow_blank: true
base.validate :no_duplicate_beater_motors
end
def no_duplicate_beater_motors
scans = { beater1_sn: self.beater1_sn,
beater2_sn: self.beater2_sn,
beater3_sn: self.beater3_sn,
beater4_sn: self.beater4_sn }.select { |k,v| !v.blank? }
scans.each do |input, value|
if scans.count { |k,v| v == value } > 1 then
errors.add(input, "is a duplicate serial number")
end
end
end
def summarize_beater_serial_numbers
data["Beater 1"] = self.beater1_sn if !self.beater1_sn.blank?
data["Beater 2"] = self.beater2_sn if !self.beater2_sn.blank?
data["Beater 3"] = self.beater3_sn if !self.beater3_sn.blank?
data["Beater 4"] = self.beater4_sn if !self.beater4_sn.blank?
return data.collect{ |k,v| "#{k} : #{v}"}.sort.join("\n")
end
def load_beater_serial_numbers
bm = build_item.build_master_record
if bm then
self.beater1_sn = bm.LeftBeaterMotorSN
self.beater2_sn = bm.MiddleBeaterMotorSN
self.beater3_sn = bm.RMiddleBeaterMoterSN
self.beater4_sn = bm.RightBeaterMoterSN
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment