libvirt-ruby-mapping 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,19 +2,19 @@ require "libvirt-ruby-mapping/version"
2
2
 
3
3
  module Libvirt
4
4
  module Ruby
5
- def initialize
6
- virInitialize(:int) unless respond_to?(:virInitialize)
5
+ autoload :Connect, 'libvirt-ruby-mapping/connect'
6
+
7
+ def self.initialize
8
+ virInitialize(:int) unless respond_to_missing?(:virInitialize, false)
7
9
  virInitialize
8
10
  end
9
11
 
10
12
  def self.version
11
- virGetVersion(:pointer, :string, :pointer, :int) unless respond_to?(:virGetVersion)
13
+ virGetVersion(:pointer, :string, :pointer, :int) unless respond_to_missing?(:virGetVersion, false)
12
14
  p = FFI::MemoryPointer.new(:ulong)
13
15
  virGetVersion(p, nil, nil)
14
16
  version = p.get_ulong(0)
15
17
  "#{version / 1_000_000}.#{(version % 1_000_000) / 1_000}.#{(version % 1_000_000) %1000}"
16
18
  end
17
19
  end
18
- end
19
-
20
- Libvirt::ruby.initialize
20
+ end
@@ -0,0 +1,17 @@
1
+ module Libvirt
2
+ module Ruby
3
+ module Connect
4
+ extend Libvirt::Ruby
5
+
6
+ def self.open(uri)
7
+ virConnectOpen(:string, :pointer) unless respond_to_missing?(:virConnectOpen, false)
8
+ virConnectOpen(uri)
9
+ end
10
+
11
+ def self.open_read_only(uri)
12
+ virConnectOpenReadOnly(:string, :pointer) unless respond_to_missing?(:virConnectOpenReadOnly, false)
13
+ virConnectOpenReadOnly(uri)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,7 +1,7 @@
1
1
  module Libvirt
2
2
  module Ruby
3
3
  module Mapping
4
- VERSION = "0.0.1"
4
+ VERSION = "0.1.0"
5
5
  end
6
6
  end
7
7
  end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe Libvirt::Ruby::Connect do
