nsisam 0.3.4 → 0.4.0

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.
data/Gemfile CHANGED
@@ -11,6 +11,6 @@ group :development do
11
11
  gem "rake"
12
12
  gem "yard"
13
13
  gem "rspec", "~> 2.8.0"
14
- gem "bundler", "~> 1.0.0"
14
+ gem "bundler", "~> 1.1.0"
15
15
  gem "jeweler", "~> 1.8.3"
16
16
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.3.4
1
+ 0.4.0
data/lib/nsisam/client.rb CHANGED
@@ -1,6 +1,8 @@
1
1
  require "json"
2
2
  require "net/http"
3
3
  require "digest"
4
+
5
+ require File.dirname(__FILE__) + '/configuration'
4
6
  require File.dirname(__FILE__) + '/errors'
5
7
 
6
8
  module NSISam
@@ -8,15 +10,17 @@ module NSISam
8
10
 
9
11
  # Initialize a client to a SAM node hosted at a specific url
10
12
  #
11
- # @param [String] url the SAM node url
13
+ # @param [Hash] optional hash with user, password, host and port of the SAM node
12
14
  # @return [Client] the object itself
13
15
  # @example
14
- # nsisam = NSISam::Client.new 'http://user:pass@ip:port/'
15
- def initialize(url)
16
- user_and_pass = url.match(/(\w+):(\w+)/)
17
- @user, @password = user_and_pass[1], user_and_pass[2]
18
- @url = url.match(/@(.*):/)[1]
19
- @port = url.match(/([0-9]+)(\/)?$/)[1]
16
+ # nsisam = NSISam::Client.new user: 'username' password: 'pass',
17
+ # host: 'localhost', port: '8888'
18
+ def initialize(params = {})
19
+ params = Configuration.settings.merge(params)
20
+ @user = params[:user]
21
+ @password = params[:password]
22
+ @host = params[:host]
23
+ @port = params[:port]
20
24
  end
21
25
 
22
26
  # Store a given data in SAM
@@ -93,6 +97,21 @@ module NSISam
93
97
  execute_request(request)
94
98
  end
95
99
 
100
+ # Configure the default values for NSISam::Client objects
101
+ #
102
+ # @param [Block]
103
+ #
104
+ # @example
105
+ # NSISam::Client.configure do
106
+ # user "why"
107
+ # password "chunky"
108
+ # host "localhost"
109
+ # port "8888"
110
+ # end
111
+ def self.configure(&block)
112
+ Configuration.instance_eval(&block)
113
+ end
114
+
96
115
  private
97
116
 
98
117
  def prepare_request(verb, body)
@@ -105,7 +124,7 @@ module NSISam
105
124
 
106
125
  def execute_request(request)
107
126
  begin
108
- response = Net::HTTP.start @url, @port do |http|
127
+ response = Net::HTTP.start @host, @port do |http|
109
128
  http.request(request)
110
129
  end
111
130
  rescue Errno::ECONNREFUSED => e
@@ -0,0 +1,31 @@
1
+ module NSISam
2
+ class Client
3
+ class Configuration
4
+ class << self
5
+ def user(user = nil)
6
+ @user = user unless user.nil?
7
+ @user
8
+ end
9
+
10
+ def password(password = nil)
11
+ @password = password unless password.nil?
12
+ @password
13
+ end
14
+
15
+ def host(host = nil)
16
+ @host = host unless host.nil?
17
+ @host
18
+ end
19
+
20
+ def port(port = nil)
21
+ @port = port unless port.nil?
22
+ @port
23
+ end
24
+
25
+ def settings
26
+ {user: @user, password: @password, host: @host, port: @port}
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
data/lib/nsisam.rb CHANGED
@@ -1,4 +1,6 @@
1
1
  require File.dirname(__FILE__) + '/nsisam/client'
2
+ require File.dirname(__FILE__) + '/nsisam/configuration'
3
+ require File.dirname(__FILE__) + '/nsisam/errors'
2
4
  require File.dirname(__FILE__) + '/nsisam/fake_server'
3
5
 
4
6
  module NSISam
data/nsisam.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "nsisam"
8
- s.version = "0.3.4"
8
+ s.version = "0.4.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Douglas Camata"]
12
- s.date = "2012-04-28"
12
+ s.date = "2012-05-08"
13
13
  s.description = "A simple gem to access a SAM node. For more info about SAM\n visit www.github.com/nsi-iff/sam_buildout."
14
14
  s.email = "d.camata@gmail.com"
15
15
  s.extra_rdoc_files = [
@@ -26,9 +26,11 @@ Gem::Specification.new do |s|
26
26
  "VERSION",
27
27
  "lib/nsisam.rb",
28
28
  "lib/nsisam/client.rb",
29
+ "lib/nsisam/configuration.rb",
29
30
  "lib/nsisam/errors.rb",
30
31
  "lib/nsisam/fake_server.rb",
31
32
  "nsisam.gemspec",
33
+ "spec/configuration_spec.rb",
32
34
  "spec/nsisam_spec.rb",
33
35
  "spec/spec_helper.rb"
34
36
  ]
@@ -47,7 +49,7 @@ Gem::Specification.new do |s|
47
49
  s.add_development_dependency(%q<rake>, [">= 0"])
48
50
  s.add_development_dependency(%q<yard>, [">= 0"])
49
51
  s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
50
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
52
+ s.add_development_dependency(%q<bundler>, ["~> 1.1.0"])
51
53
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
52
54
  else
53
55
  s.add_dependency(%q<json>, [">= 0"])
