norikra-udf-uri_parser 0.1.0-java
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 +7 -0
- data/.gitignore +15 -0
- data/.ruby-version +1 -0
- data/.travis.yml +7 -0
- data/Gemfile +3 -0
- data/README.md +189 -0
- data/Rakefile +37 -0
- data/jar/norikra-udf-uri_parser.jar +0 -0
- data/lib/esper_plugin/uri_parser.rb +55 -0
- data/lib/norikra/udf/uri_parser.rb +26 -0
- data/norikra-udf-uri_parser.gemspec +26 -0
- data/spec/uri_parser_spec.rb +64 -0
- metadata +114 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 84040cec8187bf2c449640917eaa8df8e51f9003
|
4
|
+
data.tar.gz: 3a6331305b82d9640448ba8c6cf7c9a0692c6543
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8c0e5a916b24cf31812e830c976a80cd971769c7b7011a1df1f546d7ad8cbbce05fa91a276417d228b3ab3c311dd46dd001a563a99f155abd385dfa8184e230e
|
7
|
+
data.tar.gz: 93c178ae6dab24d1481c7ca8e295e70e1543eb951fb5d7230c2bccf1369773475484a7a423d03ef0c26c8077e5a59d672891412b23ffda2e8c477ab1dae9ff11
|
data/.gitignore
ADDED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
jruby-1.7.16
|
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,189 @@
|
|
1
|
+
# Norikra::Udf::UriParser
|
2
|
+
|
3
|
+
This is [Norikra](http://norikra.github.io/) UDF.
|
4
|
+
|
5
|
+
`splituri` UDF return value corresponds to specified element in uri string like `http://example.com/hoge`.
|
6
|
+
|
7
|
+
`splitquery` UDF return value corresponds to target key in query string like `hoge=foo`.
|
8
|
+
|
9
|
+
[](https://travis-ci.org/mia-0032/norikra-udf-uri_parser)
|
10
|
+
|
11
|
+
## Installation
|
12
|
+
|
13
|
+
Add this line to your application's Gemfile:
|
14
|
+
|
15
|
+
```ruby
|
16
|
+
gem 'norikra-udf-uri_parser'
|
17
|
+
```
|
18
|
+
|
19
|
+
And then execute:
|
20
|
+
|
21
|
+
$ bundle
|
22
|
+
|
23
|
+
Or install it yourself as:
|
24
|
+
|
25
|
+
$ gem install norikra-udf-uri_parser
|
26
|
+
|
27
|
+
## Usage
|
28
|
+
|
29
|
+
```sql
|
30
|
+
SELECT
|
31
|
+
-- path is like "/hoge?foo=bar"
|
32
|
+
splitquery(splituri(path, 'query'), 'foo') AS val
|
33
|
+
FROM access_log
|
34
|
+
```
|
35
|
+
|
36
|
+
This query returns below.
|
37
|
+
|
38
|
+
```javascript
|
39
|
+
{
|
40
|
+
"val":"bar"
|
41
|
+
}
|
42
|
+
```
|
43
|
+
|
44
|
+
### splituri(expression, string)
|
45
|
+
|
46
|
+
Second argument accepts `scheme`,`userinfo`,`host`,`port`,`path`,`opaque`,`query`,`fragment`.
|
47
|
+
|
48
|
+
#### Example queries:
|
49
|
+
|
50
|
+
##### 1. Using path field.
|
51
|
+
|
52
|
+
```sql
|
53
|
+
SELECT
|
54
|
+
-- path is like "/hoge?foo=bar#top"
|
55
|
+
splituri(path, 'scheme') AS scheme,
|
56
|
+
splituri(path, 'userinfo') AS userinfo,
|
57
|
+
splituri(path, 'host') AS host,
|
58
|
+
splituri(path, 'port') AS port,
|
59
|
+
splituri(path, 'path') AS path,
|
60
|
+
splituri(path, 'opaque') AS opaque,
|
61
|
+
splituri(path, 'query') AS query,
|
62
|
+
splituri(path, 'fragment') AS fragment
|
63
|
+
FROM access_log
|
64
|
+
```
|
65
|
+
|
66
|
+
This query returns below.
|
67
|
+
|
68
|
+
```javascript
|
69
|
+
{
|
70
|
+
"port":"",
|
71
|
+
"host":"",
|
72
|
+
"scheme":"",
|
73
|
+
"query":"foo=bar",
|
74
|
+
"opaque":"",
|
75
|
+
"path":"/hoge",
|
76
|
+
"userinfo":"",
|
77
|
+
"fragment":"top"
|
78
|
+
}
|
79
|
+
```
|
80
|
+
|
81
|
+
##### 2. Using URL filed.
|
82
|
+
|
83
|
+
```sql
|
84
|
+
SELECT
|
85
|
+
-- referer is like "http://example.com/hoge?foo=bar#top"
|
86
|
+
splituri(referer, 'scheme') AS scheme,
|
87
|
+
splituri(referer, 'userinfo') AS userinfo,
|
88
|
+
splituri(referer, 'host') AS host,
|
89
|
+
splituri(referer, 'port') AS port,
|
90
|
+
splituri(referer, 'path') AS path,
|
91
|
+
splituri(referer, 'opaque') AS opaque,
|
92
|
+
splituri(referer, 'query') AS query,
|
93
|
+
splituri(referer, 'fragment') AS fragment
|
94
|
+
FROM access_log
|
95
|
+
```
|
96
|
+
|
97
|
+
This query returns below.
|
98
|
+
|
99
|
+
```javascript
|
100
|
+
{
|
101
|
+
"port":"",
|
102
|
+
"host":"example.com",
|
103
|
+
"scheme":"http",
|
104
|
+
"query":"foo=bar",
|
105
|
+
"opaque":"",
|
106
|
+
"path":"/hoge",
|
107
|
+
"userinfo":"",
|
108
|
+
"fragment":"top"
|
109
|
+
}
|
110
|
+
```
|
111
|
+
|
112
|
+
### splitquery(expression, string)
|
113
|
+
|
114
|
+
Second argument is the key that you want to get the value.
|
115
|
+
|
116
|
+
#### Example queries:
|
117
|
+
|
118
|
+
##### 1. key=value parameter.
|
119
|
+
|
120
|
+
```sql
|
121
|
+
SELECT
|
122
|
+
-- query is like "foo1=bar1&foo2=bar2&foo3=bar3"
|
123
|
+
splitquery(query, 'foo1') AS foo1,
|
124
|
+
splitquery(query, 'foo2') AS foo2,
|
125
|
+
splitquery(query, 'foo3') AS foo3
|
126
|
+
FROM access_log
|
127
|
+
```
|
128
|
+
|
129
|
+
This query returns below.
|
130
|
+
|
131
|
+
```javascript
|
132
|
+
{
|
133
|
+
"foo3":"bar3",
|
134
|
+
"foo2":"bar2",
|
135
|
+
"foo1":"bar1"
|
136
|
+
}
|
137
|
+
```
|
138
|
+
|
139
|
+
##### 2. key\[\]=values parameter.
|
140
|
+
|
141
|
+
```sql
|
142
|
+
SELECT
|
143
|
+
-- query is like "foo[]=bar1&foo[]=bar2&foo[]=bar3"
|
144
|
+
splitquery(query, 'foo[]') AS foo
|
145
|
+
FROM access_log
|
146
|
+
```
|
147
|
+
|
148
|
+
This query returns below.
|
149
|
+
|
150
|
+
```javascript
|
151
|
+
{
|
152
|
+
"foo":[
|
153
|
+
"bar1",
|
154
|
+
"bar2",
|
155
|
+
"bar3"
|
156
|
+
]
|
157
|
+
}
|
158
|
+
```
|
159
|
+
|
160
|
+
##### 3. Only key parameter.
|
161
|
+
|
162
|
+
```sql
|
163
|
+
SELECT
|
164
|
+
-- query is like "test&foo1=bar1&foo2=bar2"
|
165
|
+
splitquery(query, 'test') AS test,
|
166
|
+
splitquery(query, 'other') AS other
|
167
|
+
FROM access_log
|
168
|
+
```
|
169
|
+
|
170
|
+
This query returns below.
|
171
|
+
|
172
|
+
```javascript
|
173
|
+
{
|
174
|
+
"other":null,
|
175
|
+
"test":""
|
176
|
+
}
|
177
|
+
```
|
178
|
+
|
179
|
+
## TODO
|
180
|
+
|
181
|
+
- Add method returns all query value as hash. (ex. `splitquery("foo=bar&buzz=123")` return `{"foo":"bar","buzz":123}`)
|
182
|
+
|
183
|
+
## Contributing
|
184
|
+
|
185
|
+
1. Fork it ( https://github.com/mia-0032/norikra-udf-uri_parser/fork )
|
186
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
187
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
188
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
189
|
+
5. Create a new Pull Request
|
data/Rakefile
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
|
3
|
+
require 'rspec/core/rake_task'
|
4
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
5
|
+
t.rspec_opts = ["-Ijar", "-Ilib", "-c", "-f progress"] # '--format specdoc'
|
6
|
+
t.pattern = 'spec/**/*_spec.rb'
|
7
|
+
end
|
8
|
+
|
9
|
+
task :compile do
|
10
|
+
require 'rubygems'
|
11
|
+
|
12
|
+
jarname = FileList['norikra-udf-*.gemspec'].first.gsub(/\.gemspec$/, '.jar')
|
13
|
+
|
14
|
+
jarfiles = FileList['jar/**/*.jar'].select{|f| not f.end_with?('/' + jarname)}
|
15
|
+
jarfiles << Gem.find_latest_files('esper-*.jar').first
|
16
|
+
|
17
|
+
java_classpath = "-classpath src:java:#{jarfiles.join(':')}"
|
18
|
+
FileList['src/**/*.java'].each do |fn|
|
19
|
+
sh "env LC_ALL=C javac -J-Duser.language=en #{java_classpath} -d java #{fn}"
|
20
|
+
end
|
21
|
+
|
22
|
+
jruby_classpath = "--classpath java:#{jarfiles.join(':')}"
|
23
|
+
FileList['lib/esper_plugin/**/*.rb'].each do |fn|
|
24
|
+
sh "env LC_ALL=C jrubyc --javac --target java #{jruby_classpath} #{fn}"
|
25
|
+
end
|
26
|
+
|
27
|
+
sh "env LC_ALL=C jar -J-Duser.language=en -cf jar/#{jarname} -C java ."
|
28
|
+
end
|
29
|
+
|
30
|
+
task :clean do
|
31
|
+
sh "rm -rf java/*"
|
32
|
+
end
|
33
|
+
|
34
|
+
task :test => [:compile, :spec]
|
35
|
+
task :default => :test
|
36
|
+
|
37
|
+
task :all => [:clean, :compile, :spec, :build]
|
Binary file
|
@@ -0,0 +1,55 @@
|
|
1
|
+
require 'cgi'
|
2
|
+
require 'java'
|
3
|
+
require 'uri'
|
4
|
+
|
5
|
+
java_package 'jp.ys.mia.norikra.udf'
|
6
|
+
|
7
|
+
class UriParser
|
8
|
+
@@elements = {
|
9
|
+
:scheme => 0,
|
10
|
+
:userinfo => 1,
|
11
|
+
:host => 2,
|
12
|
+
:port => 3,
|
13
|
+
:path => 5,
|
14
|
+
:opaque => 6,
|
15
|
+
:query => 7,
|
16
|
+
:fragment => 8
|
17
|
+
}
|
18
|
+
|
19
|
+
def self.split_uri(uri, element_key)
|
20
|
+
element_key = element_key.to_sym
|
21
|
+
unless @@elements.has_key?(element_key)
|
22
|
+
return nil
|
23
|
+
end
|
24
|
+
|
25
|
+
begin
|
26
|
+
parsed_uri = URI.split(uri)
|
27
|
+
rescue URI::InvalidURIError => e
|
28
|
+
return nil
|
29
|
+
end
|
30
|
+
|
31
|
+
result = parsed_uri[@@elements[element_key]]
|
32
|
+
if result.nil?
|
33
|
+
''
|
34
|
+
else
|
35
|
+
result
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.split_query(query_text, key)
|
40
|
+
query = CGI::parse(query_text)
|
41
|
+
|
42
|
+
unless query.has_key?(key)
|
43
|
+
return nil
|
44
|
+
end
|
45
|
+
|
46
|
+
case query[key].length
|
47
|
+
when 0 then
|
48
|
+
''
|
49
|
+
when 1 then
|
50
|
+
query[key][0]
|
51
|
+
else
|
52
|
+
query[key]
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'java'
|
2
|
+
require 'norikra/udf'
|
3
|
+
|
4
|
+
module Norikra
|
5
|
+
module UDF
|
6
|
+
class SplitUri < Norikra::UDF::SingleRow
|
7
|
+
def self.init
|
8
|
+
require 'norikra-udf-uri_parser.jar'
|
9
|
+
end
|
10
|
+
|
11
|
+
def definition
|
12
|
+
["splituri", "jp.ys.mia.norikra.udf.UriParser", "split_uri"]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
class SplitQuery < Norikra::UDF::SingleRow
|
17
|
+
def self.init
|
18
|
+
require 'norikra-udf-uri_parser.jar'
|
19
|
+
end
|
20
|
+
|
21
|
+
def definition
|
22
|
+
["splitquery", "jp.ys.mia.norikra.udf.UriParser", "split_query"]
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = "norikra-udf-uri_parser"
|
7
|
+
spec.version = "0.1.0"
|
8
|
+
spec.authors = ["Yoshihiro MIYAI"]
|
9
|
+
spec.email = ["msparrow17@gmail.com"]
|
10
|
+
spec.summary = %q{Norikra UDF splituri() and splitquery().}
|
11
|
+
spec.description = %q{Parse URI and query and return value specified key.}
|
12
|
+
spec.homepage = "https://github.com/mia-0032/norikra-udf-uri_parser"
|
13
|
+
spec.license = "GPL v2"
|
14
|
+
|
15
|
+
spec.platform = "java"
|
16
|
+
spec.files = `git ls-files -z`.split("\x0")
|
17
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
|
+
spec.require_paths = ["lib","jar"]
|
20
|
+
|
21
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
22
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
23
|
+
spec.add_development_dependency "rspec", "~> 3.1.0"
|
24
|
+
spec.add_runtime_dependency "norikra", "~> 1.0.8"
|
25
|
+
end
|
26
|
+
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'norikra/udf_spec_helper'
|
2
|
+
|
3
|
+
include Norikra::UDFSpecHelper
|
4
|
+
|
5
|
+
require 'norikra/udf/uri_parser'
|
6
|
+
|
7
|
+
describe Norikra::UDF::SplitUri do
|
8
|
+
udf_function Norikra::UDF::SplitUri
|
9
|
+
|
10
|
+
it 'returns value corresponds to target element if url given' do
|
11
|
+
expect(fcall(:splituri, "http://example.com/hogehoge?foo=bar#frgmt", "scheme")).to eql("http")
|
12
|
+
expect(fcall(:splituri, "http://example.com/hogehoge?foo=bar#frgmt", "userinfo")).to eql("")
|
13
|
+
expect(fcall(:splituri, "http://example.com/hogehoge?foo=bar#frgmt", "host")).to eql("example.com")
|
14
|
+
expect(fcall(:splituri, "http://example.com/hogehoge?foo=bar#frgmt", "port")).to eql("")
|
15
|
+
expect(fcall(:splituri, "http://example.com/hogehoge?foo=bar#frgmt", "path")).to eql("/hogehoge")
|
16
|
+
expect(fcall(:splituri, "http://example.com/hogehoge?foo=bar#frgmt", "opaque")).to eql("")
|
17
|
+
expect(fcall(:splituri, "http://example.com/hogehoge?foo=bar#frgmt", "query")).to eql("foo=bar")
|
18
|
+
expect(fcall(:splituri, "http://example.com/hogehoge?foo=bar#frgmt", "fragment")).to eql("frgmt")
|
19
|
+
|
20
|
+
expect(fcall(:splituri, "http://hoge-san:password@example.com/hogehoge?foo=bar", "userinfo")).to eql("hoge-san:password")
|
21
|
+
expect(fcall(:splituri, "http://example.com:80/hogehoge?foo=bar", "port")).to eql("80")
|
22
|
+
expect(fcall(:splituri, "mailto:nospam@localhost", "opaque")).to eql("nospam@localhost")
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'returns value corresponds to target element if path given' do
|
26
|
+
expect(fcall(:splituri, "/hogehoge?foo=bar", "scheme")).to eql("")
|
27
|
+
expect(fcall(:splituri, "/hogehoge?foo=bar", "userinfo")).to eql("")
|
28
|
+
expect(fcall(:splituri, "/hogehoge?foo=bar", "host")).to eql("")
|
29
|
+
expect(fcall(:splituri, "/hogehoge?foo=bar", "port")).to eql("")
|
30
|
+
expect(fcall(:splituri, "/hogehoge?foo=bar", "path")).to eql("/hogehoge")
|
31
|
+
expect(fcall(:splituri, "/hogehoge?foo=bar", "opaque")).to eql("")
|
32
|
+
expect(fcall(:splituri, "/hogehoge?foo=bar", "query")).to eql("foo=bar")
|
33
|
+
expect(fcall(:splituri, "/hogehoge?foo=bar", "fragment")).to eql("")
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'returns nil if invalid element specified.' do
|
37
|
+
expect(fcall(:splituri, "http://example.com/hogehoge?foo=bar", "test")).to be_nil
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'returns nil if invalid uri specified.' do
|
41
|
+
expect(fcall(:splituri, "http://example com/hogehoge?foo=bar", "host")).to be_nil
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe Norikra::UDF::SplitQuery do
|
46
|
+
udf_function Norikra::UDF::SplitQuery
|
47
|
+
|
48
|
+
it 'returns value corresponds to target key' do
|
49
|
+
expect(fcall(:splitquery, "hoge=foo", "hoge")).to eql("foo")
|
50
|
+
expect(fcall(:splitquery, "hoge1=foo&hoge2=bar", "hoge1")).to eql("foo")
|
51
|
+
expect(fcall(:splitquery, "hoge[]=foo&hoge[]=bar", "hoge[]")).to match_array(["foo", "bar"])
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'returns nil if query does not contain target key' do
|
55
|
+
expect(fcall(:splitquery, "", "hoge")).to be_nil
|
56
|
+
expect(fcall(:splitquery, "hoge=foo", "hoge1")).to be_nil
|
57
|
+
expect(fcall(:splitquery, "hoge1=foo&hoge2=bar", "hoge3")).to be_nil
|
58
|
+
end
|
59
|
+
|
60
|
+
it 'returns empty string if target key does not have value' do
|
61
|
+
expect(fcall(:splitquery, "hoge", "hoge")).to eql('')
|
62
|
+
expect(fcall(:splitquery, "hoge1=foo&hoge2=bar&hoge3", "hoge3")).to eql('')
|
63
|
+
end
|
64
|
+
end
|
metadata
ADDED
@@ -0,0 +1,114 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: norikra-udf-uri_parser
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: java
|
6
|
+
authors:
|
7
|
+
- Yoshihiro MIYAI
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-11-14 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.7'
|
20
|
+
requirement: !ruby/object:Gem::Requirement
|
21
|
+
requirements:
|
22
|
+
- - ~>
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: '1.7'
|
25
|
+
prerelease: false
|
26
|
+
type: :development
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - ~>
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '10.0'
|
39
|
+
prerelease: false
|
40
|
+
type: :development
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 3.1.0
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ~>
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 3.1.0
|
53
|
+
prerelease: false
|
54
|
+
type: :development
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: norikra
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.0.8
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - ~>
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: 1.0.8
|
67
|
+
prerelease: false
|
68
|
+
type: :runtime
|
69
|
+
description: Parse URI and query and return value specified key.
|
70
|
+
email:
|
71
|
+
- msparrow17@gmail.com
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- .gitignore
|
77
|
+
- .ruby-version
|
78
|
+
- .travis.yml
|
79
|
+
- Gemfile
|
80
|
+
- README.md
|
81
|
+
- Rakefile
|
82
|
+
- jar/norikra-udf-uri_parser.jar
|
83
|
+
- java/.gitignore
|
84
|
+
- lib/esper_plugin/uri_parser.rb
|
85
|
+
- lib/norikra/udf/uri_parser.rb
|
86
|
+
- norikra-udf-uri_parser.gemspec
|
87
|
+
- spec/uri_parser_spec.rb
|
88
|
+
homepage: https://github.com/mia-0032/norikra-udf-uri_parser
|
89
|
+
licenses:
|
90
|
+
- GPL v2
|
91
|
+
metadata: {}
|
92
|
+
post_install_message:
|
93
|
+
rdoc_options: []
|
94
|
+
require_paths:
|
95
|
+
- lib
|
96
|
+
- jar
|
97
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
103
|
+
requirements:
|
104
|
+
- - '>='
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '0'
|
107
|
+
requirements: []
|
108
|
+
rubyforge_project:
|
109
|
+
rubygems_version: 2.1.9
|
110
|
+
signing_key:
|
111
|
+
specification_version: 4
|
112
|
+
summary: Norikra UDF splituri() and splitquery().
|
113
|
+
test_files:
|
114
|
+
- spec/uri_parser_spec.rb
|