syntropy 0.27.6 → 0.27.7
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/CHANGELOG.md +5 -0
- data/lib/syntropy/routing_tree.rb +36 -13
- data/lib/syntropy/version.rb +1 -1
- data/syntropy.gemspec +2 -2
- data/test/test_routing_tree.rb +0 -2
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dec1337a818afc63d7160fe0aa771dfd12c0128c69307ebb9a2d87a8f4410d7d
|
|
4
|
+
data.tar.gz: dc4dccd65ac6dfacd5d16cd8b2294a7a52f07727fccf5c41da27a259bc9ab4c2
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 589ac7d942379ceef292ba87eeee8cc01329eeb8abc8b627d8259fe02b7ec3e455b3c55fb956b438b0261564c47d122d87b4b759d8e42fe91719d526ad475846
|
|
7
|
+
data.tar.gz: dc6b9a9a530525f73e443cb407bdeb487c063fb6d7bafd4992144d3e22f8e92362c2b9e290f0b050b28e6f8b40468c6ad23786d8aa56d0900e71fce926dcbfe2
|
data/CHANGELOG.md
CHANGED
|
@@ -548,22 +548,30 @@ module Syntropy
|
|
|
548
548
|
end
|
|
549
549
|
end
|
|
550
550
|
|
|
551
|
-
|
|
552
|
-
emit_code_line(buffer, "#{ws}case (p = parts[#{segment_idx}])")
|
|
551
|
+
return if !entry[:target] && !entry[:children]
|
|
553
552
|
|
|
554
|
-
|
|
555
|
-
emit_code_line(buffer, "#{ws}when nil")
|
|
556
|
-
if entry[:target]
|
|
553
|
+
if entry[:target] && entry[:handle_subtree] && !entry[:children]
|
|
557
554
|
map = entry[:static] ? '@static_map' : '@dynamic_map'
|
|
558
|
-
emit_code_line(buffer, "#{ws}
|
|
559
|
-
|
|
560
|
-
emit_code_line(buffer, "#{ws} return nil")
|
|
555
|
+
emit_code_line(buffer, "#{ws}return #{map}[#{entry[:path].inspect}]")
|
|
556
|
+
return
|
|
561
557
|
end
|
|
562
558
|
|
|
559
|
+
case_buffer = +''
|
|
560
|
+
if entry[:target]
|
|
561
|
+
emit_code_line(case_buffer, "#{ws}when nil")
|
|
562
|
+
map = entry[:static] ? '@static_map' : '@dynamic_map'
|
|
563
|
+
emit_code_line(case_buffer, "#{ws} return #{map}[#{entry[:path].inspect}]")
|
|
564
|
+
end
|
|
563
565
|
if entry[:children]
|
|
564
|
-
emit_routing_tree_entry_children_clauses(buffer
|
|
566
|
+
emit_routing_tree_entry_children_clauses(buffer: case_buffer, entry:, indent:, segment_idx:)
|
|
567
|
+
end
|
|
568
|
+
|
|
569
|
+
# Get next segment
|
|
570
|
+
if !case_buffer.empty?
|
|
571
|
+
emit_code_line(buffer, "#{ws}case (p = parts[#{segment_idx}])")
|
|
572
|
+
buffer << case_buffer
|
|
573
|
+
emit_code_line(buffer, "#{ws}end")
|
|
565
574
|
end
|
|
566
|
-
emit_code_line(buffer, "#{ws}end")
|
|
567
575
|
end
|
|
568
576
|
|
|
569
577
|
# Returns the first target found in the given entry's subtree.
|
|
@@ -607,6 +615,7 @@ module Syntropy
|
|
|
607
615
|
ws = ' ' * (indent * 2)
|
|
608
616
|
|
|
609
617
|
param_entry = entry[:children]['[]']
|
|
618
|
+
when_count = 0
|
|
610
619
|
entry[:children].each do |k, child_entry|
|
|
611
620
|
# skip if wildcard entry (treated in else clause below)
|
|
612
621
|
next if k == '[]'
|
|
@@ -626,19 +635,33 @@ module Syntropy
|
|
|
626
635
|
child_path = child_entry[:path]
|
|
627
636
|
route_value = "@dynamic_map[#{child_path.inspect}]"
|
|
628
637
|
emit_code_line(buffer, "#{ws} return #{route_value}#{if_clause}")
|
|
638
|
+
when_count += 1
|
|
629
639
|
|
|
630
640
|
elsif has_children
|
|
631
641
|
# otherwise look at the next segment
|
|
632
642
|
next if is_void_route?(child_entry) && !param_entry
|
|
633
643
|
|
|
634
|
-
|
|
635
|
-
visit_routing_tree_entry(buffer
|
|
644
|
+
when_buffer = +''
|
|
645
|
+
visit_routing_tree_entry(buffer: when_buffer, entry: child_entry, indent: indent + 1, segment_idx: segment_idx + 1)
|
|
646
|
+
if when_buffer.empty? && param_entry
|
|
647
|
+
emit_code_line(when_buffer, "#{ws} return nil")
|
|
648
|
+
end
|
|
649
|
+
if !when_buffer.empty?
|
|
650
|
+
emit_code_line(buffer, "#{ws}when #{k.inspect}")
|
|
651
|
+
buffer << when_buffer
|
|
652
|
+
when_count += 1
|
|
653
|
+
end
|
|
636
654
|
end
|
|
637
655
|
end
|
|
638
656
|
|
|
639
657
|
# parametric route
|
|
640
658
|
if param_entry
|
|
641
|
-
|
|
659
|
+
if when_count == 0
|
|
660
|
+
emit_code_line(buffer, "#{ws}when p")
|
|
661
|
+
else
|
|
662
|
+
emit_code_line(buffer, "#{ws}else")
|
|
663
|
+
end
|
|
664
|
+
|
|
642
665
|
emit_code_line(buffer, "#{ws} params[#{param_entry[:param].inspect}] = p")
|
|
643
666
|
visit_routing_tree_entry(buffer:, entry: param_entry, indent: indent + 1, segment_idx: segment_idx + 1)
|
|
644
667
|
# wildcard route
|
data/lib/syntropy/version.rb
CHANGED
data/syntropy.gemspec
CHANGED
|
@@ -25,8 +25,8 @@ Gem::Specification.new do |s|
|
|
|
25
25
|
s.add_dependency 'json', '~>2.15.1'
|
|
26
26
|
s.add_dependency 'papercraft', '~>3.1.0'
|
|
27
27
|
s.add_dependency 'qeweney', '~>0.24'
|
|
28
|
-
s.add_dependency 'tp2', '~>0.19.
|
|
29
|
-
s.add_dependency 'uringmachine', '~>0.19'
|
|
28
|
+
s.add_dependency 'tp2', '~>0.19.2'
|
|
29
|
+
s.add_dependency 'uringmachine', '~>0.19.1'
|
|
30
30
|
|
|
31
31
|
s.add_dependency 'listen', '~>3.9.0'
|
|
32
32
|
s.add_dependency 'logger', '~>1.7.0'
|
data/test/test_routing_tree.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: syntropy
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.27.
|
|
4
|
+
version: 0.27.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sharon Rosner
|
|
@@ -71,28 +71,28 @@ dependencies:
|
|
|
71
71
|
requirements:
|
|
72
72
|
- - "~>"
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version: 0.19.
|
|
74
|
+
version: 0.19.2
|
|
75
75
|
type: :runtime
|
|
76
76
|
prerelease: false
|
|
77
77
|
version_requirements: !ruby/object:Gem::Requirement
|
|
78
78
|
requirements:
|
|
79
79
|
- - "~>"
|
|
80
80
|
- !ruby/object:Gem::Version
|
|
81
|
-
version: 0.19.
|
|
81
|
+
version: 0.19.2
|
|
82
82
|
- !ruby/object:Gem::Dependency
|
|
83
83
|
name: uringmachine
|
|
84
84
|
requirement: !ruby/object:Gem::Requirement
|
|
85
85
|
requirements:
|
|
86
86
|
- - "~>"
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
|
-
version:
|
|
88
|
+
version: 0.19.1
|
|
89
89
|
type: :runtime
|
|
90
90
|
prerelease: false
|
|
91
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
92
|
requirements:
|
|
93
93
|
- - "~>"
|
|
94
94
|
- !ruby/object:Gem::Version
|
|
95
|
-
version:
|
|
95
|
+
version: 0.19.1
|
|
96
96
|
- !ruby/object:Gem::Dependency
|
|
97
97
|
name: listen
|
|
98
98
|
requirement: !ruby/object:Gem::Requirement
|