ledger_web 1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. data/.gitignore +10 -0
  2. data/LICENSE +7 -0
  3. data/README.md +140 -0
  4. data/Rakefile +11 -0
  5. data/bin/ledger_web +14 -0
  6. data/ledger_web.gemspec +26 -0
  7. data/lib/ledger_web/app.rb +69 -0
  8. data/lib/ledger_web/config.rb +87 -0
  9. data/lib/ledger_web/db/migrate/20111226180900_initial_schema.rb +38 -0
  10. data/lib/ledger_web/db/migrate/20111231132900_add_views.rb +37 -0
  11. data/lib/ledger_web/db.rb +54 -0
  12. data/lib/ledger_web/helpers.rb +62 -0
  13. data/lib/ledger_web/public/bootstrap-dropdown.js +55 -0
  14. data/lib/ledger_web/public/bootstrap.min.css +356 -0
  15. data/lib/ledger_web/public/codemirror/keymap/emacs.js +29 -0
  16. data/lib/ledger_web/public/codemirror/keymap/vim.js +76 -0
  17. data/lib/ledger_web/public/codemirror/lib/codemirror.css +104 -0
  18. data/lib/ledger_web/public/codemirror/lib/codemirror.js +2761 -0
  19. data/lib/ledger_web/public/codemirror/lib/util/dialog.css +23 -0
  20. data/lib/ledger_web/public/codemirror/lib/util/dialog.js +63 -0
  21. data/lib/ledger_web/public/codemirror/lib/util/foldcode.js +66 -0
  22. data/lib/ledger_web/public/codemirror/lib/util/formatting.js +291 -0
  23. data/lib/ledger_web/public/codemirror/lib/util/javascript-hint.js +83 -0
  24. data/lib/ledger_web/public/codemirror/lib/util/overlay.js +51 -0
  25. data/lib/ledger_web/public/codemirror/lib/util/runmode.js +27 -0
  26. data/lib/ledger_web/public/codemirror/lib/util/search.js +114 -0
  27. data/lib/ledger_web/public/codemirror/lib/util/searchcursor.js +117 -0
  28. data/lib/ledger_web/public/codemirror/lib/util/simple-hint.css +16 -0
  29. data/lib/ledger_web/public/codemirror/lib/util/simple-hint.js +66 -0
  30. data/lib/ledger_web/public/codemirror/mode/clike/clike.js +249 -0
  31. data/lib/ledger_web/public/codemirror/mode/clike/index.html +101 -0
  32. data/lib/ledger_web/public/codemirror/mode/clojure/clojure.js +207 -0
  33. data/lib/ledger_web/public/codemirror/mode/clojure/index.html +66 -0
  34. data/lib/ledger_web/public/codemirror/mode/coffeescript/LICENSE +22 -0
  35. data/lib/ledger_web/public/codemirror/mode/coffeescript/coffeescript.js +325 -0
  36. data/lib/ledger_web/public/codemirror/mode/coffeescript/index.html +721 -0
  37. data/lib/ledger_web/public/codemirror/mode/css/css.js +124 -0
  38. data/lib/ledger_web/public/codemirror/mode/css/index.html +55 -0
  39. data/lib/ledger_web/public/codemirror/mode/diff/diff.css +3 -0
  40. data/lib/ledger_web/public/codemirror/mode/diff/diff.js +13 -0
  41. data/lib/ledger_web/public/codemirror/mode/diff/index.html +99 -0
  42. data/lib/ledger_web/public/codemirror/mode/gfm/gfm.js +108 -0
  43. data/lib/ledger_web/public/codemirror/mode/gfm/index.html +47 -0
  44. data/lib/ledger_web/public/codemirror/mode/groovy/groovy.js +210 -0
  45. data/lib/ledger_web/public/codemirror/mode/groovy/index.html +71 -0
  46. data/lib/ledger_web/public/codemirror/mode/haskell/haskell.js +242 -0
  47. data/lib/ledger_web/public/codemirror/mode/haskell/index.html +60 -0
  48. data/lib/ledger_web/public/codemirror/mode/htmlembedded/htmlembedded.js +68 -0
  49. data/lib/ledger_web/public/codemirror/mode/htmlembedded/index.html +49 -0
  50. data/lib/ledger_web/public/codemirror/mode/htmlmixed/htmlmixed.js +83 -0
  51. data/lib/ledger_web/public/codemirror/mode/htmlmixed/index.html +51 -0
  52. data/lib/ledger_web/public/codemirror/mode/javascript/index.html +77 -0
  53. data/lib/ledger_web/public/codemirror/mode/javascript/javascript.js +360 -0
  54. data/lib/ledger_web/public/codemirror/mode/jinja2/index.html +37 -0
  55. data/lib/ledger_web/public/codemirror/mode/jinja2/jinja2.js +42 -0
  56. data/lib/ledger_web/public/codemirror/mode/lua/index.html +72 -0
  57. data/lib/ledger_web/public/codemirror/mode/lua/lua.js +140 -0
  58. data/lib/ledger_web/public/codemirror/mode/markdown/index.html +339 -0
  59. data/lib/ledger_web/public/codemirror/mode/markdown/markdown.js +242 -0
  60. data/lib/ledger_web/public/codemirror/mode/ntriples/index.html +32 -0
  61. data/lib/ledger_web/public/codemirror/mode/ntriples/ntriples.js +172 -0
  62. data/lib/ledger_web/public/codemirror/mode/pascal/LICENSE +7 -0
  63. data/lib/ledger_web/public/codemirror/mode/pascal/index.html +48 -0
  64. data/lib/ledger_web/public/codemirror/mode/pascal/pascal.js +138 -0
  65. data/lib/ledger_web/public/codemirror/mode/perl/LICENSE +19 -0
  66. data/lib/ledger_web/public/codemirror/mode/perl/index.html +62 -0
  67. data/lib/ledger_web/public/codemirror/mode/perl/perl.js +816 -0
  68. data/lib/ledger_web/public/codemirror/mode/php/index.html +48 -0
  69. data/lib/ledger_web/public/codemirror/mode/php/php.js +120 -0
  70. data/lib/ledger_web/public/codemirror/mode/plsql/index.html +62 -0
  71. data/lib/ledger_web/public/codemirror/mode/plsql/plsql.js +217 -0
  72. data/lib/ledger_web/public/codemirror/mode/python/LICENSE.txt +21 -0
  73. data/lib/ledger_web/public/codemirror/mode/python/index.html +122 -0
  74. data/lib/ledger_web/public/codemirror/mode/python/python.js +333 -0
  75. data/lib/ledger_web/public/codemirror/mode/r/LICENSE +24 -0
  76. data/lib/ledger_web/public/codemirror/mode/r/index.html +73 -0
  77. data/lib/ledger_web/public/codemirror/mode/r/r.js +141 -0
  78. data/lib/ledger_web/public/codemirror/mode/rpm/changes/changes.js +19 -0
  79. data/lib/ledger_web/public/codemirror/mode/rpm/changes/index.html +53 -0
  80. data/lib/ledger_web/public/codemirror/mode/rpm/spec/index.html +99 -0
  81. data/lib/ledger_web/public/codemirror/mode/rpm/spec/spec.css +5 -0
  82. data/lib/ledger_web/public/codemirror/mode/rpm/spec/spec.js +66 -0
  83. data/lib/ledger_web/public/codemirror/mode/rst/index.html +525 -0
  84. data/lib/ledger_web/public/codemirror/mode/rst/rst.js +326 -0
  85. data/lib/ledger_web/public/codemirror/mode/ruby/LICENSE +24 -0
  86. data/lib/ledger_web/public/codemirror/mode/ruby/index.html +171 -0
  87. data/lib/ledger_web/public/codemirror/mode/ruby/ruby.js +195 -0
  88. data/lib/ledger_web/public/codemirror/mode/rust/index.html +48 -0
  89. data/lib/ledger_web/public/codemirror/mode/rust/rust.js +411 -0
  90. data/lib/ledger_web/public/codemirror/mode/scheme/index.html +64 -0
  91. data/lib/ledger_web/public/codemirror/mode/scheme/scheme.js +202 -0
  92. data/lib/ledger_web/public/codemirror/mode/smalltalk/index.html +55 -0
  93. data/lib/ledger_web/public/codemirror/mode/smalltalk/smalltalk.js +139 -0
  94. data/lib/ledger_web/public/codemirror/mode/sparql/index.html +40 -0
  95. data/lib/ledger_web/public/codemirror/mode/sparql/sparql.js +143 -0
  96. data/lib/ledger_web/public/codemirror/mode/stex/index.html +95 -0
  97. data/lib/ledger_web/public/codemirror/mode/stex/stex.js +167 -0
  98. data/lib/ledger_web/public/codemirror/mode/tiddlywiki/index.html +183 -0
  99. data/lib/ledger_web/public/codemirror/mode/tiddlywiki/tiddlywiki.css +21 -0
  100. data/lib/ledger_web/public/codemirror/mode/tiddlywiki/tiddlywiki.js +374 -0
  101. data/lib/ledger_web/public/codemirror/mode/velocity/index.html +103 -0
  102. data/lib/ledger_web/public/codemirror/mode/velocity/velocity.js +146 -0
  103. data/lib/ledger_web/public/codemirror/mode/xml/index.html +44 -0
  104. data/lib/ledger_web/public/codemirror/mode/xml/xml.js +252 -0
  105. data/lib/ledger_web/public/codemirror/mode/xmlpure/index.html +59 -0
  106. data/lib/ledger_web/public/codemirror/mode/xmlpure/xmlpure.js +485 -0
  107. data/lib/ledger_web/public/codemirror/mode/yaml/index.html +67 -0
  108. data/lib/ledger_web/public/codemirror/mode/yaml/yaml.js +95 -0
  109. data/lib/ledger_web/public/codemirror/theme/cobalt.css +18 -0
  110. data/lib/ledger_web/public/codemirror/theme/eclipse.css +25 -0
  111. data/lib/ledger_web/public/codemirror/theme/elegant.css +10 -0
  112. data/lib/ledger_web/public/codemirror/theme/monokai.css +28 -0
  113. data/lib/ledger_web/public/codemirror/theme/neat.css +9 -0
  114. data/lib/ledger_web/public/codemirror/theme/night.css +21 -0
  115. data/lib/ledger_web/public/codemirror/theme/rubyblue.css +21 -0
  116. data/lib/ledger_web/public/jquery-1.7.1.min.js +4 -0
  117. data/lib/ledger_web/public/jquery.tablesorter.min.js +4 -0
  118. data/lib/ledger_web/public/ledger.css +14 -0
  119. data/lib/ledger_web/report.rb +187 -0
  120. data/lib/ledger_web/reports/savings_rate.erb +49 -0
  121. data/lib/ledger_web/version.rb +3 -0
  122. data/lib/ledger_web/views/error.erb +5 -0
  123. data/lib/ledger_web/views/help.erb +6 -0
  124. data/lib/ledger_web/views/layout.erb +44 -0
  125. data/lib/ledger_web/views/table.erb +31 -0
  126. data/lib/ledger_web/watcher.rb +37 -0
  127. data/lib/ledger_web.rb +20 -0
  128. metadata +229 -0
