rdiff-simple 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 15b76630f1141cfacad11232d8406ba3b4d72d92
4
- data.tar.gz: e6662d1deeed21bbaf612dd7f738dad38cef680b
3
+ metadata.gz: d970e3aa2acff1a199aae08d11ecbbbef78cd396
4
+ data.tar.gz: 4ca3e46b6106f5cabc1fcce4e5fa07652ae39ef3
5
5
  SHA512:
6
- metadata.gz: 949f2b75133ac93f0e5945e7279f020b4917cfa2ee7cf3c35ab7cfe372d43668300f620f1ac8f76438aca75d1bae45dd52f5c2d81f913398395b5d83d8fa5883
7
- data.tar.gz: 4007f8fb8fda98a34f063214ae65bf87d2b2cb2ff7e99fe2e3d1a12bbceb44a2061f7988b809a1139f556733b65ffda5878e57b753ba7c47e3c317e961e675ae
6
+ metadata.gz: 6628d830fe10b8065ce6ce9b070caae379365ad425e12e4d28faa25dd0717f4a5f54c8fa5c401841a734f488c39944087a8e61b97c93cbf9771d86fa7483f592
7
+ data.tar.gz: 4fc368e8ea6c7805d2ca1f7faef5b882ffad3ea0576aeafab6d123086826db1c017ea5239c751590199d3ceb32e6d871e9c3ac5279f6ff2d4e3a277cc18eae79
data/.gitignore CHANGED
@@ -18,3 +18,4 @@ tmp
18
18
  .ruby-version
19
19
  bin
20
20
  Guardfile
21
+ .vagrant
data/README.md CHANGED
@@ -14,7 +14,9 @@ A simple wrapper around rdiff-backup
14
14
 
15
15
  ## Installation
16
16
 
17
+ ```bash
17
18
  $ gem install rdiff-simple
19
+ ```
18
20
 
19
21
  ## Quick Start
20
22
 
@@ -3,15 +3,10 @@ module RdiffSimple
3
3
  def self.parse(*args)
4
4
  options = args.extract_options!
5
5
 
6
- args.reverse!
7
-
8
- source = args.pop
9
- destination = args.pop
10
-
11
- flags = args.reverse.map { |flag| flag.size == 1 ? "-#{flag}" : "--#{flag}" } * ' '
6
+ flags = args.map { |flag| flag.size == 1 ? "-#{flag}" : "--#{flag}" } * ' '
12
7
  arguments = options.map { |key, value| (key.size == 1 ? "-#{key}" : "--#{key}") + " #{value}" } * ' '
13
8
 
14
- "#{flags} #{arguments} #{source} #{destination}".dasherize.strip
9
+ "#{flags} #{arguments}".dasherize.strip
15
10
  end
16
11
  end
17
12
  end
@@ -1,20 +1,35 @@
1
-
2
1
  module RdiffSimple
3
2
  class RdiffBackup
4
- def initialize(logger = Logger.new(STDOUT), open3 = Open3)
5
- @logger = logger
6
- @open3 = open3
3
+ attr_accessor :logger, :open3
4
+
5
+ def initialize
6
+ yield self if block_given?
7
+
8
+ @open3 ||= Open3
9
+ @logger ||= Logger.new(STDOUT)
10
+ end
11
+
12
+ def backup(source, destination, *args)
13
+ command_args = OptionsParser.parse *args
14
+ execute "#{command_args} #{source} #{destination}"
15
+ end
16
+
17
+ def verify(destination)
18
+ verify_at_time destination, "now"
7
19
  end
8
20
 
9
- def execute(*args)
10
- command_arguments = OptionsParser.parse(*args)
21
+ def verify_at_time(destination, time)
22
+ execute "--verify-at-time #{time} #{destination}"
23
+ end
11
24
 
12
- out, err, result = @open3.capture3("rdiff-backup #{command_arguments}".strip)
25
+ private
26
+ def execute(command)
27
+ output, error, result = open3.capture3 "rdiff-backup #{command}"
13
28
 
14
- @logger.info(out) if out.length > 0
15
- @logger.error(err) if err.length > 0
29
+ logger.info output unless output.empty?
30
+ logger.error error unless error.empty?
16
31
 
17
- return result.exitstatus
32
+ result.exitstatus
18
33
  end
19
34
  end
20
35
  end
@@ -1,3 +1,3 @@
1
1
  module RdiffSimple
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
data/lib/rdiff_simple.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  require 'logger'
2
2
  require 'open3'
3
- require 'active_support/all'
3
+ require 'active_support/core_ext'
4
4
  require 'rdiff_simple/version'
5
5
  require 'rdiff_simple/options_parser'
6
6
  require 'rdiff_simple/rdiff_backup'
data/rdiff-simple.gemspec CHANGED
@@ -24,7 +24,6 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency "activesupport"
25
25
 
26
26
  spec.add_development_dependency "rake"
27
- spec.add_development_dependency "rspec", "~> 2"
27
+ spec.add_development_dependency "rspec", ">= 2.0.0"
28
28
  spec.add_development_dependency "coveralls"
29
- spec.add_development_dependency "guard-rspec"
30
29
  end
@@ -1,27 +1,27 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe RdiffSimple::OptionsParser do
4
- subject { RdiffSimple::OptionsParser.parse('~/Documents', '~/Test', :b, :exclude_other_filesystems, verbosity: 5, exclude: '*.png', r: Date.today) }
4
+ subject { RdiffSimple::OptionsParser.parse(:b, :exclude_other_filesystems, verbosity: 5, exclude: '*.png', r: Date.today) }
5
5
 
