ruby_gpg 0.1.0 → 0.1.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.
@@ -0,0 +1,7 @@
1
+ # v0.1.1 (2010-03-16)
2
+
3
+ * Improve error handling.
4
+
5
+ # v0.1.0 (2010-03-16)
6
+
7
+ * First version with `RubyGpg.encrypt` and `RubyGpg.decrypt` methods.
data/Rakefile CHANGED
@@ -50,7 +50,9 @@ task :default => :spec
50
50
 
51
51
  begin
52
52
  require 'yard'
53
- YARD::Rake::YardocTask.new
53
+ YARD::Rake::YardocTask.new do |y|
54
+ y.files << '-' << 'CHANGELOG.*' << 'TODO.*'
55
+ end
54
56
  rescue LoadError
55
57
  task :yardoc do
56
58
  abort "YARD is not available. In order to run yardoc, you must: sudo gem install yard"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -3,10 +3,17 @@ Feature: Encryption
3
3
  As a user
4
4
  I want to encrypt the file
5
5
 
6
- Scenario: Encrypt
6
+ Background:
7
7
  Given a key pair for Slow Joe Crow with passphrase test
8
8
  And a file named "secrets" containing "some content"
9
9
  And the file "secrets.gpg" does not exist
10
+
11
+ Scenario: Encrypt
10
12
  When I encrypt the file "secrets" for "Slow Joe Crow"
11
13
  Then the file "secrets.gpg" should exist
12
14
  And the file "secrets.gpg" should not contain "some content"
15
+
16
+ Scenario: Unknown recipient
17
+ When I try to encrypt the file "secrets" for "Sue"
18
+ Then the command should raise an error matching "key not found"
19
+ And the file "secrets.gpg" should not exist
@@ -10,7 +10,7 @@ Given /^a file named "([^\"]*)" containing "([^\"]*)"$/ do |filename, content|
10
10
  end
11
11
 
12
12
  Given /^the file "([^\"]*)" does not exist$/ do |filename|
13
- if File.exist?(filename)
13
+ if File.exist?("#{TMP_PATH}/#{filename}")
14
14
  File.delete("#{TMP_PATH}/#{filename}")
15
15
  end
16
16
  end
@@ -19,14 +19,28 @@ When /^I encrypt the file "([^\"]*)" for "([^\"]*)"$/ do |filename, recipient|
19
19
  RubyGpg.encrypt("#{TMP_PATH}/#{filename}", recipient)
20
20
  end
21
21
 
22
+ When /^I try to encrypt the file "([^\"]*)" for "([^\"]*)"$/ do |filename, recipient|
23
+ @command = lambda {
24
+ RubyGpg.encrypt("#{TMP_PATH}/#{filename}", recipient)
25
+ }
26
+ end
27
+
22
28
  When /^I decrypt the file "([^\"]*)" with passphrase "([^\"]*)"$/ do |filename, passphrase|
23
29
  RubyGpg.decrypt("#{TMP_PATH}/#{filename}", passphrase)
24
30
  end
25
31
 