@@ -0,0 +1,49 @@
1
+ <% @query = query do %>
2
+ select
3
+ month as "Month",
4
+ income as "Income",
5
+ expenses as "Expenses",
6
+ rate as "Savings Rate",
7
+ rate_12 as "Prev Year",
8
+ rate_24 as "Two Years"
9
+ from (
10
+ select
11
+ month,
12
+ income,
13
+ expenses,
14
+ rate,
15
+ lead(rate, 12) over() as rate_12,
16
+ lead(rate, 24) over() as rate_24
17
+ from (
18
+ select
19
+ month,
20
+ income,
21
+ expenses,
22
+ income - expenses as savings,
23
+ round((income - expenses) / income * 100, 2) as rate
24
+ from (
25
+ select
26
+ date_trunc('month', xtn_date)::date as month,
27
+ 0 - sum(case when account ~ 'Income' then amount else 0 end) as income,
28
+ sum(case when account ~ 'Expenses' then amount else 0 end) as expenses
29
+ from
30
+ ledger
31
+ group by
32
+ date_trunc('month', xtn_date)::date
33
+ ) x
34
+ order by
35
+ month desc
36
+ ) x
37
+ ) x
38
+ where
39
+ month <= :to
40
+ and month >= :from
41
+ <% end %>
42
+ <div class="page-header">
43
+ <h1>Savings Rate</h1>
44
+ </div>
45
+ <div class="row">
46
+ <div class="span16">
47
+ <%= table @query %>
48
+ </div>
49
+ </div>
@@ -0,0 +1,3 @@
1
+ module LedgerWeb
2
+ VERSION = 1.2
3
+ end
@@ -0,0 +1,5 @@
1
+ <div class="page-header">
2
+ <h1>Woops, something went wrong</h1>
3
+ </div>
4
+ <p><%= @error.to_s %></p>
5
+ <p><%= @error.backtrace.join("<br>") %></p>
@@ -0,0 +1,6 @@
1
+ <div class="page-header">
2
+ <h1>Welcome to Ledger Web!</h1>
3
+ </div>
4
+ <p>
5
+ There are some example reports in the Reports menu up there. Why don't you check them out to see what's possible?
6
+ </p>
@@ -0,0 +1,44 @@
1
+ <html>
2
+ <head>
3
+ <title>Ledger Web</title>
4
+ <link rel="stylesheet" href="/bootstrap.min.css">
5
+ <link rel="stylesheet" href="/ledger.css">
6
+ <script type="text/javascript" src="/jquery-1.7.1.min.js"></script>
7
+ <script type="text/javascript" src="/jquery.tablesorter.min.js"></script>
8
+ <script type="text/javascript" src="/bootstrap-dropdown.js"></script>
9
+ <script type="text/javascript">
10
+ $(function() {
11
+ $("table.sorted").tablesorter();
12
+ });
13
+ </script>
14
+ </head>
15
+ <body>
16
+ <div class="topbar" data-dropdown="dropdown">
17
+ <div class="fill">
18
+ <div class="container">
19
+ <a class="brand" href="/">Ledger Web</a>
20
+ <ul class="nav">
21
+ <li class="dropdown">
22
+ <a href="#" class="dropdown-toggle">Reports</a>
23
+ <ul class="dropdown-menu">
24
+ <% @reports.each do |report| %>
25
+ <li><a href="/reports/<%= report[0] %>"><%= report[1] %></a></li>
26
+ <% end %>
27
+ </ul>
28
+ </li>
29
+ <li><a href="/help">Help</a></li>
30
+ </ul>
31
+ <form action="/update-date-range" class="pull-right" method="POST">
32
+ <input class="input-small" type="date" placeholder="From" name="from" value="<%= session[:from] %>">
33
+ <input class="input-small" type="date" placeholder="To" name="to" value="<%= session[:to] %>">
34
+ <button class="btn" type="submit">Update</button>
35
+ <button class="btn" type="submit" name="reset" value="Reset">Reset</button>
36
+ </form>
37
+ </div>
38
+ </div>
39
+ </div>
40
+ <div class="container">
41
+ <%= yield %>
42
+ </div>
43
+ </body>
44
+ </html>
@@ -0,0 +1,31 @@
1
+ <% if report.error %>
2
+ <div class="alert-message block-message warning">
3
+ <p><%= report.error %></p>
4
+ <% if report.error.to_s != "No data" %>
5
+ <p><%= report.error.backtrace %></p>
6
+ <% end %>
7
+ </div>
8
+ <% else %>
9
+ <table class="zebra-striped bordered-table condensed-table sorted">
10
+ <thead>
11
+ <tr>
12
+ <% report.fields.each do |f| %>
13
+ <th><span class="<%= f.span_class %>"><%= f.title %></span></th>
14
+ <% end %>
15
+ </tr>
16
+ </thead>
17
+ <tbody>
18
+ <% report.each_row do |row| %>
19
+ <tr>
20
+ <% row.each do |val| %>
21
+ <td>
22
+ <span class="<%= val[1].span_class %>">
23
+ <%= linkify(links, row, val, (val[1].value_type == 'number' && ! val[0].nil?) ? sprintf("%0.2f", val[0]) : val[0]) %>
24
+ </span>
25
+ </td>
26
+ <% end %>
27
+ </tr>
28
+ <% end %>
29
+ </tbody>
30
+ </table>
31
+ <% end %>
@@ -0,0 +1,37 @@
1
+ require 'directory_watcher'
2
+
3
+ module LedgerWeb
4
+ class Watcher
5
+ def self.run!
6
+ directory = CONFIG.get :watch_directory
7
+ glob = "*"
8
+
9
+ if directory.nil?
10
+ directory = File.dirname(CONFIG.get :ledger_file)
11
+ glob = File.basename(CONFIG.get :ledger_file)
12
+ end
13
+
14
+ @@dw = DirectoryWatcher.new directory, :glob => glob
15
+ @@dw.interval = CONFIG.get :watch_interval
16
+ @@dw.stable = CONFIG.get :watch_stable_count
17
+
18
+ @@dw.add_observer do |*args|
19
+ args.each do |event|
20
+ if event[0] == :stable
21
+ puts "Loading database"
22
+ count = load_database
23
+ puts "Loaded #{count} records"
24
+ end
25
+ end
26
+ end
27
+
28
+ @@dw.start
29
+
30
+ end
31
+
32
+ def self.stop!
33
+ @@dw.stop
34
+ end
35
+ end
36
+
37
+ end
data/lib/ledger_web.rb ADDED
@@ -0,0 +1,20 @@
1
+ libdir = File.dirname(__FILE__)
2
+ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
3
+
4
+ require 'ledger_web/config'
5
+ require 'ledger_web/db'
6
+ require 'ledger_web/report'
7
+ require 'ledger_web/watcher'
8
+ require 'ledger_web/helpers'
9
+ require 'ledger_web/app'
10
+
11
+
12
+ ledger_web_dir = "#{ENV['HOME']}/.ledger_web"
13
+
14
+ if File.directory? ledger_web_dir
15
+ if File.directory? File.join(ledger_web_dir, "lib")
16
+ Dir.glob(File.join(ledger_web_dir, "lib", "*.rb")).each do |f|
17
+ require f
18
+ end
19
+ end
20
+ end
metadata ADDED
@@ -0,0 +1,229 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ledger_web
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.2'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Pete Keen
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2011-12-31 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: pg
16
+ requirement: &2157536300 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *2157536300
25
+ - !ruby/object:Gem::Dependency
26
+ name: sequel
27
+ requirement: &2157535860 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *2157535860
36
+ - !ruby/object:Gem::Dependency
37
+ name: directory_watcher
38
+ requirement: &2157535440 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: *2157535440
47
+ - !ruby/object:Gem::Dependency
48
+ name: sinatra
49
+ requirement: &2157535020 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ type: :runtime
56
+ prerelease: false
57
+ version_requirements: *2157535020
58
+ - !ruby/object:Gem::Dependency
59
+ name: sinatra-session
60
+ requirement: &2157534600 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :runtime
67
+ prerelease: false
68
+ version_requirements: *2157534600
69
+ description: Allows arbitrary reporting on your ledger using easy-to-write SQL queries
70
+ email:
71
+ - pete@bugsplat.info
72
+ executables:
73
+ - ledger_web
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - .gitignore
78
+ - LICENSE
79
+ - README.md
80
+ - Rakefile
81
+ - bin/ledger_web
82
+ - ledger_web.gemspec
83
+ - lib/ledger_web.rb
84
+ - lib/ledger_web/app.rb
85
+ - lib/ledger_web/config.rb
86
+ - lib/ledger_web/db.rb
87
+ - lib/ledger_web/db/migrate/20111226180900_initial_schema.rb
88
+ - lib/ledger_web/db/migrate/20111231132900_add_views.rb
89
+ - lib/ledger_web/helpers.rb
90
+ - lib/ledger_web/public/bootstrap-dropdown.js
91
+ - lib/ledger_web/public/bootstrap.min.css
92
+ - lib/ledger_web/public/codemirror/keymap/emacs.js
93
+ - lib/ledger_web/public/codemirror/keymap/vim.js
94
+ - lib/ledger_web/public/codemirror/lib/codemirror.css
95
+ - lib/ledger_web/public/codemirror/lib/codemirror.js
96
+ - lib/ledger_web/public/codemirror/lib/util/dialog.css
97
+ - lib/ledger_web/public/codemirror/lib/util/dialog.js
98
+ - lib/ledger_web/public/codemirror/lib/util/foldcode.js
99
+ - lib/ledger_web/public/codemirror/lib/util/formatting.js
100
+ - lib/ledger_web/public/codemirror/lib/util/javascript-hint.js
101
+ - lib/ledger_web/public/codemirror/lib/util/overlay.js
102
+ - lib/ledger_web/public/codemirror/lib/util/runmode.js
103
+ - lib/ledger_web/public/codemirror/lib/util/search.js
104
+ - lib/ledger_web/public/codemirror/lib/util/searchcursor.js
105
+ - lib/ledger_web/public/codemirror/lib/util/simple-hint.css
106
+ - lib/ledger_web/public/codemirror/lib/util/simple-hint.js
107
+ - lib/ledger_web/public/codemirror/mode/clike/clike.js
108
+ - lib/ledger_web/public/codemirror/mode/clike/index.html
109
+ - lib/ledger_web/public/codemirror/mode/clojure/clojure.js
110
+ - lib/ledger_web/public/codemirror/mode/clojure/index.html
111
+ - lib/ledger_web/public/codemirror/mode/coffeescript/LICENSE
112
+ - lib/ledger_web/public/codemirror/mode/coffeescript/coffeescript.js
113
+ - lib/ledger_web/public/codemirror/mode/coffeescript/index.html
114
+ - lib/ledger_web/public/codemirror/mode/css/css.js
115
+ - lib/ledger_web/public/codemirror/mode/css/index.html
116
+ - lib/ledger_web/public/codemirror/mode/diff/diff.css
117
+ - lib/ledger_web/public/codemirror/mode/diff/diff.js
118
+ - lib/ledger_web/public/codemirror/mode/diff/index.html
119
+ - lib/ledger_web/public/codemirror/mode/gfm/gfm.js
120
+ - lib/ledger_web/public/codemirror/mode/gfm/index.html
121
+ - lib/ledger_web/public/codemirror/mode/groovy/groovy.js
122
+ - lib/ledger_web/public/codemirror/mode/groovy/index.html
123
+ - lib/ledger_web/public/codemirror/mode/haskell/haskell.js
124
+ - lib/ledger_web/public/codemirror/mode/haskell/index.html
125
+ - lib/ledger_web/public/codemirror/mode/htmlembedded/htmlembedded.js
126
+ - lib/ledger_web/public/codemirror/mode/htmlembedded/index.html
127
+ - lib/ledger_web/public/codemirror/mode/htmlmixed/htmlmixed.js
128
+ - lib/ledger_web/public/codemirror/mode/htmlmixed/index.html
129
+ - lib/ledger_web/public/codemirror/mode/javascript/index.html
130
+ - lib/ledger_web/public/codemirror/mode/javascript/javascript.js
131
+ - lib/ledger_web/public/codemirror/mode/jinja2/index.html
132
+ - lib/ledger_web/public/codemirror/mode/jinja2/jinja2.js
133
+ - lib/ledger_web/public/codemirror/mode/lua/index.html
134
+ - lib/ledger_web/public/codemirror/mode/lua/lua.js
135
+ - lib/ledger_web/public/codemirror/mode/markdown/index.html
136
+ - lib/ledger_web/public/codemirror/mode/markdown/markdown.js
137
+ - lib/ledger_web/public/codemirror/mode/ntriples/index.html
138
+ - lib/ledger_web/public/codemirror/mode/ntriples/ntriples.js
139
+ - lib/ledger_web/public/codemirror/mode/pascal/LICENSE
140
+ - lib/ledger_web/public/codemirror/mode/pascal/index.html
141
+ - lib/ledger_web/public/codemirror/mode/pascal/pascal.js
142
+ - lib/ledger_web/public/codemirror/mode/perl/LICENSE
143
+ - lib/ledger_web/public/codemirror/mode/perl/index.html
144
+ - lib/ledger_web/public/codemirror/mode/perl/perl.js
145
+ - lib/ledger_web/public/codemirror/mode/php/index.html
146
+ - lib/ledger_web/public/codemirror/mode/php/php.js
147
+ - lib/ledger_web/public/codemirror/mode/plsql/index.html
148
+ - lib/ledger_web/public/codemirror/mode/plsql/plsql.js
149
+ - lib/ledger_web/public/codemirror/mode/python/LICENSE.txt
150
+ - lib/ledger_web/public/codemirror/mode/python/index.html
151
+ - lib/ledger_web/public/codemirror/mode/python/python.js
152
+ - lib/ledger_web/public/codemirror/mode/r/LICENSE
153
+ - lib/ledger_web/public/codemirror/mode/r/index.html
154
+ - lib/ledger_web/public/codemirror/mode/r/r.js
155
+ - lib/ledger_web/public/codemirror/mode/rpm/changes/changes.js
156
+ - lib/ledger_web/public/codemirror/mode/rpm/changes/index.html
157
+ - lib/ledger_web/public/codemirror/mode/rpm/spec/index.html
158
+ - lib/ledger_web/public/codemirror/mode/rpm/spec/spec.css
159
+ - lib/ledger_web/public/codemirror/mode/rpm/spec/spec.js
160
+ - lib/ledger_web/public/codemirror/mode/rst/index.html
161
+ - lib/ledger_web/public/codemirror/mode/rst/rst.js
162
+ - lib/ledger_web/public/codemirror/mode/ruby/LICENSE
163
+ - lib/ledger_web/public/codemirror/mode/ruby/index.html
164
+ - lib/ledger_web/public/codemirror/mode/ruby/ruby.js
165
+ - lib/ledger_web/public/codemirror/mode/rust/index.html
166
+ - lib/ledger_web/public/codemirror/mode/rust/rust.js
167
+ - lib/ledger_web/public/codemirror/mode/scheme/index.html
168
+ - lib/ledger_web/public/codemirror/mode/scheme/scheme.js
169
+ - lib/ledger_web/public/codemirror/mode/smalltalk/index.html
170
+ - lib/ledger_web/public/codemirror/mode/smalltalk/smalltalk.js
171
+ - lib/ledger_web/public/codemirror/mode/sparql/index.html
172
+ - lib/ledger_web/public/codemirror/mode/sparql/sparql.js
173
+ - lib/ledger_web/public/codemirror/mode/stex/index.html
174
+ - lib/ledger_web/public/codemirror/mode/stex/stex.js
175
+ - lib/ledger_web/public/codemirror/mode/tiddlywiki/index.html
176
+ - lib/ledger_web/public/codemirror/mode/tiddlywiki/tiddlywiki.css
177
+ - lib/ledger_web/public/codemirror/mode/tiddlywiki/tiddlywiki.js
178
+ - lib/ledger_web/public/codemirror/mode/velocity/index.html
179
+ - lib/ledger_web/public/codemirror/mode/velocity/velocity.js
180
+ - lib/ledger_web/public/codemirror/mode/xml/index.html
181
+ - lib/ledger_web/public/codemirror/mode/xml/xml.js
182
+ - lib/ledger_web/public/codemirror/mode/xmlpure/index.html
183
+ - lib/ledger_web/public/codemirror/mode/xmlpure/xmlpure.js
184
+ - lib/ledger_web/public/codemirror/mode/yaml/index.html
185
+ - lib/ledger_web/public/codemirror/mode/yaml/yaml.js
186
+ - lib/ledger_web/public/codemirror/theme/cobalt.css
187
+ - lib/ledger_web/public/codemirror/theme/eclipse.css
188
+ - lib/ledger_web/public/codemirror/theme/elegant.css
189
+ - lib/ledger_web/public/codemirror/theme/monokai.css
190
+ - lib/ledger_web/public/codemirror/theme/neat.css
191
+ - lib/ledger_web/public/codemirror/theme/night.css
192
+ - lib/ledger_web/public/codemirror/theme/rubyblue.css
193
+ - lib/ledger_web/public/jquery-1.7.1.min.js
194
+ - lib/ledger_web/public/jquery.tablesorter.min.js
195
+ - lib/ledger_web/public/ledger.css
196
+ - lib/ledger_web/report.rb
197
+ - lib/ledger_web/reports/savings_rate.erb
198
+ - lib/ledger_web/version.rb
199
+ - lib/ledger_web/views/error.erb
200
+ - lib/ledger_web/views/help.erb
201
+ - lib/ledger_web/views/layout.erb
202
+ - lib/ledger_web/views/table.erb
203
+ - lib/ledger_web/watcher.rb
204
+ homepage: https://github.com/peterkeen/ledger-web
205
+ licenses: []
206
+ post_install_message:
207
+ rdoc_options: []
208
+ require_paths:
209
+ - lib
210
+ required_ruby_version: !ruby/object:Gem::Requirement
211
+ none: false
212
+ requirements:
213
+ - - ! '>='
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ required_rubygems_version: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ! '>='
220
+ - !ruby/object:Gem::Version
221
+ version: '0'
222
+ requirements: []
223
+ rubyforge_project:
224
+ rubygems_version: 1.8.13
225
+ signing_key:
226
+ specification_version: 3
227
+ summary: A web-based, sql-backed front-end for the Ledger command-line accounting
228
+ system
229
+ test_files: []