timesheet 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ Hoe::plugin :gemcutter
14
14
  $hoe = Hoe.spec 'timesheet' do
15
15
  self.developer 'John F. Schank III', 'jschank@mac.com'
16
16
  self.rubyforge_name = self.name # TODO this is default value
17
- self.extra_deps = [['activesupport', '>= 0'], ['archive-tar-minitar', '>= 0'], ['chronic', '>= 0'], ['color', '>= 0'], ['fastercsv', '>= 0'], ['hoe', '>= 0'], ['json_pure', '>= 0'], ['newgem', '>= 0'], ['pdf-writer', '>= 0'], ['rake', '>= 0'], ['RedCloth', '>= 0'], ['rich_units', '>= 0'], ['rspec', '>= 0'], ['rubigen', '>= 0'], ['rubyforge', '>= 0'], ['ruport', '>= 0'], ['syntax', '>= 0'], ['transaction-simple', '>= 0']]
17
+ self.extra_deps = [['activesupport', '>= 0'], ['archive-tar-minitar', '>= 0'], ['chronic', '>= 0'], ['hoe', '>= 0'], ['json_pure', '>= 0'], ['newgem', '>= 0'], ['rake', '>= 0'], ['RedCloth', '>= 0'], ['rich_units', '>= 0'], ['rspec', '>= 0'], ['rubigen', '>= 0'], ['rubyforge', '>= 0'], ['syntax', '>= 0'], ['transaction-simple', '>= 0']]
18
18
  # self.extra_deps = [['activesupport','>= 2.0.2']]
19
19
 
20
20
  end
@@ -17,7 +17,7 @@ require 'timesheet/timesheet_parser'
17
17
 
18
18
  class Timesheet
19
19
 
20
- VERSION = '0.2.2'
20
+ VERSION = '0.2.3'
21
21
 
22
22
  def self.run(params)
23
23
  command_hash = {}
@@ -31,8 +31,6 @@ class ReportItem < DelegateClass(TimeEntry)
31
31
  end
32
32
 
33
33
  def formatted_times
34
- puts start_time
35
- puts end_time
36
34
  str = ""
37
35
  str << start_time.strftime("%m/%d/%Y at %I:%M %p")
38
36
  str << " to "
@@ -1,4 +1,3 @@
1
- require 'ruport'
2
1
  require 'time'
3
2
 
4
3
  class TimeReport
@@ -32,34 +31,47 @@ class TimeReport
32
31
  private
33
32
 
34
33
  def detail_report(outstream)
35
-
36
- # field_names = ["Id", "Project", "Start - Stop", "Hours", "Comment"]
37
- # field_methods = [:formatted_record_number, :project, :formatted_times, :formatted_duration, :comment]
38
34
 
39
- table = Ruport::Data::Table({ :column_names => ["Id", "Project", "Start - Stop", "Hours", "Comment"]}) do |table|
40
- @entries.sort.each do |entry|
41
- row = []
42
-
43
- # format record number
44
- row << entry.formatted_record_number
35
+ fields = [
36
+ {:name => "Id", :method => :formatted_record_number },
37
+ {:name => "Project", :method => :project},
38
+ {:name => "Start - Stop", :method => :formatted_times},
39
+ {:name => "Hours", :method => :formatted_duration},
40
+ {:name => "Comment", :method => :comment}
41
+ ]
42
+
43
+ max_widths = Hash.new(0)
44
+ @entries.each do |item|
45
+ fields.each do |field|
46
+ method = field[:method]
47
+ max_widths[method] = [max_widths[method], item.send(method).length].max
48
+ end
49
+ end
45
50
 
46
- # format project
47
- row << entry.project
51
+ fields.each do |field|
52
+ name = field[:name]
53
+ method = field[:method]
54
+ max_widths[method] = [max_widths[method], name.length].max
55
+ end
48
56
 
49
- # format start - stop
50
- row << entry.formatted_times
57
+ header = "|"
58
+ fields.each { |field| header << " #{field[:name].center(max_widths[field[:method]])} |" }
51
59
 
52
- # format duration
53
- row << entry.formatted_duration
60
+ separator = "+" + ("-" * (header.length - 2)) + "+"
54
61
 
55
- # format comment
56
- row << entry.comment
62
+ outstream.puts separator
63
+ outstream.puts header
64
+ outstream.puts separator
57
65
 
58
- table << row
66
+ @entries.sort.each do |item|
67
+ row = "|"
68
+ fields.each do |field|
69
+ row << " #{item.send(field[:method]).ljust(max_widths[field[:method]])} |"
59
70
  end
71
+ outstream.puts row
60
72
  end
61
73
 
62
- outstream.puts table.as(:text, {:ignore_table_width => true})
74
+ outstream.puts separator
63
75
 
64
76
  end
