Код IT
← Каталог

Простые приложения на Ruby — Как запустить

Фрагмент из «Простые приложения на Ruby»: Как запустить.

Ruby main.rb
require 'json'

DB = 'tasks.json'

def load_tasks
  return [] unless File.exist?(DB)
  JSON.parse(File.read(DB, encoding: 'UTF-8'))
rescue JSON::ParserError
  []
end

def save_tasks(tasks)
  File.write(DB, JSON.pretty_generate(tasks), encoding: 'UTF-8')
end

def add_task(title)
  tasks = load_tasks
  tasks << { id: Time.now.to_i, title: title, done: false }
  save_tasks(tasks)
end

def toggle(id)
  tasks = load_tasks
  task = tasks.find { |t| t['id'] == id }
  return warn('нет задачи') unless task
  task['done'] = !task['done']
  save_tasks(tasks)
end

add_task('Изучить Ruby')
load_tasks.each { |t| puts "[#{t['done'] ? 'x' : ' '}] #{t['title']}" }
require 'json'

DB = 'tasks.json'

def load_tasks
  return [] unless File.exist?(DB)
  JSON.parse(File.read(DB, encoding: 'UTF-8'))
rescue JSON::ParserError
  []
end

def save_tasks(tasks)
  File.write(DB, JSON.pretty_generate(tasks), encoding: 'UTF-8')
end

def add_task(title)
  tasks = load_tasks
  tasks << { id: Time.now.to_i, title: title, done: false }
  save_tasks(tasks)
end

def toggle(id)
  tasks = load_tasks
  task = tasks.find { |t| t['id'] == id }
  return warn('нет задачи') unless task
  task['done'] = !task['done']
  save_tasks(tasks)
end

add_task('Изучить Ruby')
load_tasks.each { |t| puts "[#{t['done'] ? 'x' : ' '}] #{t['title']}" }