6
6
  describe '.parse' do
7
7
  it 'converts options to long argument format' do
8
- expect(subject).to match /\s--verbosity\s/
8
+ expect(subject).to match /--verbosity/
9
9
  end
10
10
 
11
11
  it 'sets value for argument' do
12
- expect(subject).to match /\s--verbosity 5\s/
12
+ expect(subject).to match /--verbosity 5/
13
13
  end
14
14
 
15
15
  it 'converts symbols to dasherized strings' do
16
- expect(subject).to match /\s--exclude-other-filesystems\s/
16
+ expect(subject).to match /--exclude-other-filesystems/
17
17
  end
18
18
 
19
19
  it 'handles single letter argument' do
20
- expect(subject).to match /\A-b\s/
20
+ expect(subject).to match /-b/
21
21
  end
22
22
 
23
23
  it 'sets value for single letter argument' do
24
- expect(subject).to match /\s-r #{Date.today}\s/
24
+ expect(subject).to match /-r #{Date.today}/
25
25
  end
26
26
  end
27
27
  end
@@ -1,20 +1,59 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe RdiffSimple::RdiffBackup do
4
- let(:args) { 'rdiff-backup --exclude-other-filesystems --verbosity 5 --exclude *.png ~/Documents ~/Test' }
4
+ let(:source) { '~/Documents' }
5
+ let(:destination) { '~/Test' }
5
6
  let(:status) { double('status', exitstatus: Random.rand(100)) }
6
7
  let(:open3) { double('open3') }
7
- let(:backup) { RdiffSimple::RdiffBackup.new(double('logger'), open3) }
8
+ let(:file) { StringIO.new }
9
+ let(:rdiff) do
10
+ RdiffSimple::RdiffBackup.new do |r|
11
+ r.logger = Logger.new file
12
+ r.open3 = open3
13
+ end
14
+ end
8
15
 
9
- subject { backup.execute('~/Documents', '~/Test', :exclude_other_filesystems, verbosity: 5, exclude: '*.png') }
16
+ before do
17
+ open3.stub(:capture3).with(args) { ['output', 'error', status] }
18
+ end
10
19
 
11
- describe '#backup' do
12
- before do
13
- expect(open3).to receive(:capture3).with(args) { ['', '', status] }
14
- end
20
+ shared_examples "a command" do
21
+ before { subject }
15
22
 
16
- it 'returns the exit code' do
23
+ it 'and returns the exit code' do
17
24
  expect(subject).to eq status.exitstatus
18
25
  end
26
+
27
+ it 'and logs the output' do
28
+ expect(file.string).to match /output/
29
+ end
30
+
31
+ it 'and logs any errors' do
32
+ expect(file.string).to match /error/
33
+ end
34
+ end
35
+
36
+ describe '#backup' do
37
+ let(:args) { "rdiff-backup --exclude-other-filesystems --verbosity 5 --exclude *.png #{source} #{destination}" }
38
+
39
+ subject { rdiff.backup(source, destination, :exclude_other_filesystems, verbosity: 5, exclude: '*.png') }
40
+
41
+ it_behaves_like "a command"
42
+ end
43
+
44
+ describe '#verify' do
45
+ let(:args) { "rdiff-backup --verify-at-time now #{destination}" }
46
+
47
+ subject { rdiff.verify destination }
48
+
49
+ it_behaves_like "a command"
50
+ end
51
+
52
+ describe '#verify_at_time' do
53
+ let(:args) { "rdiff-backup --verify-at-time now #{destination}" }
54
+
55
+ subject { rdiff.verify_at_time destination, 'now' }
56
+
57
+ it_behaves_like "a command"
19
58
  end
20
59
  end
data/spec/spec_helper.rb CHANGED
@@ -1,13 +1,11 @@
1
- Bundler.require(:development)
1
+ require 'bundler/setup'
2
2
 
3
- if RUBY_VERSION > "1.9"
4
- if ENV['TRAVIS']
5
- require 'coveralls'
6
- Coveralls.wear!
7
- else
8
- require 'simplecov'
9
- SimpleCov.start
10
- end
3
+ if ENV['TRAVIS']
4
+ require 'coveralls'
5
+ Coveralls.wear!
6
+ else
7
+ require 'simplecov'
8
+ SimpleCov.start
11
9
  end
12
10
 
13
11
  require 'rdiff_simple'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdiff-simple
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Hansen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-09-20 00:00:00.000000000 Z
11
+ date: 2013-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -40,34 +40,20 @@ dependencies:
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ~>
46
- - !ruby/object:Gem::Version
47
- version: '2'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ~>
53
- - !ruby/object:Gem::Version
54
- version: '2'
55
- - !ruby/object:Gem::Dependency
56
- name: coveralls
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - '>='
60
46
  - !ruby/object:Gem::Version
61
- version: '0'
47
+ version: 2.0.0
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - '>='
67
53
  - !ruby/object:Gem::Version
68
- version: '0'
54
+ version: 2.0.0
69
55
  - !ruby/object:Gem::Dependency
70
- name: guard-rspec
56
+ name: coveralls
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - '>='
@@ -126,7 +112,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
126
112
  version: '0'
127
113
  requirements: []
128
114
  rubyforge_project:
129
- rubygems_version: 2.0.3
115
+ rubygems_version: 2.0.14
130
116
  signing_key:
131
117
  specification_version: 4
132
118
  summary: A wrapper around the rdiff-backup executable