timesheet 0.2.2 → 0.2.3

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