Skip to content

Instantly share code, notes, and snippets.

@isubas
Created April 20, 2017 13:38
Show Gist options
  • Save isubas/6272c15751e7a4abb537e9b6397f57b2 to your computer and use it in GitHub Desktop.
Save isubas/6272c15751e7a4abb537e9b6397f57b2 to your computer and use it in GitHub Desktop.
SCHEMA = {
sunum: {
ignore: [0, 5],
updated: [1, 2, 3, 4]
},
pdf: {
ignore: [0, 5],
updated: [1, 2, 3, 4]
},
video: {
ignore: [1, 4],
updated: [0, 2, 3, 5]
}
}.freeze
ENUM = { a: 0, b: 1, c: 2, d: 3, e: 4, f: 5 }.freeze
#"CourseWeek durumları güncellendiğinde"
def update_state(related, cs, ns)
owner_id = find_owner()
if SCHEMA[related][:ignore].include?(ns)
normal(ns)
elsif ns > cs
ileri(related, cs, ns)
else
geri(related, cs, ns)
end
end
def normal(ns)
if ns.zero?
'Bütün durum nil yap'
else
'İlgili durumu güncelle'
end
end
# 1 -> 4 guncellenecek
def ileri(related, cs, ns)
csi = find_index(related, cs)
nsi = find_index(related, ns)
guncelenecek_durumlar = SCHEMA[related][:updated][csi..nsi]
hh = create_hash(guncelenecek_durumlar)
puts hh
end
def geri(related, cs, ns)
csi = find_index(related, cs)
nsi = find_index(related, ns)
nil_olacaklar = SCHEMA[related][:updated][nsi..csi]
guncellenecek = nsi
puts 'nil geri'
puts nil_olacaklar
puts 'guncelle geri'
puts guncellenecek
end
def find_index(related, value)
SCHEMA[related][:updated].index(value) + 1
end
def create_hash(gd)
ENUM.select { |k, v| gd.include?(v) }.keys
end
update_state(:sunum, 1, 4)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment