vtt 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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 198677458828f840f592807bb1ade8a301927afe856580b941398ab8d4f28804
4
+ data.tar.gz: 7604bda9a0055ed72f4198773fe7d320121b32dd9f8c1cd7767df991181764af
5
+ SHA512:
6
+ metadata.gz: 8217f64112871008ad2e8648677f231c344b80a975b9a6eee1065f46165671c2cc84922c5d448aa4506409f2f034bf395ab7272a22c345498c8cc3d386aa23de
7
+ data.tar.gz: 37bbde8edb2b3a5270855d23270908a799b4dcfad5f6f4fd137e8cd662b6e59730bcf54fc0d2fb9a65fc21a3158af6b4c0e50c66a2a213841f93b9f20fef22a6
@@ -0,0 +1,8 @@
1
+ root=true
2
+
3
+ [*]
4
+ end_of_line=lf
5
+ insert_final_newline=true
6
+ indent_style=space
7
+ indent_size=2
8
+ trim_trailing_whitespace=true
@@ -0,0 +1,15 @@
1
+ *.gem
2
+ Gemfile.lock
3
+ /.bundle/
4
+ /.yardoc
5
+ /Gemfile.lock
6
+ /_yardoc/
7
+ /coverage/
8
+ /doc/
9
+ /pkg/
10
+ /spec/reports/
11
+ /tmp/
12
+ .DS_Store
13
+ Makefile
14
+ *.bundle
15
+ *.o
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
@@ -0,0 +1,36 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new(:test) do |t|
5
+ t.libs << "test"
6
+ t.libs << "lib"
7
+ t.test_files = FileList["test/**/*_test.rb"]
8
+ end
9
+
10
+ tasks = []
11
+
12
+ if RUBY_PLATFORM =~ /java/
13
+ if ENV['TRAVIS'].to_s.empty?
14
+ puts "Will build JAVA extension"
15
+
16
+ require 'rake/javaextensiontask'
17
+ Rake::JavaExtensionTask.new "jtt" do |ext|
18
+ ext.lib_dir = "lib"
19
+ end
20
+
21
+ tasks << :compile
22
+ else
23
+ puts "Not building jar or travis"
24
+ end
25
+ else
26
+ puts "Will build C extension"
27
+
28
+ require 'rake/extensiontask'
29
+ Rake::ExtensionTask.new "ctt" do |ext|
30
+ ext.lib_dir = "lib"
31
+ end
32
+
33
+ tasks << :compile
34
+ end
35
+
36
+ task :default => tasks + [:test]
@@ -0,0 +1,11 @@
1
+ #include <ruby.h>
2
+
3
+ static VALUE vtt_length(VALUE self, VALUE data) {
4
+ int length = NUM2INT(rb_funcall(data, rb_intern("length"), 0, 0));
5
+ return INT2FIX(length);
6
+ }
7
+
8
+ void Init_ctt(void) {
9
+ VALUE vtt = rb_define_module("VTT");
10
+ rb_define_singleton_method(vtt, "length", vtt_length, 1);
11
+ }
@@ -0,0 +1,22 @@
1
+ can_compile_extensions = false
2
+
3
+ begin
4
+ require 'mkmf'
5
+ can_compile_extensions = true
6
+ rescue Exception
7
+ # This will appear only in verbose mode.
8
+ $stderr.puts "Could not require 'mkmf'. Not fatal, the extensions are optional."
9
+ end
10
+
11
+ if can_compile_extensions && have_header('ruby.h')
12
+ extension_name = 'ctt'
13
+ dir_config(extension_name) # The destination
14
+ create_makefile(extension_name) # Create Makefile
15
+ else
16
+ # Create a dummy Makefile, to satisfy Gem::Installer#install
17
+ mfile = open("Makefile", "wb")
18
+ mfile.puts '.PHONY: install'
19
+ mfile.puts 'install:'
20
+ mfile.puts "\t" + '@echo "Extensions not installed, falling back to pure Ruby version."'
21
+ mfile.close
22
+ end
@@ -0,0 +1,29 @@
1
+ package com.vmarakana;
2
+
3
+ import java.io.IOException;
4
+
5
+ import org.jruby.Ruby;
6
+ import org.jruby.RubyModule;
7
+ import org.jruby.RubyString;
8
+ import org.jruby.anno.JRubyMethod;
9
+ import org.jruby.anno.JRubyModule;
10
+ import org.jruby.runtime.ThreadContext;
11
+ import org.jruby.runtime.builtin.IRubyObject;
12
+ import org.jruby.runtime.load.BasicLibraryService;
13
+
14
+ @JRubyModule(name = "VTT")
15
+ public class JttService implements BasicLibraryService {
16
+ private Ruby runtime;
17
+
18
+ @Override
19
+ public boolean basicLoad(final Ruby ruby) throws IOException {
20
+ RubyModule vtt = ruby.defineModule("VTT");
21
+ vtt.defineAnnotatedMethods(JttService.class);
22
+ return true;
23
+ }
24
+
25
+ @JRubyMethod(name="length", module = true)
26
+ public static IRubyObject rbLength(ThreadContext context, IRubyObject self, final IRubyObject data) {
27
+ return ((RubyString) data).length();
28
+ }
29
+ }
Binary file
@@ -0,0 +1,3 @@
1
+ module VTT
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,8 @@
1
+ module VTT
2
+ if RUBY_PLATFORM =~ /java/
3
+ require 'jtt'
4
+ com.vmarakana.JttService.new.basicLoad(JRuby.runtime)
5
+ else
6
+ require 'ctt'
7
+ end
8
+ end
@@ -0,0 +1,14 @@
1
+ $LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
2
+ require "vtt"
3
+
4
+ require "minitest/autorun"
5
+
6
+ class MainTest < Minitest::Test
7
+ def test_first
8
+ assert VTT.length("abcd") == 4
9
+ end
10
+
11
+ def test_second
12
+ assert VTT.length("") == 0
13
+ end
14
+ end
@@ -0,0 +1,31 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path("../lib", __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "vtt"
8
+ spec.version = VTT::VERSION
9
+ spec.authors = ["Vivek Marakana"]
10
+ spec.email = ["vivek.marakana@gmail.com"]
11
+
12
+ spec.summary = "Java/C Extenstions"
13
+ spec.description = "Ruby gem to test c & java extenstions"
14
+ spec.homepage = "https://github.com/vivekmarakana/vtt.git"
15
+
16
+ spec.files = `git ls-files`.split("\n") - [ "lib/jtt.jar"]
17
+ spec.test_files = `git ls-files -- test/*`.split("\n")
18
+ spec.require_paths = ["lib"]
19
+
20
+ if RUBY_PLATFORM =~ /java/
21
+ spec.platform = "java"
22
+ spec.files << "lib/jtt.jar"
23
+ else
24
+ spec.extensions = ["ext/ctt/extconf.rb"]
25
+ end
26
+
27
+ spec.add_development_dependency "bundler", "~> 1.15"
28
+ spec.add_development_dependency "rake", "~> 10.0"
29
+ spec.add_development_dependency "minitest", "~> 5.0"
30
+ spec.add_development_dependency "rake-compiler", "~> 1.0.4"
31
+ end
metadata ADDED
@@ -0,0 +1,112 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: vtt
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: java
6
+ authors:
7
+ - Vivek Marakana
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-12-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '1.15'
19
+ name: bundler
20
+ prerelease: false
21
+ type: :development
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.15'
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '10.0'
33
+ name: rake
34
+ prerelease: false
35
+ type: :development
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '5.0'
47
+ name: minitest
48
+ prerelease: false
49
+ type: :development
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: 1.0.4
61
+ name: rake-compiler
62
+ prerelease: false
63
+ type: :development
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.0.4
69
+ description: Ruby gem to test c & java extenstions
70
+ email:
71
+ - vivek.marakana@gmail.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - ".editorconfig"
77
+ - ".gitignore"
78
+ - Gemfile
79
+ - Rakefile
80
+ - ext/ctt/ctt.c
81
+ - ext/ctt/extconf.rb
82
+ - ext/jtt/JttService.java
83
+ - lib/jtt.jar
84
+ - lib/version.rb
85
+ - lib/vtt.rb
86
+ - test/main_test.rb
87
+ - vtt.gemspec
88
+ homepage: https://github.com/vivekmarakana/vtt.git
89
+ licenses: []
90
+ metadata: {}
91
+ post_install_message:
92
+ rdoc_options: []
93
+ require_paths:
94
+ - lib
95
+ required_ruby_version: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '0'
100
+ required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ requirements: []
106
+ rubyforge_project:
107
+ rubygems_version: 2.6.13
108
+ signing_key:
109
+ specification_version: 4
110
+ summary: Java/C Extenstions
111
+ test_files:
112
+ - test/main_test.rb