moneyrail 0.0.2 → 0.1.0
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/HISTORY +38 -0
- data/Rakefile +4 -2
- data/VERSION +1 -1
- data/app/controllers/home_controller.rb +1 -1
- data/app/controllers/logs_controller.rb +5 -2
- data/app/controllers/stats_controller.rb +57 -0
- data/app/helpers/application_helper.rb +38 -0
- data/app/helpers/logs_helper.rb +8 -0
- data/app/views/home/index.html.erb +2 -0
- data/app/views/logs/view.html.erb +20 -7
- data/app/views/stats/show.html.erb +22 -0
- data/config/environment.rb +3 -2
- data/config/routes.rb +4 -0
- data/db/seeds.rb +10 -0
- data/main.rb +13 -1
- data/moneyrail.gemspec +21 -9
- data/public/javascripts/editor.js +14 -0
- data/public/stylesheets/editor.less +14 -2
- metadata +28 -5
- data/Changelog +0 -21
data/HISTORY
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
2009-09-30 Yutaka HARA <yhara(at)kmc.gr.jp>
|
2
|
+
|
3
|
+
* Released 0.0.3
|
4
|
+
|
5
|
+
* new: show statistics
|
6
|
+
|
7
|
+
* new: showing/hiding tables
|
8
|
+
|
9
|
+
* new: show links to neighbor months
|
10
|
+
|
11
|
+
* new: show day of week
|
12
|
+
|
13
|
+
2009-08-20 Yutaka HARA <yhara(at)kmc.gr.jp>
|
14
|
+
|
15
|
+
* Released 0.0.2
|
16
|
+
|
17
|
+
* fix: item deletion raises an error other than firefox
|
18
|
+
|
19
|
+
2009-08-19 Yutaka HARA <yhara(at)kmc.gr.jp>
|
20
|
+
|
21
|
+
* Released 0.0.1
|
22
|
+
|
23
|
+
* new: delete an item when title and amount are both empty
|
24
|
+
|
25
|
+
* fix: item deletion raises an error
|
26
|
+
|
27
|
+
* fix: fails to update cells whose position > 0
|
28
|
+
|
29
|
+
* new: show logs
|
30
|
+
|
31
|
+
2009-08-16 Yutaka HARA <yhara(at)kmc.gr.jp>
|
32
|
+
|
33
|
+
* Released 0.0.0
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
|
38
|
+
|
data/Rakefile
CHANGED
@@ -26,7 +26,9 @@ Jeweler::Tasks.new do |gemspec|
|
|
26
26
|
gemspec.homepage = "http://github.com/yhara/#{PROJECT_NAME}"
|
27
27
|
gemspec.description = gemspec.summary
|
28
28
|
gemspec.authors = ["Yutaka HARA"]
|
29
|
-
gemspec.add_dependency('rails', '= 2.3.
|
30
|
-
gemspec.add_dependency('ruby-station-runtime', '>= 0.0.
|
29
|
+
gemspec.add_dependency('rails', '= 2.3.4')
|
30
|
+
gemspec.add_dependency('ruby-station-runtime', '>= 0.0.4')
|
31
|
+
gemspec.add_dependency('less')
|
32
|
+
gemspec.add_dependency('sqlite3-ruby')
|
31
33
|
gemspec.files.concat Dir["vendor/plugins/**/*"]
|
32
34
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0
|
1
|
+
0.1.0
|
@@ -1,12 +1,15 @@
|
|
1
1
|
class LogsController < ApplicationController
|
2
2
|
|
3
3
|
def view
|
4
|
+
# param
|
4
5
|
@mode = params[:mode]
|
5
6
|
@year, @month = params[:year].to_i, params[:month].to_i
|
6
7
|
|
7
|
-
|
8
|
-
@
|
8
|
+
# date
|
9
|
+
@current_month = Date.new(@year, @month)
|
10
|
+
@month_range = @current_month .. ((@current_month >> 1) - 1)
|
9
11
|
|
12
|
+
# items
|
10
13
|
@accounts = Account.all(:order => "position")
|
11
14
|
@categories = Category.hashed
|
12
15
|
@cat_all = [
|
@@ -0,0 +1,57 @@
|
|
1
|
+
class StatsController < ApplicationController
|
2
|
+
def show
|
3
|
+
year = params[:year].to_i
|
4
|
+
month = params[:month].to_i
|
5
|
+
|
6
|
+
@month = Date.new(year, month)
|
7
|
+
@month_range = @month .. ((@month >> 1) - 1)
|
8
|
+
|
9
|
+
@categories = Category.hashed.values_at(:expense, :income).flatten(1)
|
10
|
+
|
11
|
+
@stat = make_stats
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
# Expense Income
|
17
|
+
# cat1 cat2 cat3 cat4 cat5 cat6
|
18
|
+
# acc1 99 99 99 0 0 33
|
19
|
+
# acc2 12 34 567 8 9 0
|
20
|
+
# ------------------------------------
|
21
|
+
# sum
|
22
|
+
def make_stats
|
23
|
+
items = Item.all(:conditions => {:date => @month_range, :type => ["Expense", "Income"]}).group_by(&:category)
|
24
|
+
|
25
|
+
accounts = Account.all(:order => "position")
|
26
|
+
|
27
|
+
rows = accounts.map{|account|
|
28
|
+
make_stat_row(account, items)
|
29
|
+
}
|
30
|
+
|
31
|
+
return rows.push make_sum_row(rows)
|
32
|
+
end
|
33
|
+
|
34
|
+
def make_stat_row(account, items)
|
35
|
+
row = @categories.map{|category|
|
36
|
+
if items[category]
|
37
|
+
items[category].
|
38
|
+
find_all{|item| item.account == account}.
|
39
|
+
map{|item| item.amount}.
|
40
|
+
sum
|
41
|
+
else
|
42
|
+
0
|
43
|
+
end
|
44
|
+
}
|
45
|
+
row.unshift(account.name)
|
46
|
+
end
|
47
|
+
|
48
|
+
def make_sum_row(rows)
|
49
|
+
rows.transpose.map{|cells|
|
50
|
+
if cells.first.class == String
|
51
|
+
""
|
52
|
+
else
|
53
|
+
cells.sum
|
54
|
+
end
|
55
|
+
}
|
56
|
+
end
|
57
|
+
end
|
@@ -1,3 +1,41 @@
|
|
1
1
|
# Methods added to this helper will be available to all templates in the application.
|
2
2
|
module ApplicationHelper
|
3
|
+
def format_date(d)
|
4
|
+
d.strftime("%Y-%m-%d (%a)")
|
5
|
+
end
|
6
|
+
|
7
|
+
def format_month(d)
|
8
|
+
d.strftime("%Y-%m")
|
9
|
+
end
|
10
|
+
|
11
|
+
# (str, date) or (date)
|
12
|
+
def link_to_edit_logs(a, b=nil)
|
13
|
+
str, date = str_and_date(a, b)
|
14
|
+
|
15
|
+
link_to str, edit_logs_path(:year => date.year, :month => date.month)
|
16
|
+
end
|
17
|
+
|
18
|
+
def link_to_show_logs(a, b=nil)
|
19
|
+
str, date = str_and_date(a, b)
|
20
|
+
|
21
|
+
link_to str, show_logs_path(:year => date.year, :month => date.month)
|
22
|
+
end
|
23
|
+
|
24
|
+
def link_to_show_stats(a, b=nil)
|
25
|
+
str, date = str_and_date(a, b)
|
26
|
+
|
27
|
+
link_to str, show_stats_path(:year => date.year, :month => date.month)
|
28
|
+
end
|
29
|
+
|
30
|
+
private
|
31
|
+
|
32
|
+
def str_and_date(a, b)
|
33
|
+
if b
|
34
|
+
[a, b]
|
35
|
+
else
|
36
|
+
[format_month(a), a]
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
|
3
41
|
end
|
data/app/helpers/logs_helper.rb
CHANGED
@@ -1,17 +1,27 @@
|
|
1
|
-
<h2
|
2
|
-
|
3
|
-
<%=
|
1
|
+
<h2>
|
2
|
+
<small><%= link_to_edit_or_show("<<", @current_month << 1) %></small>
|
3
|
+
<%= h format_month(@current_month) %>
|
4
|
+
<small><%= link_to_edit_or_show(">>", @current_month >> 1) %></small>
|
5
|
+
</h2>
|
6
|
+
<% if @mode != :edit %>
|
7
|
+
<%= link_to_edit_logs "(edit)", @current_month %>
|
4
8
|
<% end %>
|
5
9
|
|
6
|
-
<ul>
|
10
|
+
<ul id="account_links">
|
11
|
+
<li>
|
12
|
+
<%= link_to_function "all",
|
13
|
+
"MoneyRail.show_all_accounts();" %>
|
14
|
+
</li>
|
7
15
|
<% @accounts.each_with_index do |account, i| %>
|
8
|
-
<li><%=
|
16
|
+
<li><%= link_to_function account.name,
|
17
|
+
"MoneyRail.show_only_account(#{i});" %></li>
|
9
18
|
<% end %>
|
10
19
|
</ul>
|
20
|
+
<br class="clear">
|
11
21
|
|
12
22
|
<% @accounts.each_with_index do |account, i| %>
|
13
23
|
<%# for each account %>
|
14
|
-
<
|
24
|
+
<div id="account_<%=h i%>">
|
15
25
|
<h3>
|
16
26
|
<%=h account.name %>
|
17
27
|
<%= link_to '△', move_up_account_path(account) %>
|
@@ -64,7 +74,7 @@
|
|
64
74
|
<% case item
|
65
75
|
when Date %>
|
66
76
|
<td>
|
67
|
-
<%=h item
|
77
|
+
<%=h format_date(item) %>
|
68
78
|
</td>
|
69
79
|
|
70
80
|
<% when :no_date %>
|
@@ -86,6 +96,7 @@
|
|
86
96
|
</tr>
|
87
97
|
<% end %>
|
88
98
|
</table>
|
99
|
+
</div>
|
89
100
|
<% end %>
|
90
101
|
|
91
102
|
<% javascript_tag do %>
|
@@ -105,6 +116,8 @@
|
|
105
116
|
<%=h @cat_all.map{|c| c.id.to_s}.join(", ") %>
|
106
117
|
];
|
107
118
|
|
119
|
+
MoneyRail.n_accounts = <%=h @accounts.size %>;
|
120
|
+
|
108
121
|
MoneyRail.item_update_path = function(item_id){
|
109
122
|
var str = "<%=h update_item_path(9999) %>.json";
|
110
123
|
return str.replace(/9999/, item_id);
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<h2>Statictics
|
2
|
+
<small><%= link_to_show_stats("<<", @month << 1) %></small>
|
3
|
+
<%= format_month(@month) %>
|
4
|
+
<small><%= link_to_show_stats(">>", @month >> 1) %></small>
|
5
|
+
</h2>
|
6
|
+
|
7
|
+
<table>
|
8
|
+
<tr>
|
9
|
+
<th>account</th>
|
10
|
+
<% @categories.each do |category| %>
|
11
|
+
<th><%=h category.name %></th>
|
12
|
+
<% end %>
|
13
|
+
</tr>
|
14
|
+
|
15
|
+
<% @stat.each do |row| %>
|
16
|
+
<tr>
|
17
|
+
<% row.each do |cell| %>
|
18
|
+
<td><%=h cell%></td>
|
19
|
+
<% end %>
|
20
|
+
</tr>
|
21
|
+
<% end %>
|
22
|
+
</table>
|
data/config/environment.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# Be sure to restart your server when you modify this file
|
2
2
|
|
3
3
|
# Specifies gem version of Rails to use when vendor/rails is not present
|
4
|
-
RAILS_GEM_VERSION = '2.3.
|
4
|
+
RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION
|
5
5
|
|
6
6
|
# Bootstrap the Rails environment, frameworks, and default configuration
|
7
7
|
require File.join(File.dirname(__FILE__), 'boot')
|
@@ -38,4 +38,5 @@ Rails::Initializer.run do |config|
|
|
38
38
|
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
39
39
|
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}')]
|
40
40
|
# config.i18n.default_locale = :de
|
41
|
-
|
41
|
+
|
42
|
+
end
|
data/config/routes.rb
CHANGED
@@ -34,6 +34,10 @@ ActionController::Routing::Routes.draw do |map|
|
|
34
34
|
map.edit_logs 'logs/:year/:month/edit',
|
35
35
|
:controller => :logs, :action => 'view', :mode => :edit
|
36
36
|
|
37
|
+
# -- statistics
|
38
|
+
map.show_stats 'stats/:year/:month',
|
39
|
+
:controller => :stats, :action => 'show'
|
40
|
+
|
37
41
|
# The priority is based upon order of creation: first created -> highest priority.
|
38
42
|
|
39
43
|
# Sample of regular route:
|
data/db/seeds.rb
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
# This file should contain all the record creation needed to seed the database with its default values.
|
2
|
+
# The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
|
3
|
+
#
|
4
|
+
# Examples:
|
5
|
+
#
|
6
|
+
# cities = City.create([{ :name => 'Chicago' }, { :name => 'Copenhagen' }])
|
7
|
+
# Major.create(:name => 'Daley', :city => cities.first)
|
8
|
+
Account.create(:name => "wallet")
|
9
|
+
Category.create(:name => "Sarary", :kind => "Income")
|
10
|
+
Category.create(:name => "Foods", :kind => "Expense")
|
data/main.rb
CHANGED
@@ -2,4 +2,16 @@
|
|
2
2
|
require 'optparse'
|
3
3
|
require 'ruby-station'; RubyStation.parse_argv
|
4
4
|
|
5
|
-
|
5
|
+
# setup database
|
6
|
+
unless File.exist?(RubyStation.data_path("production.sqlite3"))
|
7
|
+
yml_path = File.join(File.dirname(__FILE__), "config/database.yml")
|
8
|
+
conf = YAML.load_file(yml_path)
|
9
|
+
conf["production"]["database"] = RubyStation.data_path("production.sqlite3")
|
10
|
+
File.open(yml_path, "w"){|f| YAML.dump(conf, f) }
|
11
|
+
|
12
|
+
system "rake db:migrate db:seed RAILS_ENV=production"
|
13
|
+
end
|
14
|
+
|
15
|
+
ARGV.push "--port=#{RubyStation.port}"
|
16
|
+
ARGV.push "--environment=production"
|
17
|
+
load File.join(File.dirname(__FILE__), 'script/server')
|
data/moneyrail.gemspec
CHANGED
@@ -1,12 +1,15 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run `rake gemspec`
|
1
4
|
# -*- encoding: utf-8 -*-
|
2
5
|
|
3
6
|
Gem::Specification.new do |s|
|
4
7
|
s.name = %q{moneyrail}
|
5
|
-
s.version = "0.0
|
8
|
+
s.version = "0.1.0"
|
6
9
|
|
7
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
11
|
s.authors = ["Yutaka HARA"]
|
9
|
-
s.date = %q{2009-
|
12
|
+
s.date = %q{2009-11-03}
|
10
13
|
s.description = %q{Household account book, written in Rails}
|
11
14
|
s.email = %q{yutaka.hara/at/gmail.com}
|
12
15
|
s.extra_rdoc_files = [
|
@@ -15,7 +18,7 @@ Gem::Specification.new do |s|
|
|
15
18
|
s.files = [
|
16
19
|
".gitignore",
|
17
20
|
".gitmodules",
|
18
|
-
"
|
21
|
+
"HISTORY",
|
19
22
|
"README",
|
20
23
|
"Rakefile",
|
21
24
|
"VERSION",
|
@@ -25,6 +28,7 @@ Gem::Specification.new do |s|
|
|
25
28
|
"app/controllers/home_controller.rb",
|
26
29
|
"app/controllers/items_controller.rb",
|
27
30
|
"app/controllers/logs_controller.rb",
|
31
|
+
"app/controllers/stats_controller.rb",
|
28
32
|
"app/helpers/accounts_helper.rb",
|
29
33
|
"app/helpers/application_helper.rb",
|
30
34
|
"app/helpers/categories_helper.rb",
|
@@ -53,6 +57,7 @@ Gem::Specification.new do |s|
|
|
53
57
|
"app/views/items/show.html.erb",
|
54
58
|
"app/views/layouts/application.html.erb",
|
55
59
|
"app/views/logs/view.html.erb",
|
60
|
+
"app/views/stats/show.html.erb",
|
56
61
|
"config/boot.rb",
|
57
62
|
"config/database.yml",
|
58
63
|
"config/environment.rb",
|
@@ -71,6 +76,7 @@ Gem::Specification.new do |s|
|
|
71
76
|
"db/migrate/20090802073601_create_categories.rb",
|
72
77
|
"db/migrate/20090804065900_create_items.rb",
|
73
78
|
"db/production.sqlite3",
|
79
|
+
"db/seeds.rb",
|
74
80
|
"doc/README_FOR_APP",
|
75
81
|
"features/step_definitions/webrat_steps.rb",
|
76
82
|
"features/support/env.rb",
|
@@ -157,14 +163,20 @@ Gem::Specification.new do |s|
|
|
157
163
|
s.specification_version = 3
|
158
164
|
|
159
165
|
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
160
|
-
s.add_runtime_dependency(%q<rails>, ["= 2.3.
|
161
|
-
s.add_runtime_dependency(%q<ruby-station-runtime>, [">= 0.0.
|
166
|
+
s.add_runtime_dependency(%q<rails>, ["= 2.3.4"])
|
167
|
+
s.add_runtime_dependency(%q<ruby-station-runtime>, [">= 0.0.4"])
|
168
|
+
s.add_runtime_dependency(%q<less>, [">= 0"])
|
169
|
+
s.add_runtime_dependency(%q<sqlite3-ruby>, [">= 0"])
|
162
170
|
else
|
163
|
-
s.add_dependency(%q<rails>, ["= 2.3.
|
164
|
-
s.add_dependency(%q<ruby-station-runtime>, [">= 0.0.
|
171
|
+
s.add_dependency(%q<rails>, ["= 2.3.4"])
|
172
|
+
s.add_dependency(%q<ruby-station-runtime>, [">= 0.0.4"])
|
173
|
+
s.add_dependency(%q<less>, [">= 0"])
|
174
|
+
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
165
175
|
end
|
166
176
|
else
|
167
|
-
s.add_dependency(%q<rails>, ["= 2.3.
|
168
|
-
s.add_dependency(%q<ruby-station-runtime>, [">= 0.0.
|
177
|
+
s.add_dependency(%q<rails>, ["= 2.3.4"])
|
178
|
+
s.add_dependency(%q<ruby-station-runtime>, [">= 0.0.4"])
|
179
|
+
s.add_dependency(%q<less>, [">= 0"])
|
180
|
+
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
169
181
|
end
|
170
182
|
end
|
@@ -172,6 +172,20 @@ MoneyRail.on_row_button_clicked = function(e){
|
|
172
172
|
MoneyRail.insert_row(e.target);
|
173
173
|
};
|
174
174
|
|
175
|
+
MoneyRail.show_all_accounts = function(){
|
176
|
+
MoneyRail.n_accounts.times(function(i){
|
177
|
+
$j("#account_"+i).show();
|
178
|
+
});
|
179
|
+
};
|
180
|
+
|
181
|
+
MoneyRail.show_only_account = function(k){
|
182
|
+
MoneyRail.n_accounts.times(function(i){
|
183
|
+
$j("#account_"+i)[i==k ? 'show' : 'hide']();
|
184
|
+
});
|
185
|
+
};
|
186
|
+
|
187
|
+
// main
|
188
|
+
|
175
189
|
MoneyRail.register_events = function(){
|
176
190
|
// register input updated
|
177
191
|
$j.each($j("input"), function(input){
|
@@ -1,5 +1,18 @@
|
|
1
1
|
@cell_width: 70px;
|
2
2
|
|
3
|
+
br.clear{
|
4
|
+
clear: both;
|
5
|
+
}
|
6
|
+
|
7
|
+
ul#account_links{
|
8
|
+
list-style: none;
|
9
|
+
|
10
|
+
li{
|
11
|
+
float: left;
|
12
|
+
margin-right: 1em;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
3
16
|
table.editor {
|
4
17
|
border-collapse: collapse;
|
5
18
|
|
@@ -19,8 +32,7 @@ table.editor {
|
|
19
32
|
}
|
20
33
|
|
21
34
|
th.date {
|
22
|
-
min-width: @cell_width;
|
23
|
-
width: @cell_width;
|
35
|
+
min-width: @cell_width * 2;
|
24
36
|
}
|
25
37
|
|
26
38
|
th.category {
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moneyrail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
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-
|
12
|
+
date: 2009-11-03 00:00:00 +09:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,7 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - "="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 2.3.
|
23
|
+
version: 2.3.4
|
24
24
|
version:
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: ruby-station-runtime
|
@@ -30,7 +30,27 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.
|
33
|
+
version: 0.0.4
|
34
|
+
version:
|
35
|
+
- !ruby/object:Gem::Dependency
|
36
|
+
name: less
|
37
|
+
type: :runtime
|
38
|
+
version_requirement:
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: "0"
|
44
|
+
version:
|
45
|
+
- !ruby/object:Gem::Dependency
|
46
|
+
name: sqlite3-ruby
|
47
|
+
type: :runtime
|
48
|
+
version_requirement:
|
49
|
+
version_requirements: !ruby/object:Gem::Requirement
|
50
|
+
requirements:
|
51
|
+
- - ">="
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: "0"
|
34
54
|
version:
|
35
55
|
description: Household account book, written in Rails
|
36
56
|
email: yutaka.hara/at/gmail.com
|
@@ -43,7 +63,7 @@ extra_rdoc_files:
|
|
43
63
|
files:
|
44
64
|
- .gitignore
|
45
65
|
- .gitmodules
|
46
|
-
-
|
66
|
+
- HISTORY
|
47
67
|
- README
|
48
68
|
- Rakefile
|
49
69
|
- VERSION
|
@@ -53,6 +73,7 @@ files:
|
|
53
73
|
- app/controllers/home_controller.rb
|
54
74
|
- app/controllers/items_controller.rb
|
55
75
|
- app/controllers/logs_controller.rb
|
76
|
+
- app/controllers/stats_controller.rb
|
56
77
|
- app/helpers/accounts_helper.rb
|
57
78
|
- app/helpers/application_helper.rb
|
58
79
|
- app/helpers/categories_helper.rb
|
@@ -81,6 +102,7 @@ files:
|
|
81
102
|
- app/views/items/show.html.erb
|
82
103
|
- app/views/layouts/application.html.erb
|
83
104
|
- app/views/logs/view.html.erb
|
105
|
+
- app/views/stats/show.html.erb
|
84
106
|
- config/boot.rb
|
85
107
|
- config/database.yml
|
86
108
|
- config/environment.rb
|
@@ -99,6 +121,7 @@ files:
|
|
99
121
|
- db/migrate/20090802073601_create_categories.rb
|
100
122
|
- db/migrate/20090804065900_create_items.rb
|
101
123
|
- db/production.sqlite3
|
124
|
+
- db/seeds.rb
|
102
125
|
- doc/README_FOR_APP
|
103
126
|
- features/step_definitions/webrat_steps.rb
|
104
127
|
- features/support/env.rb
|
data/Changelog
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
2009-08-19 Yutaka HARA <yhara(at)kmc.gr.jp>
|
2
|
-
|
3
|
-
* Released 0.0.1
|
4
|
-
|
5
|
-
* new: delete an item when title and amount are both empty
|
6
|
-
|
7
|
-
* fix: item deletion raises an error
|
8
|
-
|
9
|
-
* fix: fails to update cells whose position > 0
|
10
|
-
|
11
|
-
2009-08-17 Yutaka HARA <yhara(at)kmc.gr.jp>
|
12
|
-
|
13
|
-
* new: show logs
|
14
|
-
|
15
|
-
2009-08-16 Yutaka HARA <yhara(at)kmc.gr.jp>
|
16
|
-
|
17
|
-
* Released 0.0.0
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|