vtt 0.0.1

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