4
+ let(:connect) { Libvirt::Ruby::Connect }
5
+ let(:p) { Object }
6
+
7
+ context "#open_read_only" do
8
+ before :each do
9
+ connect.stub(:virConnectOpenReadOnly).with(:string, :pointer).and_return(true)
10
+ connect.stub(:virConnectOpenReadOnly).with("uri").and_return(p)
11
+ end
12
+
13
+ after :each do
14
+ connect.open_read_only("uri")
15
+ end
16
+
17
+ context "when virConnectOpenReadOnly is not attached yet" do
18
+ it "should attach it" do
19
+ connect.should_receive(:virConnectOpenReadOnly).with(:string, :pointer)
20
+ end
21
+ end
22
+
23
+ context "when virConnectOpenReadOnly is already attached" do
24
+ before :each do
25
+ connect.stub(:respond_to_missing?).with(:virConnectOpenReadOnly, false).and_return(true)
26
+ end
27
+
28
+ it "should not try to attach it again" do
29
+ connect.should_not_receive(:virConnectOpenReadOnly).with(:string, :pointer)
30
+ end
31
+ end
32
+
33
+ it "should call virConnectOpenReadOnly" do
34
+ connect.should_receive(:virConnectOpenReadOnly)
35
+ end
36
+
37
+ it "should return the pointer to the new read only connection" do
38
+ connect.open_read_only("uri").should == p
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe Libvirt::Ruby::Connect do
4
+ let(:connect) { Libvirt::Ruby::Connect }
5
+ let(:p) { Object }
6
+
7
+ context "#open" do
8
+ before :each do
9
+ connect.stub(:virConnectOpen).with(:string, :pointer).and_return(true)
10
+ connect.stub(:virConnectOpen).with("uri").and_return(p)
11
+ end
12
+
13
+ after :each do
14
+ connect.open("uri")
15
+ end
16
+
17
+ context "when virConnectOpen is not attached yet" do
18
+ it "should attach it" do
19
+ connect.should_receive(:virConnectOpen).with(:string, :pointer)
20
+ end
21
+ end
22
+
23
+ context "when virConnectOpen is already attached" do
24
+ before :each do
25
+ connect.stub(:respond_to_missing?).with(:virConnectOpen, false).and_return(true)
26
+ end
27
+
28
+ it "should not try to attach it again" do
29
+ connect.should_not_receive(:virConnectOpen).with(:string, :pointer)
30
+ end
31
+ end
32
+
33
+ it "should call virConnectOpen" do
34
+ connect.should_receive(:virConnectOpen)
35
+ end
36
+
37
+ it "should return the pointer to the new connection" do
38
+ connect.open("uri").should == p
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+
3
+ describe Libvirt::Ruby do
4
+ let(:libvirt) { Libvirt::Ruby }
5
+ let(:p) { Object }
6
+
7
+ context "#initialize" do
8
+ before :each do
9
+ libvirt.stub(:virInitialize).with(:int).and_return(true)
10
+ libvirt.stub(:virInitialize).and_return(true)
11
+ end
12
+
13
+ after :each do
14
+ libvirt.initialize
15
+ end
16
+
17
+ context "when virInitialize is not attached yet" do
18
+ it "should attach it" do
19
+ libvirt.should_receive(:virInitialize).with(:int)
20
+ end
21
+ end
22
+
23
+ context "when virInitialize is already attached" do
24
+ before :each do
25
+ libvirt.stub(:respond_to_missing?).with(:virInitialize, false).and_return(true)
26
+ end
27
+
28
+ it "should not try to attach it again" do
29
+ libvirt.should_not_receive(:virInitialize).with(:int)
30
+ end
31
+ end
32
+
33
+ it "should call virInitialize" do
34
+ libvirt.should_receive(:virInitialize)
35
+ end
36
+ end
37
+
38
+ context "#version" do
39
+ before :each do
40
+ libvirt.stub(:virGetVersion).with(:pointer, :string, :pointer, :int).and_return(true)
41
+ FFI::MemoryPointer.stub(:new).with(:ulong).and_return(p)
42
+ libvirt.stub(:virGetVersion).with(p, nil, nil).and_return(true)
43
+ p.stub(:get_ulong).with(0).and_return(8003)
44
+ end
45
+
46
+ context "when virGetVersion is not attached yet" do
47
+ it "should attach it" do
48
+ libvirt.should_receive(:virGetVersion).with(:pointer, :string, :pointer, :int)
49
+ libvirt.version
50
+ end
51
+ end
52
+
53
+ context "when virGetVersion is already attached" do
54
+ before :each do
55
+ libvirt.stub(:respond_to_missing?).with(:virGetVersion, false).and_return(true)
56
+ end
57
+
58
+ it "should not try to attach it again" do
59
+ libvirt.should_not_receive(:virGetVersion).with(:pointer, :string, :pointer, :int)
60
+ libvirt.version
61
+ end
62
+ end
63
+
64
+ it "should return the version" do
65
+ libvirt.version.should == "0.8.3"
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,5 @@
1
+ require "rubygems"
2
+ require "rspec"
3
+ require "libvirt-ruby"
4
+
5
+ require File.dirname(__FILE__) + "/../lib/libvirt-ruby-mapping.rb"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libvirt-ruby-mapping
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-29 00:00:00.000000000 Z
12
+ date: 2012-03-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: libvirt-ruby
16
- requirement: &18025340 !ruby/object:Gem::Requirement
16
+ requirement: &6951800 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>'
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *18025340
24
+ version_requirements: *6951800
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &18023580 !ruby/object:Gem::Requirement
27
+ requirement: &6951100 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *18023580
35
+ version_requirements: *6951100
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &17640020 !ruby/object:Gem::Requirement
38
+ requirement: &6950040 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - =
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 2.5.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *17640020
46
+ version_requirements: *6950040
47
47
  description: Libvirt Mapping of C function to Ruby Class and methods
48
48
  email: plribeiro3000@gmail.com
49
49
  executables: []
@@ -59,8 +59,13 @@ files:
59
59
  - README.rdoc
60
60
  - Rakefile
61
61
  - lib/libvirt-ruby-mapping.rb
62
+ - lib/libvirt-ruby-mapping/connect.rb
62
63
  - lib/libvirt-ruby-mapping/version.rb
63
64
  - libvirt-ruby-mapping.gemspec
65
+ - spec/libvirt-ruby-mapping/connect/open_read_only_spec.rb
66
+ - spec/libvirt-ruby-mapping/connect/open_spec.rb
67
+ - spec/libvirt-ruby-mapping_spec.rb
68
+ - spec/spec_helper.rb
64
69
  homepage: ''
65
70
  licenses: []
66
71
  post_install_message:
@@ -81,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
86
  version: '0'
82
87
  requirements: []
83
88
  rubyforge_project:
84
- rubygems_version: 1.8.10
89
+ rubygems_version: 1.8.17
85
90
  signing_key:
86
91
  specification_version: 3
87
92
  summary: Ruby mapping of the libvirt's functions using libvirt-ruby