vtt 0.0.1-java

Sign up to get free protection for your applications and to get access to all the features.
@@ -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