vtt 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 98c77489849183d02836e9032c0e76193c14e85f
4
+ data.tar.gz: 96e83c3eb14ae01d3fb6222704cb97affba9a94c
5
+ SHA512:
6
+ metadata.gz: e4fab943fff3fcab6f342eeecd8e43ce9e664f15b9a17122b0b60ef496b9beddc7421b7da1c7a3b45745cc292095057dd22c2cbe294673a6921a8a107bdcde1c
7
+ data.tar.gz: 7a6e9a3a441e77d4f7110492b124669fa6551cca9bd697a95aed6ff421c620ff6aa77a57debb1f75e43003e0ebf391607447a0882c90a229eba94354e2250d8e
data/.editorconfig ADDED
@@ -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
data/.gitignore ADDED
@@ -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
data/Rakefile ADDED
@@ -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]
data/ext/ctt/ctt.c ADDED
@@ -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
+ }
data/lib/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module VTT
2
+ VERSION = "0.0.1"
3
+ end
data/lib/vtt.rb ADDED
@@ -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
data/test/main_test.rb ADDED
@@ -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
data/vtt.gemspec ADDED
@@ -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: ruby
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
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.15'
20
+ type: :development
21
+ prerelease: false
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
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
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
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :development
49
+ prerelease: false
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
+ name: rake-compiler
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.4
62
+ type: :development
63
+ prerelease: false
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
+ - ext/ctt/extconf.rb
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".editorconfig"
78
+ - ".gitignore"
79
+ - Gemfile
80
+ - Rakefile
81
+ - ext/ctt/ctt.c
82
+ - ext/ctt/extconf.rb
83
+ - ext/jtt/JttService.java
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.14
108
+ signing_key:
109
+ specification_version: 4
110
+ summary: Java/C Extenstions
111
+ test_files:
112
+ - test/main_test.rb