@@ -55,7 +57,7 @@ Gem::Specification.new do |s|
55
57
  s.add_dependency(%q<rake>, [">= 0"])
56
58
  s.add_dependency(%q<yard>, [">= 0"])
57
59
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
58
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
60
+ s.add_dependency(%q<bundler>, ["~> 1.1.0"])
59
61
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
60
62
  end
61
63
  else
@@ -64,7 +66,7 @@ Gem::Specification.new do |s|
64
66
  s.add_dependency(%q<rake>, [">= 0"])
65
67
  s.add_dependency(%q<yard>, [">= 0"])
66
68
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
67
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
69
+ s.add_dependency(%q<bundler>, ["~> 1.1.0"])
68
70
  s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
69
71
  end
70
72
  end
@@ -0,0 +1,36 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+
3
+ describe "NSISam::Client::Configuration" do
4
+ Configuration = NSISam::Client::Configuration
5
+
6
+ it "set and return user" do
7
+ Configuration.user 'why'
8
+ Configuration.user.should == 'why'
9
+ end
10
+
11
+ it "set and return password" do
12
+ Configuration.password 'admin123'
13
+ Configuration.password.should == 'admin123'
14
+ end
15
+
16
+ it "set and return host" do
17
+ Configuration.host '192.168.0.100'
18
+ Configuration.host.should == '192.168.0.100'
19
+ end
20
+
21
+ it "set and return port" do
22
+ Configuration.port '8888'
23
+ Configuration.port.should == '8888'
24
+ end
25
+
26
+ it "return a hash of attributes" do
27
+ Configuration.instance_eval do
28
+ user "why"
29
+ password "chunky"
30
+ host "localhost"
31
+ port "8888"
32
+ end
33
+ Configuration.settings.should == {user: "why", password: "chunky",
34
+ host: "localhost", port: "8888"}
35
+ end
36
+ end
data/spec/nsisam_spec.rb CHANGED
@@ -3,7 +3,8 @@ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
3
3
  describe NSISam do
4
4
 
5
5
  before :all do
6
- @nsisam = NSISam::Client.new 'http://test:test@localhost:8888'
6
+ @nsisam = NSISam::Client.new user: 'test', password: 'test',
7
+ host: 'localhost', port: '8888'
7
8
  @keys = Array.new
8
9
  @fake_sam = NSISam::FakeServerManager.new.start_server
9
10
  end
@@ -14,7 +15,8 @@ describe NSISam do
14
15
 
15
16
  context "cannot connect to server" do
16
17
  it "throws error if couldn't connect to the server" do
17
- sam = NSISam::Client.new 'http://test:test@localhost:4000'
18
+ sam = NSISam::Client.new user: 'test', password: 'test',
19
+ host: 'localhost', port: '4000'
18
20
  expect { sam.store('anything') }.to raise_error(NSISam::Errors::Client::ConnectionRefusedError)
19
21
  end
20
22
  end
@@ -78,4 +80,30 @@ describe NSISam do
78
80
  end
79
81
  end
80
82
 
83
+ context "get configuration" do
84
+ before do
85
+ NSISam::Client.configure do
86
+ user "why"
87
+ password "chunky"
88
+ host "localhost"
89
+ port "8888"
90
+ end
91
+ end
92
+
93
+ it "by configure" do
94
+ sam = NSISam::Client.new
95
+ sam.instance_variable_get(:@user).should == "why"
96
+ sam.instance_variable_get(:@password).should == "chunky"
97
+ sam.instance_variable_get(:@host).should == "localhost"
98
+ sam.instance_variable_get(:@port).should == "8888"
99
+ end
100
+
101
+ it "by initialize parameters" do
102
+ sam = NSISam::Client.new(user: 'luckystiff', password: 'bacon', host: 'why.com', port: '9999')
103
+ sam.instance_variable_get(:@user).should == "luckystiff"
104
+ sam.instance_variable_get(:@password).should == "bacon"
105
+ sam.instance_variable_get(:@host).should == "why.com"
106
+ sam.instance_variable_get(:@port).should == "9999"
107
+ end
108
+ end
81
109
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nsisam
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-28 00:00:00.000000000 Z
12
+ date: 2012-05-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json
@@ -98,7 +98,7 @@ dependencies:
98
98
  requirements:
99
99
  - - ~>
100
100
  - !ruby/object:Gem::Version
101
- version: 1.0.0
101
+ version: 1.1.0
102
102
  type: :development
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
@@ -106,7 +106,7 @@ dependencies:
106
106
  requirements:
107
107
  - - ~>
108
108
  - !ruby/object:Gem::Version
109
- version: 1.0.0
109
+ version: 1.1.0
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: jeweler
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -141,9 +141,11 @@ files:
141
141
  - VERSION
142
142
  - lib/nsisam.rb
143
143
  - lib/nsisam/client.rb
144
+ - lib/nsisam/configuration.rb
144
145
  - lib/nsisam/errors.rb
145
146
  - lib/nsisam/fake_server.rb
146
147
  - nsisam.gemspec
148
+ - spec/configuration_spec.rb
147
149
  - spec/nsisam_spec.rb
148
150
  - spec/spec_helper.rb
149
151
  homepage: http://github.com/nsi-iff/nsisam-ruby
@@ -161,7 +163,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
161
163
  version: '0'
162
164
  segments:
163
165
  - 0
164
- hash: -1576657204801045917
166
+ hash: -1798483526539682580
165
167
  required_rubygems_version: !ruby/object:Gem::Requirement
166
168
  none: false
167
169
  requirements: