ruby-perl 0.99.15j

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,82 @@
1
+ require 'spec_helper'
2
+
3
+ require 'perl/interpreter'
4
+ require 'perl/value/scalar'
5
+
6
+ describe Perl::Value::Scalar do
7
+ include PerlValueHelpers
8
+
9
+ before(:all) do
10
+ @interpreter = Perl::Interpreter.new
11
+ end
12
+ after(:all) do
13
+ @interpreter.stop
14
+ end
15
+
16
+ describe "class method" do
17
+ describe " #to_perl" do
18
+ it "should return the expected object when passed a String" do
19
+ input = "something"
20
+
21
+ sv = described_class.to_perl(input)
22
+ sv.should_not be_nil
23
+
24
+ ret = described_class.new(sv)
25
+ ret.should_not be_nil
26
+ ret.value.should eq(input)
27
+ end
28
+
29
+ it "should return the expected object when passed a StringIO" do
30
+ input = StringIO.new("something")
31
+
32
+ sv = described_class.to_perl(input)
33
+ sv.should_not be_nil
34
+
35
+ ret = described_class.new(sv)
36
+ ret.should_not be_nil
37
+ ret.value.should eq(input.string)
38
+ end
39
+
40
+ it "should raise when passed a Fixnum" do
41
+ lambda { described_class.to_perl(42) }.should raise_error
42
+ end
43
+ end
44
+ end
45
+
46
+ context "built without arguments" do
47
+ its(:perl) { should_not be_nil }
48
+ its(:scalar) { should be_nil }
49
+ its(:sv) { should be_nil }
50
+ end
51
+
52
+ context "built from a Fixnum" do
53
+ let(:input) { 42 }
54
+ it do
55
+ lambda { described_class.new(input) }.should raise_error
56
+ end
57
+ end
58
+
59
+ context "built from a String" do
60
+ let(:input) { "something" }
61
+ subject { described_class.new(input) }
62
+ its(:perl) { should_not be_nil }
63
+ its(:scalar) { should_not be_nil }
64
+ its(:scalar) { should eq(input) }
65
+ its(:sv) { should be_nil }
66
+
67
+ describe "when #to_perl is called" do
68
+ it "should return the expected object" do
69
+ sv = subject.to_perl
70
+ sv.should_not be_nil
71
+
72
+ ret = described_class.new(sv)
73
+ ret.should_not be_nil
74
+ ret.value.should eq(input)
75
+ end
76
+
77
+ it "should cache the returned object" do
78
+ subject.to_perl.should == subject.sv
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,39 @@
1
+ # require 'cover_me'
2
+ require 'pathname'
3
+ require 'tempfile'
4
+
5
+ module SpecHelper
6
+ def root
7
+ @root_path ||= Pathname.new(File.expand_path('../../', __FILE__))
8
+ end
9
+
10
+ def support
11
+ root.join('spec', 'support')
12
+ end
13
+
14
+ module_function :root, :support
15
+ end
16
+
17
+ Dir["#{SpecHelper.support}/**/*.rb"].each do |f|
18
+ require f
19
+ end
20
+
21
+ RSpec.configure do |config|
22
+ config.mock_with :rspec
23
+ end
24
+
25
+ module Kernel
26
+ def capture_stdout_descriptor
27
+ Tempfile.open("spec") do |file|
28
+ begin
29
+ out = $stdout.dup
30
+ $stdout.reopen(file)
31
+ yield
32
+ $stdout.flush
33
+ return File.read(file)
34
+ ensure
35
+ $stdout.reopen(out)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,13 @@
1
+ module PerlValueHelpers
2
+ def self.included(klass)
3
+ require 'perl/value'
4
+
5
+ Perl::Value::Hash.class_eval do
6
+ attr_reader :perl, :hash, :hv
7
+ end
8
+
9
+ Perl::Value::Scalar.class_eval do
10
+ attr_reader :perl, :scalar, :sv
11
+ end
12
+ end
13
+ end
metadata ADDED
@@ -0,0 +1,109 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ruby-perl
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: 7
5
+ version: 0.99.15j
6
+ platform: ruby
7
+ authors:
8
+ - Andrea Campi
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-04-01 00:00:00 +02:00
14
+ default_executable:
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: ffi
18
+ prerelease: false
19
+ requirement: &id001 !ruby/object:Gem::Requirement
20
+ none: false
21
+ requirements:
22
+ - - ~>
23
+ - !ruby/object:Gem::Version
24
+ version: 1.0.6
25
+ type: :runtime
26
+ version_requirements: *id001
27
+ description: Run Perl code from any Ruby application, or run Perl web apps on Ruby.
28
+ email:
29
+ - andrea.campi@zephirworks.com
30
+ executables:
31
+ - rperl
32
+ extensions: []
33
+
34
+ extra_rdoc_files: []
35
+
36
+ files:
37
+ - .autotest
38
+ - .rspec
39
+ - Gemfile
40
+ - Gemfile.lock
41
+ - README.md
42
+ - Rakefile
43
+ - autotest/discover.rb
44
+ - bin/rperl
45
+ - examples/hello.pl
46
+ - examples/hello.rb
47
+ - examples/hello_block.rb
48
+ - examples/hello_here.rb
49
+ - examples/passenger/config.ru
50
+ - examples/passenger/log/.keep
51
+ - examples/passenger/public/.keep
52
+ - examples/passenger/tmp/.keep
53
+ - examples/passenger/webapp.psgi
54
+ - examples/perl.ru
55
+ - examples/webapp.psgi
56
+ - lib/perl.rb
57
+ - lib/perl/common.rb
58
+ - lib/perl/ext/hash.rb
59
+ - lib/perl/ext/object.rb
60
+ - lib/perl/ext/string.rb
61
+ - lib/perl/ffi_lib.rb
62
+ - lib/perl/internal.rb
63
+ - lib/perl/interpreter.rb
64
+ - lib/perl/rack.rb
65
+ - lib/perl/shell.rb
66
+ - lib/perl/stack.rb
67
+ - lib/perl/stack/function.rb
68
+ - lib/perl/value.rb
69
+ - lib/perl/value/array.rb
70
+ - lib/perl/value/hash.rb
71
+ - lib/perl/value/scalar.rb
72
+ - spec/ext/hash_spec.rb
73
+ - spec/ext/object_spec.rb
74
+ - spec/ext/string_spec.rb
75
+ - spec/hash_value_spec.rb
76
+ - spec/interpreter_spec.rb
77
+ - spec/scalar_value_spec.rb
78
+ - spec/spec_helper.rb
79
+ - spec/support/perl_value_helpers.rb
80
+ has_rdoc: true
81
+ homepage: http://github.com/zephirworks/ruby-perl
82
+ licenses: []
83
+
84
+ post_install_message:
85
+ rdoc_options: []
86
+
87
+ require_paths:
88
+ - lib
89
+ required_ruby_version: !ruby/object:Gem::Requirement
90
+ none: false
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: "0"
95
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
+ none: false
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: 1.3.6
101
+ requirements: []
102
+
103
+ rubyforge_project: ruby-perl
104
+ rubygems_version: 1.6.2
105
+ signing_key:
106
+ specification_version: 3
107
+ summary: Run Perl code from any Ruby application.
108
+ test_files: []
109
+