yhara-lifelog 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +36 -0
- data/VERSION +1 -1
- data/bin/lifelog +46 -42
- data/controller/init.rb +7 -0
- data/controller/main.rb +19 -0
- data/layout/default.ges +15 -0
- data/lifelog.gemspec +14 -6
- data/model/init.rb +27 -0
- data/model/migrations.rb +23 -0
- data/{models.rb → model/models.rb} +1 -5
- data/view/index.ges +25 -0
- metadata +12 -6
- data/view/index.haml +0 -19
data/README.md
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
LifeLog
|
2
|
+
=======
|
3
|
+
|
4
|
+
Install
|
5
|
+
-------
|
6
|
+
|
7
|
+
$ sudo gem install ramaze datamapper do_sqlite3
|
8
|
+
$ sudo gem install yhara-lifelog
|
9
|
+
|
10
|
+
How to use
|
11
|
+
----------
|
12
|
+
$ lifelog \[options]
|
13
|
+
|
14
|
+
options:
|
15
|
+
|
16
|
+
* --config PATH : from where configuration is loaded
|
17
|
+
(default: ~/.lifelog.rb)
|
18
|
+
* --db PATH : where sqlite3 database is put
|
19
|
+
* --port N : port of server
|
20
|
+
* --version : show version
|
21
|
+
* --help : show information of options
|
22
|
+
* --from-001 : if you are using VERSION=0.0.1,
|
23
|
+
use this option for first time
|
24
|
+
|
25
|
+
then open [http://localhost:7012/](http://localhost:7012/)
|
26
|
+
in your browser.
|
27
|
+
|
28
|
+
Config file
|
29
|
+
-----------
|
30
|
+
|
31
|
+
Config file is put in ~/.lifelog.rb by default
|
32
|
+
(you can specify its path by --config option).
|
33
|
+
|
34
|
+
It's just a Ruby script file, so you can write
|
35
|
+
any code to change behavior of application.
|
36
|
+
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/bin/lifelog
CHANGED
@@ -2,26 +2,11 @@
|
|
2
2
|
require 'optparse'
|
3
3
|
require 'rubygems'
|
4
4
|
require 'ramaze'
|
5
|
+
require 'controller/init.rb'
|
5
6
|
|
6
|
-
class MainController < Ramaze::Controller
|
7
|
-
map '/'
|
8
|
-
engine :Haml
|
9
|
-
|
10
|
-
def index
|
11
|
-
@posts = Post.all(:order => [:posted_at.desc])
|
12
|
-
end
|
13
|
-
|
14
|
-
def say
|
15
|
-
Post.create({
|
16
|
-
:posted_at => Time.now,
|
17
|
-
:message => request.params["message"],
|
18
|
-
})
|
19
|
-
|
20
|
-
redirect '/'
|
21
|
-
end
|
22
|
-
end
|
23
7
|
module LifeLog
|
24
8
|
include Innate::Optioned
|
9
|
+
VERSION = File.read(__DIR__("../VERSION"))
|
25
10
|
|
26
11
|
options.dsl do
|
27
12
|
o "Path of config file",
|
@@ -30,33 +15,52 @@ module LifeLog
|
|
30
15
|
:db, File.expand_path("~/.lifelog.db")
|
31
16
|
o "Port number",
|
32
17
|
:port, 7012
|
18
|
+
o "Whether to skip creating table :posts",
|
19
|
+
:no_create_post_table, false
|
33
20
|
end
|
34
|
-
end
|
35
21
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
22
|
+
def self.parse_argv!
|
23
|
+
OptionParser.new{|o|
|
24
|
+
o.on("--config PATH"){|path|
|
25
|
+
LifeLog.options[:config] = path
|
26
|
+
}
|
27
|
+
o.on("--db DB_PATH"){|path|
|
28
|
+
LifeLog.options[:db] = File.expand_path(path, Dir.pwd)
|
29
|
+
}
|
30
|
+
o.on("--from-001"){
|
31
|
+
LifeLog.options[:no_create_post_table] = true
|
32
|
+
}
|
33
|
+
o.on("--port N"){|port|
|
34
|
+
LifeLog.options[:port] = port
|
35
|
+
}
|
36
|
+
o.on("--version"){ puts VERSION; exit }
|
37
|
+
o.on("--help"){ puts o.to_s; exit }
|
38
|
+
}.parse!(ARGV)
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.load_conf(conf)
|
42
|
+
if File.exist?(conf)
|
43
|
+
Ramaze::Log.info("Loading config file: #{conf}")
|
44
|
+
require conf
|
45
|
+
else
|
46
|
+
Ramaze::Log.warn("Config file not found: #{conf}")
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def self.load_models(db)
|
51
|
+
Ramaze::Log.info("Loading database: #{db}")
|
52
|
+
require __DIR__('../model/init.rb')
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.start(port)
|
56
|
+
Ramaze::Log.info("Starting server with port #{port}")
|
57
|
+
Ramaze.start :port => port,
|
58
|
+
:root => __DIR__('../')
|
59
|
+
end
|
55
60
|
end
|
56
61
|
|
57
|
-
|
58
|
-
require __DIR__('../models.rb')
|
62
|
+
LifeLog.parse_argv!
|
59
63
|
|
60
|
-
|
61
|
-
|
62
|
-
|
64
|
+
LifeLog.load_conf(LifeLog.options[:config])
|
65
|
+
LifeLog.load_models(LifeLog.options[:db])
|
66
|
+
LifeLog.start(LifeLog.options[:port])
|
data/controller/init.rb
ADDED
data/controller/main.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
class Main < Controller
|
2
|
+
map '/'
|
3
|
+
helper :paginate
|
4
|
+
|
5
|
+
trait :paginate => { :limit => 100, :var => "page" }
|
6
|
+
|
7
|
+
def index
|
8
|
+
@pager = paginate(Post.all(:order => [:posted_at.desc]))
|
9
|
+
end
|
10
|
+
|
11
|
+
def say
|
12
|
+
Post.create({
|
13
|
+
:posted_at => Time.now,
|
14
|
+
:message => request.params["message"],
|
15
|
+
})
|
16
|
+
|
17
|
+
redirect '/'
|
18
|
+
end
|
19
|
+
end
|
data/layout/default.ges
ADDED
data/lifelog.gemspec
CHANGED
@@ -2,22 +2,31 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{lifelog}
|
5
|
-
s.version = "0.0.
|
5
|
+
s.version = "0.0.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Yutaka HARA"]
|
9
|
-
s.date = %q{2009-05-
|
9
|
+
s.date = %q{2009-05-24}
|
10
10
|
s.default_executable = %q{lifelog}
|
11
11
|
s.description = %q{A lifelogging tool written in Ramaze}
|
12
12
|
s.email = %q{yutaka.hara/at/gmail.com}
|
13
13
|
s.executables = ["lifelog"]
|
14
|
+
s.extra_rdoc_files = [
|
15
|
+
"README.md"
|
16
|
+
]
|
14
17
|
s.files = [
|
15
|
-
"
|
18
|
+
"README.md",
|
19
|
+
"Rakefile",
|
16
20
|
"VERSION",
|
17
21
|
"bin/lifelog",
|
22
|
+
"controller/init.rb",
|
23
|
+
"controller/main.rb",
|
24
|
+
"layout/default.ges",
|
18
25
|
"lifelog.gemspec",
|
19
|
-
"
|
20
|
-
"
|
26
|
+
"model/init.rb",
|
27
|
+
"model/migrations.rb",
|
28
|
+
"model/models.rb",
|
29
|
+
"view/index.ges"
|
21
30
|
]
|
22
31
|
s.has_rdoc = true
|
23
32
|
s.homepage = %q{http://github.com/yhara/lifelog}
|
@@ -45,4 +54,3 @@ Gem::Specification.new do |s|
|
|
45
54
|
s.add_dependency(%q<do_sqlite3>, [">= 0"])
|
46
55
|
end
|
47
56
|
end
|
48
|
-
|
data/model/init.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'dm-core'
|
2
|
+
DataMapper.setup(:default, "sqlite3://#{LifeLog.options[:db]}")
|
3
|
+
|
4
|
+
require __DIR__('./migrations.rb')
|
5
|
+
require __DIR__('./models.rb')
|
6
|
+
|
7
|
+
#
|
8
|
+
# ramaze paginate for datamapper
|
9
|
+
#
|
10
|
+
require 'ramaze/helper/paginate'
|
11
|
+
class DataMapper::Collection
|
12
|
+
def paginate(page, limit)
|
13
|
+
DMCollectionPager.new(self, page, limit)
|
14
|
+
end
|
15
|
+
|
16
|
+
class DMCollectionPager < Ramaze::Helper::Paginate::Paginator::ArrayPager
|
17
|
+
def each(&block)
|
18
|
+
from = ((@page - 1) * @limit)
|
19
|
+
from = 0 if from < 0
|
20
|
+
to = from + @limit
|
21
|
+
|
22
|
+
a = @array[from...to] || []
|
23
|
+
a.each(&block)
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
data/model/migrations.rb
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
require 'migration_runner'
|
2
|
+
|
3
|
+
if LifeLog.options[:no_create_post_table]
|
4
|
+
migration 1, :create_posts do
|
5
|
+
up {}
|
6
|
+
down {}
|
7
|
+
end
|
8
|
+
else
|
9
|
+
migration 1, :create_posts do
|
10
|
+
up do
|
11
|
+
create_table :posts do
|
12
|
+
column :id, Integer, :serial => true
|
13
|
+
column :posted_at, DateTime
|
14
|
+
column :message, String
|
15
|
+
end
|
16
|
+
end
|
17
|
+
down do
|
18
|
+
drop_table :posts
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
migrate_up!
|
@@ -1,7 +1,4 @@
|
|
1
|
-
require '
|
2
|
-
require 'dm-core'
|
3
|
-
|
4
|
-
DataMapper.setup(:default, "sqlite3://#{LifeLog.options[:db]}")
|
1
|
+
#require 'dm-timestamps'
|
5
2
|
|
6
3
|
class Post
|
7
4
|
include DataMapper::Resource
|
@@ -13,4 +10,3 @@ class Post
|
|
13
10
|
self.posted_at.strftime("%Y-%m-%d %H:%M:%S")
|
14
11
|
end
|
15
12
|
end
|
16
|
-
Post.auto_upgrade!
|
data/view/index.ges
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
table do
|
2
|
+
tr do
|
3
|
+
td {}
|
4
|
+
td {
|
5
|
+
form(:action => "/say", :method => "POST") do
|
6
|
+
input(:type => "text", :name => "message", :size => 120)
|
7
|
+
input(:type => "submit", :value => "add")
|
8
|
+
end
|
9
|
+
}
|
10
|
+
end
|
11
|
+
|
12
|
+
@pager.each do |post|
|
13
|
+
tr do
|
14
|
+
td(:class => "time"){
|
15
|
+
h post.time_str
|
16
|
+
}
|
17
|
+
td(:class => "message"){
|
18
|
+
h post.message
|
19
|
+
}
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
div(:class => "pager") { @pager.navigation if @pager.needed? }
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yhara-lifelog
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yutaka HARA
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-05-
|
12
|
+
date: 2009-05-24 00:00:00 -07:00
|
13
13
|
default_executable: lifelog
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -48,15 +48,21 @@ executables:
|
|
48
48
|
- lifelog
|
49
49
|
extensions: []
|
50
50
|
|
51
|
-
extra_rdoc_files:
|
52
|
-
|
51
|
+
extra_rdoc_files:
|
52
|
+
- README.md
|
53
53
|
files:
|
54
|
+
- README.md
|
54
55
|
- Rakefile
|
55
56
|
- VERSION
|
56
57
|
- bin/lifelog
|
58
|
+
- controller/init.rb
|
59
|
+
- controller/main.rb
|
60
|
+
- layout/default.ges
|
57
61
|
- lifelog.gemspec
|
58
|
-
-
|
59
|
-
-
|
62
|
+
- model/init.rb
|
63
|
+
- model/migrations.rb
|
64
|
+
- model/models.rb
|
65
|
+
- view/index.ges
|
60
66
|
has_rdoc: true
|
61
67
|
homepage: http://github.com/yhara/lifelog
|
62
68
|
post_install_message:
|
data/view/index.haml
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
%html
|
2
|
-
%head
|
3
|
-
%meta{:"http-equiv"=>"Content-Type", :content=>"text/html", :charset=>"utf-8" }
|
4
|
-
%title LifeLogger
|
5
|
-
%body
|
6
|
-
%h1 LifeLog
|
7
|
-
|
8
|
-
%table.log
|
9
|
-
%tr
|
10
|
-
%td
|
11
|
-
%td
|
12
|
-
%form{:action => "/say", :method => "POST"}
|
13
|
-
%input{:type => "text", :size => 120, :name => "message"}
|
14
|
-
%input{:type => "submit", :value => "add"}
|
15
|
-
|
16
|
-
- @posts.each do |post|
|
17
|
-
%tr.post
|
18
|
-
%td.time= h post.time_str
|
19
|
-
%td.message= post.message
|