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 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
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
- OptionParser.new{|o|
37
- o.on("--config PATH"){|path|
38
- LifeLog.options[:config] = path
39
- }
40
- o.on("--db DB_PATH"){|path|
41
- LifeLog.options[:db] = File.expand_path(path, Dir.pwd)
42
- }
43
- o.on("--port N"){|port|
44
- LifeLog.options[:port] = port
45
- }
46
- o.on("--help"){ puts o.to_s; exit }
47
- }.parse!(ARGV)
48
-
49
- conf = LifeLog.options[:config]
50
- if File.exist?(conf)
51
- Ramaze::Log.info("Loading config file: #{conf}")
52
- require conf
53
- else
54
- Ramaze::Log.warn("Config file not found: #{conf}")
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
- Ramaze::Log.info("Loading database: #{LifeLog.options[:db]}")
58
- require __DIR__('../models.rb')
62
+ LifeLog.parse_argv!
59
63
 
60
- Ramaze::Log.info("Starting server with port #{LifeLog.options[:port]}")
61
- Ramaze.start :port => LifeLog.options[:port],
62
- :root => __DIR__('../')
64
+ LifeLog.load_conf(LifeLog.options[:config])
65
+ LifeLog.load_models(LifeLog.options[:db])
66
+ LifeLog.start(LifeLog.options[:port])
@@ -0,0 +1,7 @@
1
+ class Controller < Ramaze::Controller
2
+ layout 'default'
3
+ engine :Gestalt
4
+ helper :gestalt
5
+ end
6
+
7
+ require 'controller/main.rb'
@@ -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
@@ -0,0 +1,15 @@
1
+ html do
2
+ head do
3
+ meta({:"http-equiv" => "Content-Type",
4
+ :content => "text/html; charset=utf-8"})
5
+ title "LifeLog"
6
+ end
7
+ body do
8
+ h1 {
9
+ a(:href => Main.r(:index)){ h "LifeLog" }
10
+ }
11
+ div {
12
+ @content
13
+ }
14
+ end
15
+ end
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.1"
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-23}
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
- "Rakefile",
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
- "models.rb",
20
- "view/index.haml"
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
@@ -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 'rubygems'
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.1
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-23 00:00:00 -07:00
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
- - models.rb
59
- - view/index.haml
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