r2ree 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Build Status](https://travis-ci.org/namusyaka/r2ree.svg?branch=master)](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
|