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 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