treet 0.17.1 → 0.18.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/treet/repo.rb +10 -7
- data/lib/treet/version.rb +1 -1
- data/spec/lib/repo_spec.rb +16 -0
- data/treet.gemspec +1 -0
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6d862a70ed8be944197ac40fa3dcc0db5d0ca8e2
|
4
|
+
data.tar.gz: f0e34807b7927f12ff73b9b573b13d4f5e65ba44
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1a2a25ec6a3c8ca0fe11ea3ca390b77ebdb5405ed55586b1f7f841605c11a78cd3957d24d132c9eb9479117b84563ba9d4ccf7fb02832c848b197d10d94ec3d
|
7
|
+
data.tar.gz: 6362ff5a21d7814368e2df7496755e64fb34ae3cb12edcd0bff92efef4162005110834bacdcccf9d4bb94f352588f65c8fe2116553721b7d11cccd21ae0735f7
|
data/lib/treet/repo.rb
CHANGED
@@ -97,13 +97,16 @@ class Treet::Repo
|
|
97
97
|
# remove something
|
98
98
|
if fieldname
|
99
99
|
# this is a key in a subhash
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
100
|
+
if File.exists?(filepath)
|
101
|
+
# if the subhash is missing, there's nothing to remove, so do nothing (for idempotence)
|
102
|
+
data = JSON.load(File.open(filepath))
|
103
|
+
data.delete(fieldname)
|
104
|
+
if data.empty?
|
105
|
+
# all keys have been removed, clean up the file
|
106
|
+
File.delete(filename)
|
107
|
+
else
|
108
|
+
File.open(filepath, "w") {|f| f << JSON.pretty_generate(data)}
|
109
|
+
end
|
107
110
|
end
|
108
111
|
elsif dirname == "."
|
109
112
|
# this is a top-level string
|
data/lib/treet/version.rb
CHANGED
data/spec/lib/repo_spec.rb
CHANGED
@@ -198,4 +198,20 @@ describe "Repo" do
|
|
198
198
|
newhash.to_hash['datalist'].should be_include('seven')
|
199
199
|
end
|
200
200
|
end
|
201
|
+
|
202
|
+
it "should not crash on patch that deletes missing subtree elements" do
|
203
|
+
hash = Treet::Hash.new("#{File.dirname(__FILE__)}/../json/one.json")
|
204
|
+
Dir.mktmpdir do |dir|
|
205
|
+
repo = hash.to_repo(dir)
|
206
|
+
repo.patch([
|
207
|
+
[
|
208
|
+
"-",
|
209
|
+
"missing.thing",
|
210
|
+
"does not exist"
|
211
|
+
]
|
212
|
+
])
|
213
|
+
newhash = repo.to_hash
|
214
|
+
newhash['missing'].should be_nil
|
215
|
+
end
|
216
|
+
end
|
201
217
|
end
|
data/treet.gemspec
CHANGED
@@ -7,6 +7,7 @@ Gem::Specification.new do |gem|
|
|
7
7
|
gem.description = %q{Transform between trees of files and JSON blobs}
|
8
8
|
gem.summary = %q{Transform between trees of files and JSON blobs}
|
9
9
|
gem.homepage = ""
|
10
|
+
gem.license = "LGPL-3"
|
10
11
|
|
11
12
|
gem.files = `git ls-files`.split($\)
|
12
13
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: treet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason May
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: map
|
@@ -190,7 +190,8 @@ files:
|
|
190
190
|
- spec/test_helper.rb
|
191
191
|
- treet.gemspec
|
192
192
|
homepage: ''
|
193
|
-
licenses:
|
193
|
+
licenses:
|
194
|
+
- LGPL-3
|
194
195
|
metadata: {}
|
195
196
|
post_install_message:
|
196
197
|
rdoc_options: []
|