glug 0.0.2 → 0.0.3
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/glug.rb +19 -8
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 021d7f8ef27d817a09761e33a6768f58f8d94848
|
4
|
+
data.tar.gz: ae6f46a63cc86c955683f64f44118e50efc28845
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '039967c1194fabd0c105c3f4eb2e328ffb4589d7fda079037d109338aac9b09ebee55db91ba9b4a5421f45aab7aaa20aa7acc51e4868a79860925be964bb0ce7'
|
7
|
+
data.tar.gz: 89e4ec1f4a0dd64cd3186f4e911e24088c9104623df83483b180c7987fe21fe76f7084dfaadf71783bf70a2d2b9c4239976f3e5b69b49d1f2b343081bcc3b48e
|
data/lib/glug.rb
CHANGED
@@ -93,7 +93,7 @@ module Glug # :nodoc:
|
|
93
93
|
def to_hash
|
94
94
|
out = @kv.dup
|
95
95
|
out['sources'] = @sources
|
96
|
-
out['layers'] = @layers.select { |r| r.write? }.collect { |r| r.to_hash }
|
96
|
+
out['layers'] = @layers.select { |r| r.write? }.collect { |r| r.to_hash }.compact
|
97
97
|
out
|
98
98
|
end
|
99
99
|
def to_json(*args); JSON.neat_generate(to_hash) end
|
@@ -119,7 +119,7 @@ module Glug # :nodoc:
|
|
119
119
|
def <=(*args); Condition.new.from_key(:<=,@k,args) end
|
120
120
|
def >=(*args); Condition.new.from_key(:>=,@k,args) end
|
121
121
|
def in(*args); Condition.new.from_key(:in,@k,args) end
|
122
|
-
def not_in(*args); Condition.new.from_key(
|
122
|
+
def not_in(*args); Condition.new.from_key('!in',@k,args) end
|
123
123
|
end
|
124
124
|
|
125
125
|
# ----- Layer
|
@@ -195,9 +195,9 @@ module Glug # :nodoc:
|
|
195
195
|
sub_cond = @condition # just inherit parent layer's condition
|
196
196
|
else
|
197
197
|
sub_cond = (args.length==1) ? args[0] : Condition.new.from_list(:any,args)
|
198
|
-
sub_cond = sub_cond
|
198
|
+
sub_cond = nilsafe_merge(sub_cond, @condition)
|
199
199
|
end
|
200
|
-
r._set_filter(sub_cond
|
200
|
+
r._set_filter(nilsafe_merge(sub_cond, @uncascaded))
|
201
201
|
r.instance_eval(&block)
|
202
202
|
@stylesheet._add_layer(r)
|
203
203
|
|
@@ -206,13 +206,23 @@ module Glug # :nodoc:
|
|
206
206
|
@cascades.each do |c|
|
207
207
|
c_cond, c_kv = c
|
208
208
|
l = Layer.new(@stylesheet, :id=>"#{r.kv[:id]}__#{child_chr}", :kv=>r.kv.dup)
|
209
|
-
l._set_filter(sub_cond
|
209
|
+
l._set_filter(nilsafe_merge(sub_cond, c_cond))
|
210
210
|
l.kv.merge!(c_kv)
|
211
211
|
@stylesheet._add_layer(l)
|
212
212
|
child_chr.next!
|
213
213
|
end
|
214
214
|
end
|
215
215
|
|
216
|
+
# Short-form key constructor - for reserved words
|
217
|
+
def tag(k)
|
218
|
+
OSMKey.new(k)
|
219
|
+
end
|
220
|
+
|
221
|
+
# Nil-safe merge
|
222
|
+
def nilsafe_merge(a,b)
|
223
|
+
a.nil? ? b : (a & b)
|
224
|
+
end
|
225
|
+
|
216
226
|
# Add a cascading condition
|
217
227
|
def cascade(*args, &block)
|
218
228
|
cond = (args.length==1) ? args[0] : Condition.new.from_list(:any,args)
|
@@ -241,7 +251,7 @@ module Glug # :nodoc:
|
|
241
251
|
_set_filter(args.length==1 ? args[0] : Condition.new.from_list(:any,args))
|
242
252
|
end
|
243
253
|
def _set_filter(condition)
|
244
|
-
@condition = condition.dup
|
254
|
+
@condition = condition.nil? ? nil : condition.dup
|
245
255
|
end
|
246
256
|
|
247
257
|
# Set layer name
|
@@ -291,7 +301,7 @@ module Glug # :nodoc:
|
|
291
301
|
hash['type'] = @type
|
292
302
|
if @condition then hash['filter'] = @condition.encode end
|
293
303
|
|
294
|
-
#
|
304
|
+
# Convert zoom level
|
295
305
|
if (v=hash['zoom'])
|
296
306
|
hash['minzoom'] = v.is_a?(Range) ? v.first : v
|
297
307
|
hash['maxzoom'] = v.is_a?(Range) ? v.last : v
|
@@ -306,7 +316,8 @@ module Glug # :nodoc:
|
|
306
316
|
else
|
307
317
|
stylesheet.refs[mk] = hash['id']
|
308
318
|
end
|
309
|
-
|
319
|
+
|
320
|
+
hash[:layout].empty? && hash[:paint].empty? ? nil : hash
|
310
321
|
end
|
311
322
|
|
312
323
|
# Key to identify matching layer properties (slow but...)
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: glug
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Richard Fairhurst
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: neatjson
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
description: Text-based markup for Mapbox GL styles
|
@@ -31,8 +31,8 @@ executables:
|
|
31
31
|
extensions: []
|
32
32
|
extra_rdoc_files: []
|
33
33
|
files:
|
34
|
-
- lib/glug.rb
|
35
34
|
- bin/glug
|
35
|
+
- lib/glug.rb
|
36
36
|
homepage: http://github.com/systemed/glug
|
37
37
|
licenses:
|
38
38
|
- FTWPL
|
@@ -43,17 +43,17 @@ require_paths:
|
|
43
43
|
- lib
|
44
44
|
required_ruby_version: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
54
|
requirements: []
|
55
55
|
rubyforge_project:
|
56
|
-
rubygems_version: 2.
|
56
|
+
rubygems_version: 2.6.13
|
57
57
|
signing_key:
|
58
58
|
specification_version: 4
|
59
59
|
summary: Glug
|