treet 0.15.0 → 0.17.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0cbacd421d190cd2d749327de0ee03aaf373d524
4
+ data.tar.gz: e41405f31af293569faab6ef0ecc8242a01a645f
5
+ SHA512:
6
+ metadata.gz: f049a44fb96e3b38c7c8c977941bf626715f2029e5499381b946c0414d469ee6457979a95171fe7fd80713333dc8fe9e293ec24d37c97c0412b1c6880599b5ea
7
+ data.tar.gz: d3a42775c21ee9a641d1b112d94e23056d121957eef76a24889faff5006afac6d98f5b4e216f471e8cebf00ff89b942c3c6fc5895fe0a1a3d68c77f8d3da4289
data/.gitignore CHANGED
@@ -16,3 +16,4 @@ test/tmp
16
16
  test/version_tmp
17
17
  tmp
18
18
  .irb_history
19
+ TAGS
data/Gemfile CHANGED
@@ -1,4 +1,6 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
- # Specify your gem's dependencies in treet.gemspec
3
+ # gem 'rugged', :git => "git@github.com:libgit2/rugged.git", :branch => 'development'
4
+ #{}"~> 0.18.0.b1"
5
+
4
6
  gemspec
data/Guardfile CHANGED
@@ -18,11 +18,10 @@ guard 'minitest', test_folders: 'spec', test_file_patterns: 'test_*.rb' do
18
18
  # watch(%r|^spec/spec_helper\.rb|) { "spec" }
19
19
  end
20
20
 
21
- guard 'rspec', :version => 2 do
21
+ guard 'rspec' do
22
22
  watch(%r{^spec/.+_spec\.rb$})
23
23
 
