gitdb 0.1.1 → 0.1.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fd555baba7939ba328863a24472a914e7d9eb436
4
- data.tar.gz: d99302d2a081c812e8ab8757016cfd1acc79f24d
3
+ metadata.gz: 5aa6018d95449efb2183029a5944a5ef0311850a
4
+ data.tar.gz: 844937233a926d9e64455bf960e9f130dd7dc933
5
5
  SHA512:
6
- metadata.gz: 06cf2a433f5c1734784a91cdf2190618cce47ddf4d9186e19cc42a6b779ee045c72ae29f973ed003e28eeaf6204e59da825c7358c520589e3ed0b8ae2af0d034
7
- data.tar.gz: 906d0588f6c7206b39bbdac91e70da37f0f938b9c62f238de946a8b18194a483b509c0fc85bd8a4b8413985af3be82e5329990dfcbe29ef745b1f87f88d603b9
6
+ metadata.gz: 80a6012d3b3c0c0ac842c5d5bc149332dd085d8d512f332de6543f051ce0cb37dcd9f1b58bf3e53d5771f297937b35e6bcdb58fda8fa68f23f2db85526a4b9f5
7
+ data.tar.gz: f0bf2535fe3e5a543104fd197a5b606c6cb86d5b1598e8f70edd341c91156421e5258ac818b467f76d36182a56066eeafb8b64692020e70b2b7b7507641cb2ec
data/lib/gitdb/Card.rb CHANGED
@@ -4,6 +4,8 @@ module Gitdb
4
4
 
5
5
  # 线程锁
6
6
  @@lock = Mutex.new
7
+ # 记录申请资源的repo, 用于判断是否需要锁
8
+ @@lock_repo = []
7
9
 
8
10
  def initialize repo
9
11
  @repo = repo
@@ -40,8 +42,7 @@ module Gitdb
40
42
 
41
43
  def create uid
42
44
 
43
- # 同步信号量
44
- @@lock.synchronize {
45
+ block = Proc.new {
45
46
  # 生成唯一的名片id
46
47
  while exist?(@id = Gitil::generate_code(4))
47
48
  end
@@ -52,6 +53,18 @@ module Gitdb
52
53
  # 添加到暂存区
53
54
  add_to_stage @id, JSON.pretty_generate(@content)
54
55
  }
56
+
57
+ # 如果repo中存在资源申请
58
+ if @@lock_repo.include? @repo.workdir
59
+ # 同步信号量
60
+ @@lock.synchronize &block
61
+ else
62
+ # 否则将新的repo加入记录
63
+ @@lock_repo << @repo.workdir
64
+ block.call
65
+ end
66
+ # 使用结束后清理记录
67
+ @@lock_repo.delete @repo.workdir
55
68
 
56
69
  # 返回Card实例
57
70
  self
@@ -49,15 +49,6 @@ module Gitdb
49
49
  end
50
50
  end
51
51
 
52
- # 返回Card实例集合
53
- def get_all_cards
54
- if @repo.head_unborn?
55
- []
56
- else
57
- @repo.head.target.tree.collect.each { |o| Card.new(@repo).access o[:name] }
58
- end
59
- end
60
-
61
52
  # 返回Card实例
62
53
  def get_card_by_id id
63
54
  if @repo.head_unborn?
@@ -67,11 +58,30 @@ module Gitdb
67
58
  end
68
59
  end
69
60
 
61
+ # 条件查询
62
+ # 返回Card实例集合
63
+ def get_cards &condition
64
+ if @repo.head_unborn?
65
+ []
66
+ else
67
+ @repo.head.target.tree.map do |o|
68
+ yield Card.new(@repo).access o[:name]
69
+ end.compact
70
+ end
71
+ end
72
+
73
+ # 返回Card实例集合
74
+ def get_all_cards
75
+ get_cards { |card| card }
76
+ end
77
+
70
78
  def getmeta
71
79
  @meta = {
72
80
  :name => @repo.config['repo.name'],
73
81
  :owner => @repo.config['repo.owner'],
74
- :gid => @repo.config['repo.gid']
82
+ :gid => @repo.config['repo.gid'],
83
+ # 动态获取contacts中card数量
84
+ :count => @repo.head_unborn? ? 0 : @repo.last_commit.tree.count
75
85
  }
76
86
  end
77
87
 
data/lib/gitdb/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Gitdb
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gitdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ran
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-19 00:00:00.000000000 Z
11
+ date: 2015-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rugged