TicGit-ng 1.0.2.16 → 1.0.2.17

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.
@@ -12,7 +12,7 @@ module TicGitNG
12
12
  @git = Git.open(find_repo(git_dir))
13
13
 
14
14
  begin
15
- git.lib.full_log_commits 1
15
+ git.lib.full_log_commits :count => 1
16
16
  rescue
17
17
  puts "Git error: please check your git repository, you must have at least one commit in git"
18
18
  exit 1
@@ -0,0 +1,63 @@
1
+ module TicGitNG
2
+ module Sync
3
+ class SyncableTicket
4
+
5
+
6
+ #return value is boolean, true if attr has all of the
7
+ #standard attributes, as defined in standard_attributes()
8
+ def has_standard_attributes attrs
9
+ Sync.standard_attributes.each {|attribute, value|
10
+ if attribute==:comments
11
+ if (attrs.has_key?(attribute) or attrs.has_key?(attribute.to_s))
12
+ attribute=attribute.to_s unless attrs.has_key?(attribute)
13
+ attrs[attribute].each {|comment|
14
+ value.each_key {|comment_value|
15
+
16
+ #:comment__id is hint that we need to look for an ID tag, but not necessarily one that is named comment__id
17
+ #or one that uses a name that we can completely predict ahead of time. So, we look for any ticket matching this regex.
18
+ if comment_value==:comment__id
19
+ return false unless comment.map {|k_v| !k_v[0].to_s[/^comment_.*_id$/].nil?}.include?(true)
20
+ next
21
+ end
22
+
23
+ return false unless (comment.has_key?(comment_value) or comment.has_key?(comment_value.to_s))
24
+ }
25
+ }
26
+ end
27
+ else
28
+ return false unless (attrs.has_key?(attribute) or attrs.has_key?(attribute.to_s))
29
+ end
30
+
31
+ }
32
+
33
+ end
34
+
35
+ #parse the comments in attrs for updates of static fields, denoted
36
+ #by lines in the form of "#KEY=VALUE" where key is an attribute such
37
+ #as state, title, or label.
38
+ def parse_attrs_for_updates attrs, malleable
39
+ updates=[]
40
+ comment_regex=/\n#[^=]*="[^"]*"/
41
+ comment_key='comments'
42
+ comment_key=comment_key.to_sym unless attrs.has_key?(comment_key)
43
+ attrs[comment_key].each {|comment|
44
+ c_b_key='comment_body'
45
+ c_b_key=c_b_key.to_sym unless comment.has_key?(c_b_key)
46
+ text=comment[c_b_key]
47
+ while text[comment_regex]
48
+ match=text[comment_regex]
49
+ text.gsub!(match,'')
50
+ updates << match
51
+ end
52
+ }
53
+ updates.each {|update|
54
+ attr_key,attr_value = update.strip.gsub(/#/,'')
55
+ attr_key=attr_key.downcase
56
+ next unless malleable.include?(attr_key)
57
+ attrs.set(attr_key, attr_value)
58
+ }
59
+ attrs
60
+ end
61
+ end
62
+ end
63
+ end
@@ -1,3 +1,3 @@
1
1
  module TicGitNG
2
- VERSION = '1.0.2.16'
2
+ VERSION = '1.0.2.17'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: TicGit-ng
3
3
  version: !ruby/object:Gem::Version
4
- hash: 119
4
+ hash: 117
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 0
9
9
  - 2
10
- - 16
11
- version: 1.0.2.16
10
+ - 17
11
+ version: 1.0.2.17
12
12
  platform: ruby
13
13
  authors:
14
14
  - Scott Chacon
@@ -17,7 +17,7 @@ autorequire:
17
17
  bindir: bin
18
18
  cert_chain: []
19
19
 
20
- date: 2012-08-13 00:00:00 Z
20
+ date: 2012-10-03 00:00:00 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  name: git
@@ -79,6 +79,7 @@ files:
79
79
  - lib/ticgit-ng/command/init.rb
80
80
  - lib/ticgit-ng/command/new.rb
81
81
  - lib/ticgit-ng/comment.rb
82
+ - lib/ticgit-ng/syncable_ticket.rb
82
83
  - lib/ticgit-ng/version.rb
83
84
  - lib/ticgit-ng/ticket.rb
84
85
  - lib/ticgit-ng/command.rb
@@ -121,3 +122,4 @@ specification_version: 3
121
122
  summary: Git based distributed ticketing system
122
123
  test_files: []
123
124
 
125
+ has_rdoc: