r2ree 0.1.1 → 0.1.2
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 +5 -5
- data/lib/r2ree/version.rb +1 -1
- data/vendor/r2ree/.travis.yml +39 -13
- data/vendor/r2ree/CMakeLists.txt +1 -1
- data/vendor/r2ree/README.md +2 -0
- data/vendor/r2ree/ext/gtest/CMakeLists.txt +1 -1
- data/vendor/r2ree/src/r2ree.cc +8 -4
- data/vendor/r2ree/test/gtest_r2ree.cc +17 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 3c8335cbef249961ab636592b8c0915feea8d6c10b977b71c5d3024b133c490a
|
4
|
+
data.tar.gz: 90dfad4cb86a41f33a4c569b3f63c99bc4d21fe67db2e0e8bcc40f56aba49825
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 93ac6878efc2d145ba8faf1a4b1575ddbe9eb0337b37f843bf5eb9b6e3e61d6951d0d9993f1f6ad9e6c0135208be8bc44274f24ce8612498cf6c9a0e1ee85541
|
7
|
+
data.tar.gz: 838a4fa38d82e1500f17f901bd28ac36970cf93a148a1f8e24144253a73aea9dbfa7ce3a725faf84eed0af771e12afe424060cff9ea0f167f1c2339d8650435d
|
data/lib/r2ree/version.rb
CHANGED
data/vendor/r2ree/.travis.yml
CHANGED
@@ -1,21 +1,47 @@
|
|
1
|
+
sudo: required
|
2
|
+
dist: trusty
|
1
3
|
language: cpp
|
2
4
|
os:
|
3
5
|
- linux
|
4
6
|
- osx
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
compiler: clang++
|
8
|
+
env: CXXFLAGS='-std=c++11'
|
9
|
+
addons:
|
10
|
+
apt:
|
11
|
+
sources:
|
12
|
+
- ubuntu-toolchain-r-test
|
13
|
+
- george-edison55-precise-backports
|
14
|
+
packages:
|
15
|
+
- cmake
|
16
|
+
- cmake-data
|
17
|
+
- libgtest-dev
|
18
|
+
matrix:
|
19
|
+
include:
|
20
|
+
- compiler: clang++-3.6
|
21
|
+
addons:
|
22
|
+
apt:
|
23
|
+
sources:
|
24
|
+
- ubuntu-toolchain-r-test
|
25
|
+
- llvm-toolchain-precise-3.6
|
26
|
+
packages:
|
27
|
+
- clang-3.6
|
28
|
+
env: CXX=clang++-3.6
|
29
|
+
- compiler: clang++-3.7
|
30
|
+
addons:
|
31
|
+
apt:
|
32
|
+
sources:
|
33
|
+
- ubuntu-toolchain-r-test
|
34
|
+
- llvm-toolchain-precise-3.7
|
35
|
+
packages:
|
36
|
+
- clang-3.7
|
37
|
+
env: CXX=clang++-3.7
|
12
38
|
install:
|
13
39
|
- wget https://github.com/google/googletest/archive/release-1.7.0.zip -O googletest-release-1.7.0.zip
|
14
|
-
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then unzip -q googletest-release-1.7.0.zip && cd googletest-release-1.7.0 && sudo cp -r include/gtest /usr/local/include && g++ src/gtest-all.cc -I. -Iinclude -c && g++ src/gtest_main.cc -I. -Iinclude -c && ar -rv libgtest.a gtest-all.o && ar -rv libgtest_main.a gtest_main.o && sudo mv *.a /usr/local/lib && g++ -m32 src/gtest-all.cc -I. -Iinclude -c && g++ -m32 src/gtest_main.cc -I. -Iinclude -c && ar -rv libgtest.a gtest-all.o && ar -rv libgtest_main.a gtest_main.o && sudo mkdir /usr/local/lib32 && sudo mv *.a /usr/local/lib32 && cd ..; fi
|
15
40
|
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then unzip -q googletest-release-1.7.0.zip && cd googletest-release-1.7.0 && sudo cp -r include/gtest /usr/local/include && clang++ src/gtest-all.cc -I. -Iinclude -c && g++ src/gtest_main.cc -I. -Iinclude -c && ar -rv libgtest.a gtest-all.o && ar -rv libgtest_main.a gtest_main.o && sudo mv *.a /usr/local/lib && cd ..; fi
|
16
|
-
matrix:
|
17
|
-
exclude:
|
18
|
-
- os: osx
|
19
|
-
compiler: gcc
|
20
41
|
script:
|
21
|
-
- mkdir build
|
42
|
+
- mkdir build
|
43
|
+
- cd build
|
44
|
+
- cmake ..
|
45
|
+
- cat Makefile
|
46
|
+
- make
|
47
|
+
- ./r2ree_test
|
data/vendor/r2ree/CMakeLists.txt
CHANGED
@@ -20,7 +20,7 @@ set(EXT_PROJECTS_DIR ${PROJECT_SOURCE_DIR}/ext)
|
|
20
20
|
|
21
21
|
add_subdirectory(${EXT_PROJECTS_DIR}/gtest)
|
22
22
|
|
23
|
-
set(CMAKE_CXX_FLAGS "-std=c++11
|
23
|
+
set(CMAKE_CXX_FLAGS "-std=c++11 ${CXX_FLAGS} -Iinclude -include ${PROJECT_SOURCE_DIR}/src/r2ree.cc")
|
24
24
|
|
25
25
|
#-------------------
|
26
26
|
# Test
|
data/vendor/r2ree/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# r2ree
|
2
2
|
|
3
|
+
[](https://travis-ci.org/namusyaka/r2ree)
|
4
|
+
|
3
5
|
Radix tree implementation for use in HTTP routing.
|
4
6
|
|
5
7
|
r2ree is written in C++ and licensed under the MIT License, it can be used as a library.
|
@@ -28,4 +28,4 @@ set(GTEST_INCLUDE_DIRS ${source_dir}/googletest/include PARENT_SCOPE)
|
|
28
28
|
|
29
29
|
# Specify MainTest's link libraries
|
30
30
|
ExternalProject_Get_Property(googletest binary_dir)
|
31
|
-
set(GTEST_LIBS_DIR ${binary_dir}/
|
31
|
+
set(GTEST_LIBS_DIR ${binary_dir}/lib PARENT_SCOPE)
|
data/vendor/r2ree/src/r2ree.cc
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* The MIT License (MIT)
|
3
3
|
*
|
4
|
-
* Copyright (c) 2016 namusyaka
|
4
|
+
* Copyright (c) 2016 namusyaka, shiyanhui
|
5
5
|
*
|
6
6
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
7
7
|
* of this software and associated documentation files (the "Software"), to deal
|
@@ -163,14 +163,16 @@ namespace r2ree {
|
|
163
163
|
}
|
164
164
|
|
165
165
|
parse_result radix_tree::get(const string &path) {
|
166
|
-
parameters params = parameters{ new parameter[root->max_parameters] };
|
166
|
+
parameters params = parameters{ new parameter[root->max_parameters], 0};
|
167
167
|
|
168
168
|
auto root = this->root;
|
169
169
|
int i = 0, n = path.size(), p;
|
170
170
|
|
171
171
|
while (i < n) {
|
172
|
-
if (root->indices.empty())
|
172
|
+
if (root->indices.empty()) {
|
173
|
+
delete[] params.params;
|
173
174
|
return parse_result();
|
175
|
+
}
|
174
176
|
|
175
177
|
if (root->indices[0] == colon) {
|
176
178
|
root = root->children[0];
|
@@ -183,8 +185,10 @@ namespace r2ree {
|
|
183
185
|
break;
|
184
186
|
} else {
|
185
187
|
root = root->get_child(path[i]);
|
186
|
-
if (!root || path.substr(i, root->path.size()) != root->path)
|
188
|
+
if (!root || path.substr(i, root->path.size()) != root->path) {
|
189
|
+
delete[] params.params;
|
187
190
|
return parse_result();
|
191
|
+
}
|
188
192
|
i += root->path.size();
|
189
193
|
}
|
190
194
|
}
|
@@ -73,4 +73,21 @@ namespace {
|
|
73
73
|
ASSERT_EQ("foo", params.params[1].second);
|
74
74
|
ASSERT_EQ(true, std::get<3>(actual));
|
75
75
|
}
|
76
|
+
|
77
|
+
TEST_F(r2ree_test, get_with_splat) {
|
78
|
+
r2ree::parse_result actual;
|
79
|
+
r2ree::parameters params;
|
80
|
+
|
81
|
+
tree.insert("/splat/*");
|
82
|
+
|
83
|
+
actual = tree.get("/splat/boofoowoo");
|
84
|
+
params = std::get<2>(actual);
|
85
|
+
|
86
|
+
ASSERT_EQ(true, std::get<0>(actual));
|
87
|
+
ASSERT_EQ(0, std::get<1>(actual));
|
88
|
+
ASSERT_EQ(1, params.size);
|
89
|
+
ASSERT_EQ("", params.params[0].first);
|
90
|
+
ASSERT_EQ("boofoowoo", params.params[0].second);
|
91
|
+
ASSERT_EQ(true, std::get<3>(actual));
|
92
|
+
}
|
76
93
|
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: r2ree
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- namusyaka
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake-compiler
|
@@ -71,7 +71,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
71
71
|
version: '0'
|
72
72
|
requirements: []
|
73
73
|
rubyforge_project:
|
74
|
-
rubygems_version: 2.
|
74
|
+
rubygems_version: 2.7.3
|
75
75
|
signing_key:
|
76
76
|
specification_version: 4
|
77
77
|
summary: r2ree radix tree implementation for ruby
|