Sha256: 572b261d5c56919caadfb4c1394077bf08dbf8390aead1656f8797786062d7b6

Contents?: true

Size: 947 Bytes

Versions: 35

Compression:

Stored size: 947 Bytes

Contents

require 'rubygems'
require 'innate'
require 'pstore'

LIST = PStore.new('todo.pstore')

class Todo
  Innate.node '/'
  layout 'default'

  def index
    @list = sync{|list| list.roots.map{|key| [key, list[key]] }}
  end

  def create
    redirect_referer unless request.post? and title = request[:title]
    title.strip!

    sync{ LIST[title] = false } unless title.empty?
    redirect_referer
  end

  def update
    id, title, done = request[:id, :title, :done]
    redirect_referer unless request.post? and id and title
    done = !!done
    title.strip!

    if id == title
      sync{ LIST[id] = done }
    elsif title != ''
      sync{ LIST.delete(id); LIST[title] = done }
    end

    redirect_referer
  end

  def delete
    redirect_referer unless request.post? and id = request[:id]
    sync{ LIST.delete(id) }
    redirect_referer
  end

  private

  def sync
    Innate.sync{ LIST.transaction{ yield(LIST) }}
  end
end

Innate.start

Version data entries

35 entries across 35 versions & 3 rubygems

Version Path
innate-2023.01.06 example/app/todo/start.rb
innate-2015.10.28 example/app/todo/start.rb
manveru-innate-2009.02.25 example/app/todo/start.rb
manveru-innate-2009.03.24 example/app/todo/start.rb
manveru-innate-2009.04.01 example/app/todo/start.rb
manveru-innate-2009.04.08 example/app/todo/start.rb
manveru-innate-2009.04.18 example/app/todo/start.rb
manveru-innate-2009.04 example/app/todo/start.rb
manveru-innate-2009.05 example/app/todo/start.rb
manveru-innate-2009.06.12 example/app/todo/start.rb
manveru-innate-2009.06 example/app/todo/start.rb
manveru-innate-2009.07 example/app/todo/start.rb
rjspotter-innate-2009.06.29 example/app/todo/start.rb
rjspotter-innate-2009.06.30 example/app/todo/start.rb
rjspotter-innate-2009.06.31 example/app/todo/start.rb
innate-2013.02.21 example/app/todo/start.rb
innate-2013.02 example/app/todo/start.rb
innate-2012.12 example/app/todo/start.rb
innate-2012.03 example/app/todo/start.rb
innate-2011.12 example/app/todo/start.rb