treet 0.17.1 → 0.18.0
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 +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: []
|