24
24
  watch(%r{^lib/treet/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
25
25
  watch(%r{^(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
26
26
  watch('spec/spec_helper.rb') { "spec" }
27
27
  end
28
-
data/lib/treet/gitrepo.rb CHANGED
@@ -1,11 +1,9 @@
1
- # encoding: UTF-8
2
-
3
1
  require "rugged"
4
2
  require "forwardable"
5
3
 
6
4
  class Treet::Gitrepo < Treet::Repo
7
5
  extend Forwardable
8
- def_delegators :@gitrepo, :head, :refs, :index
6
+ def_delegators :@gitrepo, :head, :refs, :index, :remotes
9
7
 
10
8
  def initialize(path, opts = {})
11
9
  raise ArgumentError, "author required for updates" unless opts[:author]
@@ -22,7 +20,7 @@ class Treet::Gitrepo < Treet::Repo
22
20
  end
23
21
 
24
22
  def tags
25
- gitrepo.refs(/tags/)
23
+ gitrepo.refs.select {|ref| ref.name =~ %r{/tags/}}
26
24
  end
27
25
 
28
26
  def tag(tagname, opts = {})
@@ -30,7 +28,7 @@ class Treet::Gitrepo < Treet::Repo
30
28
  commit = opts[:commit] || head.target
31
29
  if tag_ref = Rugged::Reference.lookup(gitrepo, refname)
32
30
  # move an existing tag
33
- tag_ref.target = commit
31
+ tag_ref.set_target(commit)
34
32
  else
35
33
  # new tag
36
34
  Rugged::Reference.create(gitrepo, refname, commit)
@@ -68,13 +66,17 @@ class Treet::Gitrepo < Treet::Repo
68
66
  index.entries.map{|e| e[:path]}
69
67
  end
70
68
 
71
- def branches
72
- refs(/heads/).map {|ref| ref.name.gsub(/^refs\/heads\//, '')} - ['master']
69
+ def branches(branchname = nil)
70
+ if branchname
71
+ Rugged::Branch.lookup(gitrepo, branchname)
72
+ else
73
+ gitrepo.branches.map(&:name) - ['master']
74
+ end
73
75
  end
74
76
 
75
77
  # always branch from tip of master (private representation)
76
78
  def branch(name)
77
- Rugged::Reference.create(gitrepo, "refs/heads/#{name}", head.target)
79
+ gitrepo.create_branch(name)
78
80
  end
79
81
 
80
82
  def tagged?(tagname)
@@ -93,6 +95,10 @@ class Treet::Gitrepo < Treet::Repo
93
95
  commit_id_for(tagname) == head.target
94
96
  end
95
97
 
98
+ def remote(name)
99
+ Rugged::Remote.lookup(gitrepo, name)
100
+ end
101
+
96
102
  private
97
103
 
98
104
  attr_reader :gitrepo, :author
@@ -157,10 +163,15 @@ class Treet::Gitrepo < Treet::Repo
157
163
  end
158
164
  end
159
165
 
166
+ # ruby 2.0 changed behavior on empty strings: JSON.load("")
167
+ # under 1.9.3 and previous, this caused an exception
168
+ # under 2.0, this just returns nil
160
169
  def gitget(obj)
161
170
  data = gitrepo.read(obj[:oid]).data
162
171
  begin
163
- JSON.load(data)
172
+ v = JSON.load(data)
173
+ v = obj[:name] if v.nil?
174
+ v
164
175
  rescue JSON::ParserError
165
176
  # parser errors are not fatal
166
177
  # this just indicates a string entry rather than a hash
data/lib/treet/hash.rb CHANGED
@@ -1,5 +1,3 @@
1
- # encoding: UTF-8
2
-
3
1
  require "map"
4
2
  require "json"
5
3
  require "digest/sha1"
@@ -177,6 +175,7 @@ class Treet::Hash
177
175
  end
178
176
 
179
177
  when Array
178
+ v2 = v2.map {|e| (Hash === e) ? e.to_hash : e}
180
179
  v1.each do |e1|
181
180
  if !v2.include?(e1)
182
181
  # element has been removed
data/lib/treet/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Treet
2
- VERSION = "0.15.0"
2
+ VERSION = "0.17.1"
3
3
  end
@@ -23,6 +23,32 @@ describe Treet::Hash do
23
23
  hash.data.keys.should be_empty
24
24
  end
25
25
 
26
+ it "should be indifferent to hash element order" do
27
+ h1 = Treet::Hash.new(:one => [Map.new(:two => 'foo', :three => 'bar')])
28
+ h2 = Treet::Hash.new(:one => [Map.new(:three => 'bar', :two => 'foo')])
29
+ h1.should == h2
30
+ h1.compare(h2).should be_empty
31
+ end
32
+
33
+ it "should be indifferent to array element order" do
34
+ h1 = Treet::Hash.new(:one => [{:foo => 'bar'}, {:foo => 'baz'}])
35
+ h2 = Treet::Hash.new(:one => [{:foo => 'baz'}, {:foo => 'bar'}])
36
+ h1.should == h2
37
+ h1.compare(h2).should be_empty
38
+
39
+ h1 = Treet::Hash.new(:one => [3,5,7,11])
40
+ h2 = Treet::Hash.new(:one => [7,11,5,3])
41
+ h1.should == h2
42
+ h1.compare(h2).should be_empty
43
+ end
44
+
45
+ it "should be indifferent to array order (#2)" do
46
+ h1 = Treet::Hash.new(:one => [2,4,6])
47
+ h2 = Treet::Hash.new(:one => [6,4,2])
48
+ h1.should == h2
49
+ h1.compare(h2).should be_empty
50
+ end
51
+
26
52
  it "should compare hashes to file trees" do
27
53
  hash = Treet::Hash.new("#{File.dirname(__FILE__)}/../json/one.json")
28
54
  repo = Treet::Repo.new("#{File.dirname(__FILE__)}/../repos/one")
@@ -78,6 +78,7 @@ class GitrepoTests < MiniTest::Spec
78
78
 
79
79
  it "should have no branches" do
80
80
  johnb.branches.must_be_empty
81
+ johnb.branches('bogus').must_be_nil
81
82
  end
82
83
 
83
84
  it "should return commit SHA for version label" do
@@ -98,8 +99,8 @@ class GitrepoTests < MiniTest::Spec
98
99
  end
99
100
 
100
101
  describe "a gitrepo with an array of strings" do
101
- def self.make_repo
102
- @repo ||= begin
102
+ def repo
103
+ @@repo_with_array ||= begin
103
104
  data = {
104
105
  "label" => "Rainbow Colors",
105
106
  "colors" => %w{red orange yellow green blue purple}
@@ -110,8 +111,6 @@ class GitrepoTests < MiniTest::Spec
110
111
  end
111
112
  end
112
113
 
113
- let(:repo) { self.class.make_repo }
114
-
115
114
  it "should fetch directly from file system" do
116
115
  repo.to_hash.wont_be_nil
117
116
  end
@@ -399,6 +398,7 @@ class GitrepoTests < MiniTest::Spec
399
398
 
400
399
  it "should show a branch" do
401
400
  repo.branches.must_equal ['mybranch']
401
+ repo.branches('mybranch').wont_be_nil
402
402
  end
403
403
  end
404
404
 
data/treet.gemspec CHANGED
@@ -17,7 +17,7 @@ Gem::Specification.new do |gem|
17
17
 
18
18
  gem.add_dependency 'map'
19
19
  gem.add_dependency 'thor'
20
- gem.add_dependency 'rugged', "~> 0.17.0.b6"
20
+ gem.add_dependency 'rugged', "~> 0.19.0"
21
21
 
22
22
  gem.add_development_dependency "rake"
23
23
  gem.add_development_dependency "rspec"
metadata CHANGED
@@ -1,158 +1,139 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: treet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.0
5
- prerelease:
4
+ version: 0.17.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Jason May
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-25 00:00:00.000000000 Z
11
+ date: 2013-07-24 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: map
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: thor
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :runtime
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rugged
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
45
  - - ~>
52
46
  - !ruby/object:Gem::Version
53
- version: 0.17.0.b6
47
+ version: 0.19.0
54
48
  type: :runtime
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
52
  - - ~>
60
53
  - !ruby/object:Gem::Version
61
- version: 0.17.0.b6
54
+ version: 0.19.0
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rake
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
- - - ! '>='
59
+ - - '>='
68
60
  - !ruby/object:Gem::Version
69
61
  version: '0'
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: rspec
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ! '>='
73
+ - - '>='
84
74
  - !ruby/object:Gem::Version
85
75
  version: '0'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
84
  name: guard-rspec
96
85
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
86
  requirements:
99
- - - ! '>='
87
+ - - '>='
100
88
  - !ruby/object:Gem::Version
101
89
  version: '0'
102
90
  type: :development
103
91
  prerelease: false
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
98
  name: guard-minitest
112
99
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
100
  requirements:
115
- - - ! '>='
101
+ - - '>='
116
102
  - !ruby/object:Gem::Version
117
103
  version: '0'
118
104
  type: :development
119
105
  prerelease: false
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  - !ruby/object:Gem::Dependency
127
112
  name: ruby_gntp
128
113
  requirement: !ruby/object:Gem::Requirement
129
- none: false
130
114
  requirements:
131
- - - ! '>='
115
+ - - '>='
132
116
  - !ruby/object:Gem::Version
133
117
  version: '0'
134
118
  type: :development
135
119
  prerelease: false
136
120
  version_requirements: !ruby/object:Gem::Requirement
137
- none: false
138
121
  requirements:
139
- - - ! '>='
122
+ - - '>='
140
123
  - !ruby/object:Gem::Version
141
124
  version: '0'
142
125
  - !ruby/object:Gem::Dependency
143
126
  name: rb-fsevent
144
127
  requirement: !ruby/object:Gem::Requirement
145
- none: false
146
128
  requirements:
147
- - - ! '>='
129
+ - - '>='
148
130
  - !ruby/object:Gem::Version
149
131
  version: '0'
150
132
  type: :development
151
133
  prerelease: false
152
134
  version_requirements: !ruby/object:Gem::Requirement
153
- none: false
154
135
  requirements:
155
- - - ! '>='
136
+ - - '>='
156
137
  - !ruby/object:Gem::Version
157
138
  version: '0'
158
139
  description: Transform between trees of files and JSON blobs
@@ -210,33 +191,26 @@ files:
210
191
  - treet.gemspec
211
192
  homepage: ''
212
193
  licenses: []
194
+ metadata: {}
213
195
  post_install_message:
214
196
  rdoc_options: []
215
197
  require_paths:
216
198
  - lib
217
199
  required_ruby_version: !ruby/object:Gem::Requirement
218
- none: false
219
200
  requirements:
220
- - - ! '>='
201
+ - - '>='
221
202
  - !ruby/object:Gem::Version
222
203
  version: '0'
223
- segments:
224
- - 0
225
- hash: 3301508427182722923
226
204
  required_rubygems_version: !ruby/object:Gem::Requirement
227
- none: false
228
205
  requirements:
229
- - - ! '>='
206
+ - - '>='
230
207
  - !ruby/object:Gem::Version
231
208
  version: '0'
232
- segments:
233
- - 0
234
- hash: 3301508427182722923
235
209
  requirements: []
236
210
  rubyforge_project:
237
- rubygems_version: 1.8.24
211
+ rubygems_version: 2.0.5
238
212
  signing_key:
239
- specification_version: 3
213
+ specification_version: 4
240
214
  summary: Transform between trees of files and JSON blobs
241
215
  test_files:
242
216
  - spec/json/bob1.json