65
77
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timesheet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - John F. Schank III
@@ -42,26 +42,6 @@ dependencies:
42
42
  - !ruby/object:Gem::Version
43
43
  version: "0"
44
44
  version:
45
- - !ruby/object:Gem::Dependency
46
- name: color
47
- type: :runtime
48
- version_requirement:
49
- version_requirements: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - ">="
52
- - !ruby/object:Gem::Version
53
- version: "0"
54
- version:
55
- - !ruby/object:Gem::Dependency
56
- name: fastercsv
57
- type: :runtime
58
- version_requirement:
59
- version_requirements: !ruby/object:Gem::Requirement
60
- requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- version: "0"
64
- version:
65
45
  - !ruby/object:Gem::Dependency
66
46
  name: hoe
67
47
  type: :runtime
@@ -93,7 +73,7 @@ dependencies:
93
73
  version: "0"
94
74
  version:
95
75
  - !ruby/object:Gem::Dependency
96
- name: pdf-writer
76
+ name: rake
97
77
  type: :runtime
98
78
  version_requirement:
99
79
  version_requirements: !ruby/object:Gem::Requirement
@@ -103,7 +83,7 @@ dependencies:
103
83
  version: "0"
104
84
  version:
105
85
  - !ruby/object:Gem::Dependency
106
- name: rake
86
+ name: RedCloth
107
87
  type: :runtime
108
88
  version_requirement:
109
89
  version_requirements: !ruby/object:Gem::Requirement
@@ -113,7 +93,7 @@ dependencies:
113
93
  version: "0"
114
94
  version:
115
95
  - !ruby/object:Gem::Dependency
116
- name: RedCloth
96
+ name: rich_units
117
97
  type: :runtime
118
98
  version_requirement:
119
99
  version_requirements: !ruby/object:Gem::Requirement
@@ -123,7 +103,7 @@ dependencies:
123
103
  version: "0"
124
104
  version:
125
105
  - !ruby/object:Gem::Dependency
126
- name: rich_units
106
+ name: rspec
127
107
  type: :runtime
128
108
  version_requirement:
129
109
  version_requirements: !ruby/object:Gem::Requirement
@@ -133,7 +113,7 @@ dependencies:
133
113
  version: "0"
134
114
  version:
135
115
  - !ruby/object:Gem::Dependency
136
- name: rspec
116
+ name: rubigen
137
117
  type: :runtime
138
118
  version_requirement:
139
119
  version_requirements: !ruby/object:Gem::Requirement
@@ -143,7 +123,7 @@ dependencies:
143
123
  version: "0"
144
124
  version:
145
125
  - !ruby/object:Gem::Dependency
146
- name: rubigen
126
+ name: rubyforge
147
127
  type: :runtime
148
128
  version_requirement:
149
129
  version_requirements: !ruby/object:Gem::Requirement
@@ -153,7 +133,7 @@ dependencies:
153
133
  version: "0"
154
134
  version:
155
135
  - !ruby/object:Gem::Dependency
156
- name: rubyforge
136
+ name: syntax
157
137
  type: :runtime
158
138
  version_requirement:
159
139
  version_requirements: !ruby/object:Gem::Requirement
@@ -163,7 +143,7 @@ dependencies:
163
143
  version: "0"
164
144
  version:
165
145
  - !ruby/object:Gem::Dependency
166
- name: ruport
146
+ name: transaction-simple
167
147
  type: :runtime
168
148
  version_requirement:
169
149
  version_requirements: !ruby/object:Gem::Requirement
@@ -173,24 +153,24 @@ dependencies:
173
153
  version: "0"
174
154
  version:
175
155
  - !ruby/object:Gem::Dependency
176
- name: syntax
177
- type: :runtime
156
+ name: rubyforge
157
+ type: :development
178
158
  version_requirement:
179
159
  version_requirements: !ruby/object:Gem::Requirement
180
160
  requirements:
181
161
  - - ">="
182
162
  - !ruby/object:Gem::Version
183
- version: "0"
163
+ version: 2.0.3
184
164
  version:
185
165
  - !ruby/object:Gem::Dependency
186
- name: transaction-simple
187
- type: :runtime
166
+ name: gemcutter
167
+ type: :development
188
168
  version_requirement:
189
169
  version_requirements: !ruby/object:Gem::Requirement
190
170
  requirements:
191
171
  - - ">="
192
172
  - !ruby/object:Gem::Version
193
- version: "0"
173
+ version: 0.3.0
194
174
  version:
195
175
  - !ruby/object:Gem::Dependency
196
176
  name: hoe
@@ -200,7 +180,7 @@ dependencies:
200
180
  requirements:
201
181
  - - ">="
202
182
  - !ruby/object:Gem::Version
203
- version: 2.4.0
183
+ version: 2.5.0
204
184
  version:
205
185
  description: |-
206
186
  <i>Timesheet</i> is simple ruby application for tracking time spent on projects.