yhara-lifelog 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|