32
+ Then /^the command should raise an error matching "([^\"]*)"$/ do |error|
33
+ @command.should raise_error(/#{Regexp.escape(error)}/)
34
+ end
35
+
26
36
  Then /^the file "([^\"]*)" should exist$/ do |filename|
27
37
  File.exist?("#{TMP_PATH}/#{filename}").should be_true
28
38
  end
29
39
 
40
+ Then /^the file "([^\"]*)" should not exist$/ do |filename|
41
+ File.exist?("#{TMP_PATH}/#{filename}").should_not be_true
42
+ end
43
+
30
44
  Then /^the file "([^\"]*)" should not contain "([^\"]*)"$/ do |filename, content|
31
45
  File.read("#{TMP_PATH}/#{filename}").should_not include(content)
32
46
  end
data/lib/ruby_gpg.rb CHANGED
@@ -9,7 +9,7 @@ module RubyGpg
9
9
  end
10
10
 
11
11
  def gpg_command
12
- "#{config.executable} --homedir #{config.homedir}" +
12
+ "#{config.executable} --homedir #{config.homedir} --quiet" +
13
13
  " --no-secmem-warning --no-permission-warning --no-tty --yes"
14
14
  end
15
15
 
@@ -30,12 +30,9 @@ module RubyGpg
30
30
  private
31
31
  def run_command(command)
32
32
  Open3.popen3(command) do |stdin, stdout, stderr|
33
- stdin.close_write
34
- unless $?.exitstatus == 0
35
- msg = "GPG command (#{command}) failed"
36
- errors = stderr.read
37
- msg << " with: #{errors}" if errors && !errors.empty?
38
- raise msg
33
+ error = stderr.read
34
+ if error && !error.empty?
35
+ raise "GPG command (#{command}) failed with: #{error}"
39
36
  end
40
37
  end
41
38
  end
data/ruby_gpg.gemspec ADDED
@@ -0,0 +1,73 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{ruby_gpg}
8
+ s.version = "0.1.1"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Justin Blake"]
12
+ s.date = %q{2010-03-16}
13
+ s.description = %q{Ruby wrapper for the gpg binary}
14
+ s.email = %q{justin@megablaix.com}
15
+ s.extra_rdoc_files = [
16
+ "LICENSE",
17
+ "README.markdown"
18
+ ]
19
+ s.files = [
20
+ ".autotest",
21
+ ".gitignore",
22
+ "CHANGELOG.markdown",
23
+ "LICENSE",
24
+ "README.markdown",
25
+ "Rakefile",
26
+ "VERSION",
27
+ "cucumber.yml",
28
+ "features/decryption.feature",
29
+ "features/encryption.feature",
30
+ "features/step_definitions/ruby_gpg_steps.rb",
31
+ "features/support/env.rb",
32
+ "lib/ruby_gpg.rb",
33
+ "ruby_gpg.gemspec",
34
+ "spec/ruby_gpg_spec.rb",
35
+ "spec/spec.opts",
36
+ "spec/spec_helper.rb",
37
+ "test_keys/pubring.gpg",
38
+ "test_keys/secring.gpg",
39
+ "test_keys/trustdb.gpg"
40
+ ]
41
+ s.homepage = %q{http://github.com/blaix/ruby_gpg}
42
+ s.rdoc_options = ["--charset=UTF-8"]
43
+ s.require_paths = ["lib"]
44
+ s.rubygems_version = %q{1.3.6}
45
+ s.summary = %q{Ruby wrapper for the gpg binary}
46
+ s.test_files = [
47
+ "spec/ruby_gpg_spec.rb",
48
+ "spec/spec_helper.rb"
49
+ ]
50
+
51
+ if s.respond_to? :specification_version then
52
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
53
+ s.specification_version = 3
54
+
55
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
56
+ s.add_development_dependency(%q<rspec>, [">= 1.2.9"])
57
+ s.add_development_dependency(%q<yard>, [">= 0"])
58
+ s.add_development_dependency(%q<cucumber>, [">= 0"])
59
+ s.add_development_dependency(%q<mocha>, [">= 0.9.8"])
60
+ else
61
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
62
+ s.add_dependency(%q<yard>, [">= 0"])
63
+ s.add_dependency(%q<cucumber>, [">= 0"])
64
+ s.add_dependency(%q<mocha>, [">= 0.9.8"])
65
+ end
66
+ else
67
+ s.add_dependency(%q<rspec>, [">= 1.2.9"])
68
+ s.add_dependency(%q<yard>, [">= 0"])
69
+ s.add_dependency(%q<cucumber>, [">= 0"])
70
+ s.add_dependency(%q<mocha>, [">= 0.9.8"])
71
+ end
72
+ end
73
+
@@ -11,8 +11,7 @@ describe "RubyGpg" do
11
11
  end
12
12
  end
13
13
 
14
- def expect_error(error_message)
15
- $?.stubs(:exitstatus).returns(1)
14
+ def stub_error(error_message)
16
15
  @stderr.write(error_message)
17
16
  @stderr.rewind
18
17
  end
@@ -22,7 +21,6 @@ describe "RubyGpg" do
22
21
  @stdout = StringIO.new
23
22
  @stderr = StringIO.new
24
23
  Open3.stubs(:popen3).yields(@stdin, @stdout, @stderr)
25
- $?.stubs(:exitstatus).returns(0)
26
24
  end
27
25
 
28
26
  it "allows the use of a custom path to the gpg executable" do
@@ -40,6 +38,7 @@ describe "RubyGpg" do
40
38
  command.should include("--no-secmem-warning")
41
39
  command.should include("--no-permission-warning")
42
40
  command.should include("--no-tty")
41
+ command.should include("--quiet")
43
42
  command.should include("--yes")
44
43
  end
45
44
 
@@ -74,7 +73,7 @@ describe "RubyGpg" do
74
73
  end
75
74
 
76
75
  it "raises any errors from gpg" do
77
- expect_error("error message")
76
+ stub_error("error message")
78
77
  lambda { run_encrypt }.should raise_error(/GPG command \(.*gpg.*--encrypt.*filename\) failed with: error message/)
79
78
  end
80
79
 
@@ -114,19 +113,12 @@ describe "RubyGpg" do
114
113
  end
115
114
 
116
115
  it "raises any errors from gpg" do
117
- expect_error("error message")
116
+ stub_error("error message")
118
117
  lambda { run_decrypt }.should raise_error(/GPG command \(.*gpg.*--decrypt.*filename\.gpg\) failed with: error message/)
119
118
  end
120
119
 
121
120
  it "does not raise if there is no output from gpg" do
122
121
  lambda { run_decrypt }.should_not raise_error
123
122
  end
124
-
125
- it "does not raise when gpg spits 'successful' output to stderr" do
126
- $?.stubs(:exitstatus).returns(0)
127
- @stderr.write("success message")
128
- @stderr.rewind
129
- lambda { run_decrypt }.should_not raise_error
130
- end
131
123
  end
132
124
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 0
9
- version: 0.1.0
8
+ - 1
9
+ version: 0.1.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Justin Blake
@@ -80,8 +80,8 @@ extra_rdoc_files:
80
80
  - README.markdown
81
81
  files:
82
82
  - .autotest
83
- - .document
84
83
  - .gitignore
84
+ - CHANGELOG.markdown
85
85
  - LICENSE
86
86
  - README.markdown
87
87
  - Rakefile
@@ -92,6 +92,7 @@ files:
92
92
  - features/step_definitions/ruby_gpg_steps.rb
93
93
  - features/support/env.rb
94
94
  - lib/ruby_gpg.rb
95
+ - ruby_gpg.gemspec
95
96
  - spec/ruby_gpg_spec.rb
96
97
  - spec/spec.opts
97
98
  - spec/spec_helper.rb
data/.document DELETED
@@ -1,5 +0,0 @@
1
- README.rdoc
2
- lib/**/*.rb
3
- bin/*
4
- features/**/*.feature
5
- LICENSE