wlog 1.1.7 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +100 -39
  3. data/lib/wlog/commands/bootstrap_templates.rb +5 -0
  4. data/lib/wlog/commands/delete_attachment.rb +17 -0
  5. data/lib/wlog/commands/fetch_git_commits.rb +45 -0
  6. data/lib/wlog/commands/fetch_git_commits_standard.rb +29 -0
  7. data/lib/wlog/commands/innit_db.rb +3 -2
  8. data/lib/wlog/commands/write_template.rb +22 -0
  9. data/lib/wlog/domain/attachment.rb +26 -54
  10. data/lib/wlog/domain/git_commit.rb +11 -0
  11. data/lib/wlog/domain/issue.rb +14 -1
  12. data/lib/wlog/domain/key_value.rb +1 -1
  13. data/lib/wlog/domain/template_helper.rb +21 -0
  14. data/lib/wlog/migrations/fix_attachments_polymorphic_table.rb +15 -0
  15. data/lib/wlog/migrations/make_standard_tables.rb +0 -13
  16. data/lib/wlog/tech/git_commit_parser.rb +48 -0
  17. data/lib/wlog/tech/git_commit_printer.rb +19 -0
  18. data/lib/wlog/tech/uncolored_string.rb +1 -1
  19. data/lib/wlog/ui/bootstrap.rb +1 -0
  20. data/lib/wlog/ui/cli_interface.rb +2 -58
  21. data/lib/wlog/ui/edit_handler.rb +7 -0
  22. data/lib/wlog/ui/git_ui.rb +47 -0
  23. data/lib/wlog/ui/invoice_ui.rb +53 -36
  24. data/lib/wlog/ui/issue_ui.rb +57 -5
  25. data/lib/wlog/ui/template_ui.rb +2 -2
  26. data/lib/wlog/version.rb +1 -1
  27. data/spec/domain/attachment_spec.rb +49 -55
  28. data/spec/domain/commands/concat_desc_spec.rb +1 -0
  29. data/spec/domain/commands/new_entry_spec.rb +1 -0
  30. data/spec/domain/commands/replace_pattern_spec.rb +1 -0
  31. data/spec/domain/git_commits_spec.rb +85 -0
  32. data/spec/domain/invoice_spec.rb +35 -0
  33. data/spec/domain/issue_spec.rb +1 -0
  34. data/spec/domain/key_value_spec.rb +1 -0
  35. data/spec/domain/log_entry_spec.rb +1 -0
  36. data/spec/domain/sys_config_spec.rb +1 -0
  37. data/spec/spec_helper.rb +31 -0
  38. data/wlog.gemspec +3 -1
  39. metadata +40 -18
  40. data/lib/wlog/domain/session.rb +0 -17
  41. data/lib/wlog/domain/sql_modules/polymorphic_attachments_sql.rb +0 -24
  42. data/lib/wlog/domain/template_engine.rb +0 -55
  43. data/lib/wlog/sql/mono/1.sql +0 -50
  44. data/lib/wlog/sql/seq/.gitkeep +0 -0
  45. data/lib/wlog/sql/seq/2.sql +0 -4
  46. data/lib/wlog/sql/seq/3.sql +0 -3
  47. data/lib/wlog/ui/commands/ui_command.rb +0 -9
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wlog
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.7
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - psyomn
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-03 00:00:00.000000000 Z
11
+ date: 2014-10-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -67,33 +67,47 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: sqlite3
70
+ name: coveralls
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - '>='
74
74
  - !ruby/object:Gem::Version
75
- version: 1.3.7
76
- type: :runtime
75
+ version: '0'
76
+ type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - '>='
81
81
  - !ruby/object:Gem::Version
82
- version: 1.3.7
82
+ version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: rake
84
+ name: redcarpet
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: sqlite3
85
99
  requirement: !ruby/object:Gem::Requirement
86
100
  requirements:
87
101
  - - '>='
88
102
  - !ruby/object:Gem::Version
89
- version: 10.3.2
103
+ version: 1.3.7
90
104
  type: :runtime
91
105
  prerelease: false
92
106
  version_requirements: !ruby/object:Gem::Requirement
93
107
  requirements:
94
108
  - - '>='
95
109
  - !ruby/object:Gem::Version
96
- version: 10.3.2
110
+ version: 1.3.7
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: activerecord
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -130,38 +144,40 @@ files:
130
144
  - lib/wlog/commands/commandable.rb
131
145
  - lib/wlog/commands/concat_description.rb
132
146
  - lib/wlog/commands/create_issue.rb
147
+ - lib/wlog/commands/delete_attachment.rb
133
148
  - lib/wlog/commands/delete_issue.rb
149
+ - lib/wlog/commands/fetch_git_commits.rb
150
+ - lib/wlog/commands/fetch_git_commits_standard.rb
134
151
  - lib/wlog/commands/innit_db.rb
135
152
  - lib/wlog/commands/make_csv.rb
136
153
  - lib/wlog/commands/new_entry.rb
137
154
  - lib/wlog/commands/replace_pattern.rb
138
155
  - lib/wlog/commands/taint_setup.rb
156
+ - lib/wlog/commands/write_template.rb
139
157
  - lib/wlog/domain.rb
140
158
  - lib/wlog/domain/attachment.rb
159
+ - lib/wlog/domain/git_commit.rb
141
160
  - lib/wlog/domain/helpers.rb
142
161
  - lib/wlog/domain/invoice.rb
143
162
  - lib/wlog/domain/issue.rb
144
163
  - lib/wlog/domain/key_value.rb
145
164
  - lib/wlog/domain/log_entry.rb
146
- - lib/wlog/domain/session.rb
147
- - lib/wlog/domain/sql_modules/polymorphic_attachments_sql.rb
148
165
  - lib/wlog/domain/static_configurations.rb
149
166
  - lib/wlog/domain/sys_config.rb
150
- - lib/wlog/domain/template_engine.rb
167
+ - lib/wlog/domain/template_helper.rb
151
168
  - lib/wlog/domain/timelog_helper.rb
169
+ - lib/wlog/migrations/fix_attachments_polymorphic_table.rb
152
170
  - lib/wlog/migrations/make_standard_tables.rb
153
- - lib/wlog/sql/mono/1.sql
154
- - lib/wlog/sql/seq/.gitkeep
155
- - lib/wlog/sql/seq/2.sql
156
- - lib/wlog/sql/seq/3.sql
157
171
  - lib/wlog/tech/ansi_colors.rb
172
+ - lib/wlog/tech/git_commit_parser.rb
173
+ - lib/wlog/tech/git_commit_printer.rb
158
174
  - lib/wlog/tech/uncolored_string.rb
159
175
  - lib/wlog/tech/wlog_string.rb
160
176
  - lib/wlog/ui/bootstrap.rb
161
177
  - lib/wlog/ui/cli_interface.rb
162
- - lib/wlog/ui/commands/ui_command.rb
163
178
  - lib/wlog/ui/configuration_ui.rb
164
179
  - lib/wlog/ui/edit_handler.rb
180
+ - lib/wlog/ui/git_ui.rb
165
181
  - lib/wlog/ui/invoice_ui.rb
166
182
  - lib/wlog/ui/issue_ui.rb
167
183
  - lib/wlog/ui/setup_wizard.rb
@@ -171,6 +187,8 @@ files:
171
187
  - spec/domain/commands/concat_desc_spec.rb
172
188
  - spec/domain/commands/new_entry_spec.rb
173
189
  - spec/domain/commands/replace_pattern_spec.rb
190
+ - spec/domain/git_commits_spec.rb
191
+ - spec/domain/invoice_spec.rb
174
192
  - spec/domain/issue_spec.rb
175
193
  - spec/domain/key_value_spec.rb
176
194
  - spec/domain/log_entry_spec.rb
@@ -178,6 +196,7 @@ files:
178
196
  - spec/make_db.rb
179
197
  - spec/old-databases/README.md
180
198
  - spec/old-databases/default
199
+ - spec/spec_helper.rb
181
200
  - spec/tech/uncolored_string.rb
182
201
  - spec/tech/wlog_string_spec.rb
183
202
  - wlog.gemspec
@@ -204,12 +223,14 @@ rubyforge_project:
204
223
  rubygems_version: 2.0.14
205
224
  signing_key:
206
225
  specification_version: 4
207
- summary: 'A light ruby script to help track tasks and time commit: b401028'
226
+ summary: 'A light ruby script to help track tasks and time commit: 83fbf5f'
208
227
  test_files:
209
228
  - spec/domain/attachment_spec.rb
210
229
  - spec/domain/commands/concat_desc_spec.rb
211
230
  - spec/domain/commands/new_entry_spec.rb
212
231
  - spec/domain/commands/replace_pattern_spec.rb
232
+ - spec/domain/git_commits_spec.rb
233
+ - spec/domain/invoice_spec.rb
213
234
  - spec/domain/issue_spec.rb
214
235
  - spec/domain/key_value_spec.rb
215
236
  - spec/domain/log_entry_spec.rb
@@ -217,6 +238,7 @@ test_files:
217
238
  - spec/make_db.rb
218
239
  - spec/old-databases/README.md
219
240
  - spec/old-databases/default
241
+ - spec/spec_helper.rb
220
242
  - spec/tech/uncolored_string.rb
221
243
  - spec/tech/wlog_string_spec.rb
222
244
  has_rdoc:
@@ -1,17 +0,0 @@
1
- module Wlog
2
- # This is the session that contains data about a particular run (for example
3
- # what kind of database to use, etc). NOTE: this is a placeholder for now.
4
- # Eventually this should be the object passed on sessions (for example, the
5
- # active records should get the session object, and extract what they need from
6
- # it - the db reference).
7
- # @author Simon Symeonidis
8
- class Session
9
-
10
- def initialize(dbhandle)
11
- @db = dbhandle
12
- end
13
-
14
- attr_accessor :db
15
-
16
- end
17
- end
@@ -1,24 +0,0 @@
1
- module Wlog
2
- # Sql for polymorphic attachments
3
- # @author Simon Symeonidis
4
- module PolymorphicAttachmentsSql
5
-
6
- # The table name
7
- TableName = "polymorphic_attachments"
8
-
9
- # Select entries by discriminator name, and id
10
- SelectSql = "SELECT * FROM #{TableName} WHERE "\
11
- "discriminator = ? AND discriminator_id = ? "
12
-
13
- # Insert an attachment given the current thing in hand
14
- InsertSql = "INSERT INTO #{TableName} "\
15
- "(discriminator, discriminator_id, attachment_id) values "\
16
- "(? , ? , ?)"
17
-
18
- # Delete an attachment from the attached thing
19
- DeleteSql = "DELETE FROM #{TableName} WHERE "\
20
- "discriminator = ? AND discriminator_id = ?"
21
-
22
- end
23
- end
24
-
@@ -1,55 +0,0 @@
1
- module Wlog
2
- # A very simple templating engine that supports generating text files in order
3
- # for them to be, in turn parsed by some other tool in order to generate nice
4
- # invoices. The 'other' tool I have in mind is pandoc; this somewhat defeats
5
- # the purpose of 'lightweight' in the sense that we indirectly need that tool,
6
- # but on the other hand writing a more complex templating engine might prove
7
- # too costly for now.
8
- #
9
- # @author Simon Symeonidis
10
- class TemplateEngine
11
-
12
- # These can either be atomic elements, or arrays of two. In the former, they
13
- # just join entries by adding the separator. The latter makes the two a
14
- # prefix, and postfix.
15
- # @param issue_sep is what to separate issues with
16
- # @param log_entry_sep is what to separate log entries with
17
- def initialize(issue_sep, log_entry_sep, issues, invoice_id)
18
- @issue_sep, @log_entry_sep, @issues, @invoice_id = \
19
- issue_sep, log_entry_sep, issues, invoice_id
20
- end
21
-
22
- def generate(filename)
23
- contents = File.open(filename).read
24
- contens.gsub(InvoiceId, @invoice_id)
25
- end
26
-
27
- # What to separate issues with
28
- attr_accessor :issue_sep
29
-
30
- # What to separate log entries with
31
- attr_accessor :log_entry_sep
32
-
33
- # An issue list
34
- attr_accessor :issues
35
-
36
- private
37
-
38
- # The tag to look for in order to add the issue info
39
- IssueTag = '<issue-sep>'
40
-
41
- # The log entry tag to add the log entries
42
- LogEntrySep = '<log-entry-sep>'
43
-
44
- InvoiceId = '<id>'
45
-
46
- DateFrom = '<date-from>'
47
-
48
- DateTo = '<date-to>'
49
-
50
- StartSegment = '[segment]'
51
- EndSegment = '[/segment]'
52
-
53
- end
54
- end
55
-
@@ -1,50 +0,0 @@
1
- --$ Migration to turntables. This is the initial configuration of the database
2
- --$ for this application.
3
-
4
- -- author: Simon Symeonidis
5
- --
6
- -- Please follow plurals like this:
7
- -- class Issue -> issues;
8
- -- class Person -> people;
9
- --
10
-
11
- -- An issue has many log entries
12
- CREATE TABLE issues (
13
- id INTEGER PRIMARY KEY AUTOINCREMENT,
14
- description TEXT,
15
- reported_date INTEGER,
16
- due_date INTEGER,
17
- status INTEGER
18
- );
19
-
20
- -- Where to store the log entries.
21
- CREATE TABLE log_entries (
22
- id INTEGER PRIMARY KEY AUTOINCREMENT,
23
- description TEXT,
24
- date DATETIME,
25
- issue_id INTEGER
26
- );
27
-
28
- -- We can add attachments to stuff.
29
- CREATE TABLE attachments (
30
- id INTEGER PRIMARY KEY AUTOINCREMENT,
31
- filename TEXT,
32
- given_name TEXT,
33
- data BLOB
34
- );
35
-
36
- -- Create the key value table
37
- CREATE TABLE key_values (
38
- key TEXT,
39
- value TEXT
40
- );
41
-
42
- -- A polymorphic relationship for attachments. So pretty much anything that
43
- -- wants to have something attached, uses the discriminator in order to
44
- -- specify itself, as well as its id.
45
- CREATE TABLE polymorphic_attachments (
46
- discriminator TEXT,
47
- discriminator_id INTEGER,
48
- attachment_id INTEGER
49
- );
50
-
File without changes
@@ -1,4 +0,0 @@
1
- --$ Add time logging for log_entries for version 1.0.5
2
-
3
- ALTER TABLE issues ADD COLUMN timelog BIGINT;
4
-
@@ -1,3 +0,0 @@
1
- --$ add a long description to the table
2
-
3
- ALTER TABLE issues ADD COLUMN long_description TEXT;
@@ -1,9 +0,0 @@
1
- module Wlog
2
- # Interface that CLUIs need to follow (purely command pattern)
3
- # @author
4
- class UiCommand
5
- def execute
6
- throw NotImplementedException
7
- end
8
- end
9
- end