norikra-udf-redis 0.0.1-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 +9 -0
- data/.travis.yml +9 -0
- data/Gemfile +4 -0
- data/README.md +37 -0
- data/Rakefile +37 -0
- data/jar/commons-pool2-2.4.2.jar +0 -0
- data/jar/jedis-2.7.3.jar +0 -0
- data/jar/norikra-udf-redis.jar +0 -0
- data/java/.touched +0 -0
- data/lib/esper_plugin/redis.rb +66 -0
- data/lib/norikra/udf/redis.rb +63 -0
- data/lib/norikra/udf/redis/version.rb +7 -0
- data/norikra-udf-redis.gemspec +36 -0
- metadata +129 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d7ad7fe93b7883cee02628ace8506f4eb95e9030
|
4
|
+
data.tar.gz: 365304f6ca07e2acd219d8ce7312a0a05e44fc09
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 48c778beb845eb2423df835b2b9ad87dcbd75cf33deca49bfafcd83c9f56f8cbe9009c29ea6cda39aa21a964ac14f191c0ff7ba03ff9ee0535fff5400dc3f233
|
7
|
+
data.tar.gz: 9a294c4be771c640009ff86e66b148e836a037dc5de634bf625dfa26437f1d386319fea2156516687defa6e23c57f69bf55dd320957a455eca5dc74368a8d0d3
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
# Norikra::Udf::Redis
|
2
|
+
|
3
|
+
[Norikra](http://norikra.github.io/) UDF to execute operations on Redis.
|
4
|
+
|
5
|
+
## Installation
|
6
|
+
|
7
|
+
Add this line to your application's Gemfile:
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
gem 'norikra-udf-redis'
|
11
|
+
```
|
12
|
+
|
13
|
+
And then execute:
|
14
|
+
|
15
|
+
$ bundle
|
16
|
+
|
17
|
+
Or install it yourself as:
|
18
|
+
|
19
|
+
$ gem install norikra-udf-redis
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
The following functions are provided.
|
24
|
+
|
25
|
+
| Function | Result |
|
26
|
+
|--------------------|----------------------------------------------------------------------------------------|
|
27
|
+
| incr(key) | Increments the number stored at key by one. Returns incremented value. |
|
28
|
+
| incrby(key, value) | Increments the number stored at key by the specified value. Returns incremented value. |
|
29
|
+
| rset(key, value) | Set key to hold the string value. Returns "OK" if properly set. |
|
30
|
+
| rget(key) | Get the value of key. Returns the value |
|
31
|
+
| rdel(key) | Removes the specified key. Returns the number of removed keys. (maybe 1) |
|
32
|
+
|
33
|
+
## Copyright
|
34
|
+
|
35
|
+
* Copyright (c) 2015- OGIBAYASHI Hironori
|
36
|
+
* License
|
37
|
+
* GPL v2
|
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
|
data/jar/jedis-2.7.3.jar
ADDED
Binary file
|
Binary file
|
data/java/.touched
ADDED
File without changes
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'java'
|
2
|
+
require 'jedis-2.7.3.jar'
|
3
|
+
require 'commons-pool2-2.4.2.jar'
|
4
|
+
|
5
|
+
java_package 'jp.gr.java_conf.ogibayashi.norikra.udf'
|
6
|
+
|
7
|
+
class Redis # FQDN: org.example.yourcompany.norikra.udf.MyUDF1
|
8
|
+
|
9
|
+
def self.connect
|
10
|
+
begin
|
11
|
+
Java::redis.clients.jedis.JedisPool.new(Java::redis.clients.jedis.JedisPoolConfig.new, "localhost")
|
12
|
+
rescue
|
13
|
+
warn $! if @logger
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.pool
|
18
|
+
@@pool || self.connect
|
19
|
+
end
|
20
|
+
|
21
|
+
@@pool = self.connect
|
22
|
+
|
23
|
+
java_signature 'public long incr(String)'
|
24
|
+
def self.incr(key)
|
25
|
+
jedis = pool.getResource()
|
26
|
+
ret = jedis.incr(key)
|
27
|
+
jedis.close()
|
28
|
+
ret
|
29
|
+
end
|
30
|
+
|
31
|
+
java_signature 'public long incrby(String, long)'
|
32
|
+
def self.incrby(key, value)
|
33
|
+
jedis = pool.getResource()
|
34
|
+
ret = jedis.incrBy(key, value)
|
35
|
+
jedis.close()
|
36
|
+
ret
|
37
|
+
end
|
38
|
+
|
39
|
+
# set, get, del are prefixed 'r' to avoid reserved words.
|
40
|
+
|
41
|
+
java_signature 'public String rset(String, String)'
|
42
|
+
def self.rset(key, value)
|
43
|
+
jedis = pool.getResource()
|
44
|
+
ret = jedis.set(key, value)
|
45
|
+
jedis.close()
|
46
|
+
ret
|
47
|
+
end
|
48
|
+
|
49
|
+
java_signature 'public String rget(String)'
|
50
|
+
def self.rget(key)
|
51
|
+
jedis = pool.getResource()
|
52
|
+
ret = jedis.get(key)
|
53
|
+
jedis.close()
|
54
|
+
ret
|
55
|
+
end
|
56
|
+
|
57
|
+
java_signature 'public long rdel(String)'
|
58
|
+
def self.rdel(key)
|
59
|
+
jedis = pool.getResource()
|
60
|
+
ret = jedis.del(key)
|
61
|
+
jedis.close()
|
62
|
+
ret
|
63
|
+
end
|
64
|
+
|
65
|
+
|
66
|
+
end
|
@@ -0,0 +1,63 @@
|
|
1
|
+
require 'java'
|
2
|
+
require 'norikra/udf'
|
3
|
+
|
4
|
+
module Norikra
|
5
|
+
module UDF
|
6
|
+
|
7
|
+
class Incr < Norikra::UDF::SingleRow
|
8
|
+
def self.init
|
9
|
+
require 'norikra-udf-redis.jar'
|
10
|
+
end
|
11
|
+
|
12
|
+
def definition
|
13
|
+
# function_name, Java Class Name (fqdn), static function name
|
14
|
+
["incr", "jp.gr.java_conf.ogibayashi.norikra.udf.Redis", "incr"]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
class Incrby < Norikra::UDF::SingleRow
|
19
|
+
def self.init
|
20
|
+
require 'norikra-udf-redis.jar'
|
21
|
+
end
|
22
|
+
|
23
|
+
def definition
|
24
|
+
# function_name, Java Class Name (fqdn), static function name
|
25
|
+
["incrby", "jp.gr.java_conf.ogibayashi.norikra.udf.Redis", "incrby"]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
class RSet < Norikra::UDF::SingleRow
|
30
|
+
def self.init
|
31
|
+
require 'norikra-udf-redis.jar'
|
32
|
+
end
|
33
|
+
|
34
|
+
def definition
|
35
|
+
# function_name, Java Class Name (fqdn), static function name
|
36
|
+
["rset", "jp.gr.java_conf.ogibayashi.norikra.udf.Redis", "rset"]
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
class RGet < Norikra::UDF::SingleRow
|
41
|
+
def self.init
|
42
|
+
require 'norikra-udf-redis.jar'
|
43
|
+
end
|
44
|
+
|
45
|
+
def definition
|
46
|
+
# function_name, Java Class Name (fqdn), static function name
|
47
|
+
["rget", "jp.gr.java_conf.ogibayashi.norikra.udf.Redis", "rget"]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
class RDel < Norikra::UDF::SingleRow
|
52
|
+
def self.init
|
53
|
+
require 'norikra-udf-redis.jar'
|
54
|
+
end
|
55
|
+
|
56
|
+
def definition
|
57
|
+
# function_name, Java Class Name (fqdn), static function name
|
58
|
+
["rdel", "jp.gr.java_conf.ogibayashi.norikra.udf.Redis", "rdel"]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'norikra/udf/redis/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "norikra-udf-redis"
|
8
|
+
spec.version = Norikra::Udf::Redis::VERSION
|
9
|
+
spec.authors = ["Hironori Ogibayashi"]
|
10
|
+
spec.email = ["ogibayashi@gmail.com.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Norikra UDF to execute operations on Redis. }
|
13
|
+
spec.description = %q{Norikra UDF to execute operations on Redis, like incr, incrby, set, get etc.}
|
14
|
+
spec.homepage = "https://github.com/ogibayashi/norikra-udf-redis"
|
15
|
+
spec.license = "GPLv2"
|
16
|
+
spec.platform = "java"
|
17
|
+
|
18
|
+
# Prevent pushing this gem to RubyGems.org by setting 'allowed_push_host', or
|
19
|
+
# delete this section to allow pushing this gem to any host.
|
20
|
+
if spec.respond_to?(:metadata)
|
21
|
+
spec.metadata['allowed_push_host'] = "https://rubygems.org"
|
22
|
+
else
|
23
|
+
raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
24
|
+
end
|
25
|
+
|
26
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
27
|
+
spec.bindir = "exe"
|
28
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
29
|
+
spec.require_paths = ["lib","jar"]
|
30
|
+
|
31
|
+
spec.add_development_dependency "bundler", "~> 1.7"
|
32
|
+
spec.add_development_dependency "rake"
|
33
|
+
spec.add_development_dependency "minitest"
|
34
|
+
spec.add_development_dependency "rspec"
|
35
|
+
spec.add_runtime_dependency "norikra", "~>1.0"
|
36
|
+
end
|
metadata
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: norikra-udf-redis
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: java
|
6
|
+
authors:
|
7
|
+
- Hironori Ogibayashi
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-09-02 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: '0'
|
34
|
+
requirement: !ruby/object:Gem::Requirement
|
35
|
+
requirements:
|
36
|
+
- - '>='
|
37
|
+
- !ruby/object:Gem::Version
|
38
|
+
version: '0'
|
39
|
+
prerelease: false
|
40
|
+
type: :development
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
version_requirements: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - '>='
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
prerelease: false
|
54
|
+
type: :development
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
63
|
+
requirements:
|
64
|
+
- - '>='
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '0'
|
67
|
+
prerelease: false
|
68
|
+
type: :development
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: norikra
|
71
|
+
version_requirements: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ~>
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.0'
|
76
|
+
requirement: !ruby/object:Gem::Requirement
|
77
|
+
requirements:
|
78
|
+
- - ~>
|
79
|
+
- !ruby/object:Gem::Version
|
80
|
+
version: '1.0'
|
81
|
+
prerelease: false
|
82
|
+
type: :runtime
|
83
|
+
description: Norikra UDF to execute operations on Redis, like incr, incrby, set, get etc.
|
84
|
+
email:
|
85
|
+
- ogibayashi@gmail.com.com
|
86
|
+
executables: []
|
87
|
+
extensions: []
|
88
|
+
extra_rdoc_files: []
|
89
|
+
files:
|
90
|
+
- .gitignore
|
91
|
+
- .travis.yml
|
92
|
+
- Gemfile
|
93
|
+
- README.md
|
94
|
+
- Rakefile
|
95
|
+
- jar/commons-pool2-2.4.2.jar
|
96
|
+
- jar/jedis-2.7.3.jar
|
97
|
+
- jar/norikra-udf-redis.jar
|
98
|
+
- java/.touched
|
99
|
+
- lib/esper_plugin/redis.rb
|
100
|
+
- lib/norikra/udf/redis.rb
|
101
|
+
- lib/norikra/udf/redis/version.rb
|
102
|
+
- norikra-udf-redis.gemspec
|
103
|
+
homepage: https://github.com/ogibayashi/norikra-udf-redis
|
104
|
+
licenses:
|
105
|
+
- GPLv2
|
106
|
+
metadata:
|
107
|
+
allowed_push_host: https://rubygems.org
|
108
|
+
post_install_message:
|
109
|
+
rdoc_options: []
|
110
|
+
require_paths:
|
111
|
+
- lib
|
112
|
+
- jar
|
113
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - '>='
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - '>='
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
123
|
+
requirements: []
|
124
|
+
rubyforge_project:
|
125
|
+
rubygems_version: 2.4.5
|
126
|
+
signing_key:
|
127
|
+
specification_version: 4
|
128
|
+
summary: Norikra UDF to execute operations on Redis.
|
129
|
+
test_files: []
|