worochi 0.0.0 → 0.0.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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE +20 -0
  3. data/lib/worochi/agent/dropbox.rb +26 -4
  4. data/lib/worochi/agent/github.rb +14 -9
  5. data/lib/worochi/agent/sample.rb +8 -3
  6. data/lib/worochi/agent.rb +64 -23
  7. data/lib/worochi/config.rb +34 -2
  8. data/lib/worochi/error.rb +1 -0
  9. data/lib/worochi/helper/github.rb +1 -0
  10. data/lib/worochi/helper.rb +10 -8
  11. data/lib/worochi/item.rb +18 -9
  12. data/lib/worochi/log.rb +11 -0
  13. data/lib/worochi/version.rb +4 -0
  14. data/lib/worochi.rb +23 -16
  15. data/spec/cassettes/Worochi_Agent_Dropbox/_list/works_with_absolute_paths.yml +60 -0
  16. data/spec/cassettes/Worochi_Agent_Dropbox/_push_item/pushes_a_single_item.yml +303 -0
  17. data/spec/cassettes/Worochi_Agent_Dropbox/_push_item_chunked/pushes_a_single_item_in_chunks.yml +349 -0
  18. data/spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_files/accepts_a_different_path.yml +60 -0
  19. data/spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_files/accepts_a_different_relative_path.yml +60 -0
  20. data/spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_files/contains_file1.yml +79 -0
  21. data/spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_folders/accepts_a_different_path.yml +60 -0
  22. data/spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_folders/accepts_a_different_relative_path.yml +60 -0
  23. data/spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_folders/contains_folder1.yml +79 -0
  24. data/spec/cassettes/Worochi_Agent_Github/_list/works_with_absolute_paths.yml +133 -0
  25. data/spec/cassettes/Worochi_Agent_Github/_push_all/pushes_a_list_of_items_to_create_a_new_commit.yml +989 -0
  26. data/spec/cassettes/Worochi_Agent_Github/_push_all/pushes_the_file_to_the_right_place.yml +687 -0
  27. data/spec/cassettes/Worochi_Agent_Github/_source_branch/retrieves_the_master_branch_correctly.yml +68 -0
  28. data/spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_files/accepts_a_different_path.yml +133 -0
  29. data/spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_files/accepts_a_different_relative_path.yml +133 -0
  30. data/spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_files/contains_file1.yml +133 -0
  31. data/spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_folders/accepts_a_different_path.yml +133 -0
  32. data/spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_folders/accepts_a_different_relative_path.yml +133 -0
  33. data/spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_folders/contains_folder1.yml +133 -0
  34. data/spec/cassettes/Worochi_Item/_open/opens_a_single_file/with_Hash_parameter.yml +107 -0
  35. data/spec/cassettes/Worochi_Item/_open/opens_a_single_file/with_String_parameter.yml +107 -0
  36. data/spec/cassettes/Worochi_Item/_open/opens_multiple_files/with_Hash_parameters.yml +211 -0
  37. data/spec/cassettes/Worochi_Item/_open/opens_multiple_files/with_String_parameters.yml +107 -0
  38. data/spec/cassettes/Worochi_Item/_open_single/accepts_a_String.yml +107 -0
  39. data/spec/cassettes/Worochi_Item/_open_single/works_with_AWS_S3_paths.yml +46 -0
  40. data/spec/helper.rb +46 -0
  41. data/spec/support/aws_uri_matcher.rb +12 -0
  42. data/spec/support/shared_exampes_for_agents.rb +36 -0
  43. data/spec/support/test_file +1 -0
  44. data/spec/support/test_files.rb +34 -0
  45. data/spec/worochi/agent/dropbox_spec.rb +48 -0
  46. data/spec/worochi/agent/github_spec.rb +77 -0
  47. data/spec/worochi/agent_spec.rb +2 -0
  48. data/spec/worochi/helper/github_spec.rb +57 -0
  49. data/spec/worochi/helper_spec.rb +23 -0
  50. data/spec/worochi/item_spec.rb +85 -0
  51. data/spec/worochi_spec.rb +109 -0
  52. data/worochi.gemspec +27 -4
  53. metadata +193 -4
@@ -0,0 +1,77 @@
1
+ require 'helper'
2
+
3
+ describe Worochi::Agent::Github do
4
+ let(:required_keys) { [:repo, :source, :target, :block_size, :commit_msg] }
5
+ let(:client_class) { Octokit::Client }
6
+ let(:master_branch) { 'cdddc3941866854cdb41c023d0f5240ed10df053' }
7
+
8
+ let(:agent) do
9
+ Worochi::Agent::Github.new({
10
+ token: ENV['GITHUB_TEST_TOKEN'],
11
+ repo: 'darkmirage/test',
12
+ source: 'master',
13
+ target: 'rspec',
14
+ commit_msg: "RSpec Test"
15
+ })
16
+ end
17
+
18
+ it_should_behave_like 'a service agent'
19
+
20
+ before do
21
+ @client = agent.init_client
22
+ end
23
+
24
+ describe '#push_all', :vcr do
25
+ def delete_target
26
+ tag = "heads/#{agent.options[:target]}"
27
+ begin
28
+ @client.delete_ref(agent.options[:repo], tag)
29
+ rescue Octokit::UnprocessableEntity
30
+ end
31
+ end
32
+
33
+ it 'pushes a list of items to create a new commit' do
34
+ @client = agent.init_client
35
+ delete_target
36
+
37
+ hashes = [remote, local].map do |file|
38
+ { path: file.path, source: file.source }
39
+ end
40
+ items = Worochi::Item.open(hashes)
41
+
42
+ sha = agent.push_all(items)
43
+ ref = @client.ref(agent.options[:repo], "heads/#{agent.options[:target]}")
44
+ expect(ref.object.sha).to eq(sha)
45
+
46
+ commit = @client.commit(agent.options[:repo], sha)
47
+ expect(commit.commit.message).to eq(agent.options[:commit_msg])
48
+
49
+ delete_target
50
+ end
51
+
52
+ it 'pushes the file to the right place' do
53
+ delete_target
54
+
55
+ item = Worochi::Item.open({ source: local.source, path: local.path })
56
+
57
+ sha = agent.push_all(item)
58
+ ls = agent.list(File.dirname(local.path), sha).map { |x| x[:name] }
59
+ expect(ls).to include(local.name)
60
+
61
+ delete_target
62
+ end
63
+ end
64
+
65
+ describe '#source_branch', :vcr do
66
+ it 'retrieves the master branch correctly' do
67
+ expect(agent.send(:source_branch)).to eq(master_branch)
68
+ end
69
+ end
70
+
71
+ describe '#list', :vcr do
72
+ it 'works with absolute paths' do
73
+ ls = agent.list('/folder2/subfolder/test').map { |x| x[:name] }
74
+ expect(ls).to include('abc.txt')
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,2 @@
1
+ require 'helper'
2
+
@@ -0,0 +1,57 @@
1
+ require 'helper'
2
+
3
+ describe Worochi::Helper::Github do
4
+ describe Worochi::Helper::Github::StreamIO do
5
+
6
+ let(:size) { 114 }
7
+ let(:stream) do
8
+ item = Worochi::Item.open_single(local.source)
9
+ Worochi::Helper::Github::StreamIO.new(item)
10
+ end
11
+
12
+ after do
13
+ stream.rewind
14
+ end
15
+
16
+ describe '.new' do
17
+ it 'initializes' do
18
+ item = Worochi::Item.open_single(local.source)
19
+ s = Worochi::Helper::Github::StreamIO.new(item)
20
+ expect(s.class).to be(Worochi::Helper::Github::StreamIO)
21
+ end
22
+ end
23
+
24
+ describe '#size' do
25
+ it 'returns the encoded size' do
26
+ expect(stream.size).to eq(size)
27
+ end
28
+ end
29
+
30
+ describe '#read' do
31
+ it 'encodes a file correctly' do
32
+ checksum = '0bda09766257c6e8d33557cf4d1e1718e82540d46b53d288fc13198e7126f2bc'
33
+ content = stream.read
34
+ expect(Digest::SHA2.hexdigest(content)).to eq(checksum)
35
+ expect(content.size).to eq(size)
36
+ end
37
+
38
+ it 'reads partial lengths' do
39
+ part = stream.read(6)
40
+ expect(part).to eq('{"cont')
41
+ expect(part.size).to eq(6)
42
+
43
+ part = stream.read(15)
44
+ expect(part).to eq('ent":"VGhpcyBpc')
45
+ expect(part.size).to eq(15)
46
+ end
47
+ end
48
+
49
+ describe '#rewind' do
50
+ it 'rewinds the stream' do
51
+ expect(stream.read(20)).to eq('{"content":"VGhpcyBp')
52
+ stream.rewind
53
+ expect(stream.read(20)).to eq('{"content":"VGhpcyBp')
54
+ end
55
+ end
56
+ end
57
+ end
@@ -0,0 +1,23 @@
1
+ require 'helper'
2
+
3
+ describe Worochi::Helper do
4
+
5
+ describe '.is_s3_path?', :aws do
6
+ it 'recognizes an S3 path' do
7
+ expect(Worochi::Helper.is_s3_path?('s3:test/path')).to be_true
8
+ end
9
+
10
+ it 'rejects other paths' do
11
+ expect(Worochi::Helper.is_s3_path?('test/path')).to be_false
12
+ expect(Worochi::Helper.is_s3_path?('s3/test/path')).to be_false
13
+ expect(Worochi::Helper.is_s3_path?('http://a.com/path')).to be_false
14
+ end
15
+ end
16
+
17
+ describe '.s3_url', :aws do
18
+ it 'returns the right S3 URL' do
19
+ url = Worochi::Helper.s3_url('s3:test/path')
20
+ expect(url.to_s).to match(/^https.+s3\.amazonaws\.com\/test\/path.*/)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,85 @@
1
+ require 'helper'
2
+
3
+ describe Worochi::Item do
4
+ describe '.open', :vcr do
5
+
6
+ def single_file(file, hash=nil)
7
+ items = Worochi::Item.open(hash || file.source)
8
+ checksum = Digest::SHA2.hexdigest(items.first.content.read)
9
+ expect(items.first.class).to be(Worochi::Item)
10
+ expect(checksum).to eq(file.checksum)
11
+ expect(items.first.path).to eq(hash ? hash[:path] : file.name)
12
+ end
13
+
14
+ context 'opens a single file' do
15
+ it 'with String parameter' do
16
+ single_file(remote)
17
+ single_file(local)
18
+ end
19
+ it 'with Hash parameter' do
20
+ single_file(remote, { path: remote.path, source: remote.source })
21
+ single_file(local, { path: local.path, source: local.source })
22
+ end
23
+ end
24
+
25
+ context 'opens multiple files' do
26
+ it 'with String parameters' do
27
+ items = Worochi::Item.open([remote.source, local.source])
28
+ checksum = Digest::SHA2.hexdigest(items.last.content.read)
29
+ expect(checksum).to eq(local.checksum)
30
+ expect(items.size).to eq(2)
31
+ end
32
+ it 'with Hash parameters' do
33
+ hashes = [remote, local, remote, local].map do |file|
34
+ { path: file.path, source: file.source }
35
+ end
36
+ items = Worochi::Item.open(hashes)
37
+ checksum = Digest::SHA2.hexdigest(items.last.content.read)
38
+ expect(checksum).to eq(local.checksum)
39
+ expect(items.size).to eq(4)
40
+ end
41
+ end
42
+ end
43
+
44
+ describe '.open_single', :vcr do
45
+ it 'accepts a String' do
46
+ item = Worochi::Item.open_single(remote.source)
47
+ expect(item.class).to be(Worochi::Item)
48
+ expect(item.size).to eq(remote.size)
49
+ end
50
+
51
+ it 'accepts a Hash' do
52
+ hash = { path: local.path, source: local.source }
53
+ item = Worochi::Item.open_single(hash)
54
+ expect(item.class).to be(Worochi::Item)
55
+ expect(item.size).to eq(local.size)
56
+ end
57
+
58
+ it 'works with AWS S3 paths', :aws do
59
+ item = Worochi::Item.open_single(s3.source)
60
+ expect(item.class).to be(Worochi::Item)
61
+ checksum = Digest::SHA2.hexdigest(item.content.read)
62
+ expect(checksum).to eq(s3.checksum)
63
+ end
64
+ end
65
+
66
+ describe '#read' do
67
+ it 'reads the content' do
68
+ item = Worochi::Item.open_single(local.source)
69
+ first_word = item.read(4)
70
+ expect(first_word).to eq('This')
71
+ rest = item.read
72
+ expect(rest.size).to eq(local.size - 4)
73
+ end
74
+ end
75
+
76
+ describe '#rewind' do
77
+ it 'rewinds the content' do
78
+ item = Worochi::Item.open_single(local.source)
79
+ item.read
80
+ expect(item.read.size).to eq(0)
81
+ expect(item.rewind).to eq(0)
82
+ expect(item.read.size).to eq(local.size)
83
+ end
84
+ end
85
+ end
@@ -0,0 +1,109 @@
1
+ require 'helper'
2
+
3
+ describe Worochi do
4
+ let(:token) { 'service token' }
5
+ def create_dropbox_agent
6
+ Worochi.create(:dropbox, token)
7
+ end
8
+
9
+ def create_github_agent
10
+ Worochi.create(:github, token)
11
+ end
12
+
13
+ before do
14
+ Worochi.reset
15
+ end
16
+
17
+ describe '.size' do
18
+ it 'returns the number of active agents' do
19
+ expect(Worochi.size).to eq(Worochi.agents.size)
20
+ end
21
+ end
22
+
23
+ describe '.list' do
24
+ it 'returns the right agent names' do
25
+ a = create_dropbox_agent
26
+ expect(Worochi.list(false)).to include("0")
27
+ expect(Worochi.list(false)).to include("Dropbox")
28
+ b = create_github_agent
29
+ lines = Worochi.list(false).split("\n")
30
+ expect(lines.first).to include("Dropbox")
31
+ expect(lines.last).to include("1")
32
+ expect(lines.last).to include("GitHub")
33
+ end
34
+ end
35
+
36
+ describe '.create' do
37
+ it 'creates a single agent' do
38
+ a = Worochi.create(:github, token)
39
+ expect(a.kind_of?(Worochi::Agent)).to be_true
40
+ expect(Worochi.size).to eq(1)
41
+ end
42
+
43
+ it 'creates four agents' do
44
+ 4.times do
45
+ a = Worochi.create(:dropbox, token)
46
+ expect(a.kind_of?(Worochi::Agent)).to be_true
47
+ end
48
+ expect(Worochi.size).to eq(4)
49
+ end
50
+
51
+ it 'requires service and token' do
52
+ expect { Worochi.create }.to raise_error(ArgumentError)
53
+ expect { Worochi.create(:dropbox) }.to raise_error(ArgumentError)
54
+ end
55
+ end
56
+
57
+ describe '.reset' do
58
+ it "removes all agents" do
59
+ 5.times { create_github_agent }
60
+ expect(Worochi.size).to eq(5)
61
+ Worochi.reset
62
+ expect(Worochi.size).to eq(0)
63
+ end
64
+ end
65
+
66
+ describe '.remove_service' do
67
+ it 'removes multiple agents by service' do
68
+ create_dropbox_agent
69
+ create_github_agent
70
+ create_dropbox_agent
71
+ create_github_agent
72
+ expect(Worochi.size).to eq(4)
73
+ Worochi.remove_service(:dropbox)
74
+ create_dropbox_agent
75
+ expect(Worochi.size).to eq(3)
76
+ Worochi.remove_service(:github)
77
+ expect(Worochi.size).to eq(1)
78
+ end
79
+
80
+ it 'removes all agents' do
81
+ 4.times { create_dropbox_agent }
82
+ 4.times { create_github_agent }
83
+ expect(Worochi.size).to eq(8)
84
+ Worochi.remove_service
85
+ expect(Worochi.size).to eq(0)
86
+ end
87
+ end
88
+
89
+ describe '.agents' do
90
+ it 'returns a list of active agents' do
91
+ a = create_dropbox_agent
92
+ b = create_dropbox_agent
93
+ expect(Worochi.agents).to include(a, b)
94
+ expect(Worochi.agents.size).to eq(2)
95
+ end
96
+ end
97
+
98
+ describe '.add' do
99
+ it 'adds an agent to the list of active agents' do
100
+ a = create_dropbox_agent
101
+ 4.times { create_dropbox_agent }
102
+ expect(Worochi.agents).to include(a)
103
+ Worochi.reset
104
+ expect(Worochi.agents).not_to include(a)
105
+ Worochi.add(a)
106
+ expect(Worochi.agents).to include(a)
107
+ end
108
+ end
109
+ end
data/worochi.gemspec CHANGED
@@ -1,14 +1,37 @@
1
+ lib = File.expand_path('../lib/', __FILE__)
2
+ $:.unshift lib unless $:.include?(lib)
3
+
4
+ require 'worochi/version'
5
+
1
6
  Gem::Specification.new do |s|
2
7
  s.name = 'worochi'
3
- s.version = '0.0.0'
8
+ s.version = Worochi::VERSION
4
9
  s.date = '2013-08-02'
5
10
  s.summary = 'Worochi'
6
11
  s.description = 'Provides a standard way to interface with Ruby API wrappers provided by various cloud storage services such as Dropbox and Google Drive.'
12
+
7
13
  s.authors = ['Raven Jiang']
8
14
  s.email = ['raven@cs.stanford.edu']
9
- s.files = %w(README.md worochi.gemspec)
10
- s.files += Dir.glob('lib/**/*.rb')
11
- s.require_paths = ["lib"]
12
15
  s.homepage = 'http://rubygems.org/gems/worochi'
13
16
  s.license = 'MIT'
17
+
18
+ s.files = %w(README.md LICENSE worochi.gemspec)
19
+ s.files += Dir.glob('lib/**/*.rb')
20
+ s.test_files = Dir.glob('spec/**/*')
21
+
22
+ s.require_paths = ['lib']
23
+
24
+ s.add_runtime_dependency('aws-sdk')
25
+ s.add_runtime_dependency('dropbox-sdk') # Dropbox
26
+ s.add_runtime_dependency('octokit') # GitHub
27
+
28
+ s.add_development_dependency('rspec', ['~> 2.14.1'])
29
+ s.add_development_dependency('vcr', ['~> 2.5.0'])
30
+ s.add_development_dependency('webmock', ['~> 1.9.3'])
31
+ s.add_development_dependency('awesome_print')
32
+ s.add_development_dependency('yard')
33
+
34
+ s.post_install_message = <<-MESSAGE
35
+ RAWRRRRR!!!
36
+ MESSAGE
14
37
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: worochi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raven Jiang
@@ -9,7 +9,119 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
  date: 2013-08-02 00:00:00.000000000 Z
12
- dependencies: []
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: aws-sdk
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: dropbox-sdk
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: octokit
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 2.14.1
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 2.14.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: vcr
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 2.5.0
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 2.5.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: webmock
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 1.9.3
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 1.9.3
97
+ - !ruby/object:Gem::Dependency
98
+ name: awesome_print
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: yard
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
13
125
  description: Provides a standard way to interface with Ruby API wrappers provided
14
126
  by various cloud storage services such as Dropbox and Google Drive.
15
127
  email:
@@ -19,6 +131,7 @@ extensions: []
19
131
  extra_rdoc_files: []
20
132
  files:
21
133
  - README.md
134
+ - LICENSE
22
135
  - worochi.gemspec
23
136
  - lib/worochi/error.rb
24
137
  - lib/worochi/log.rb
@@ -30,12 +143,51 @@ files:
30
143
  - lib/worochi/agent/dropbox.rb
31
144
  - lib/worochi/helper.rb
32
145
  - lib/worochi/item.rb
146
+ - lib/worochi/version.rb
33
147
  - lib/worochi.rb
148
+ - spec/worochi/helper_spec.rb
149
+ - spec/worochi/item_spec.rb
150
+ - spec/worochi/helper/github_spec.rb
151
+ - spec/worochi/agent/dropbox_spec.rb
152
+ - spec/worochi/agent/github_spec.rb
153
+ - spec/worochi/agent_spec.rb
154
+ - spec/worochi_spec.rb
155
+ - spec/support/aws_uri_matcher.rb
156
+ - spec/support/shared_exampes_for_agents.rb
157
+ - spec/support/test_files.rb
158
+ - spec/support/test_file
159
+ - spec/cassettes/Worochi_Agent_Dropbox/_push_item_chunked/pushes_a_single_item_in_chunks.yml
160
+ - spec/cassettes/Worochi_Agent_Dropbox/_list/works_with_absolute_paths.yml
161
+ - spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_files/contains_file1.yml
162
+ - spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_files/accepts_a_different_path.yml
163
+ - spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_files/accepts_a_different_relative_path.yml
164
+ - spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_folders/contains_folder1.yml
165
+ - spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_folders/accepts_a_different_path.yml
166
+ - spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_folders/accepts_a_different_relative_path.yml
167
+ - spec/cassettes/Worochi_Agent_Dropbox/_push_item/pushes_a_single_item.yml
168
+ - spec/cassettes/Worochi_Agent_Github/_push_all/pushes_the_file_to_the_right_place.yml
169
+ - spec/cassettes/Worochi_Agent_Github/_push_all/pushes_a_list_of_items_to_create_a_new_commit.yml
170
+ - spec/cassettes/Worochi_Agent_Github/_list/works_with_absolute_paths.yml
171
+ - spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_files/contains_file1.yml
172
+ - spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_files/accepts_a_different_path.yml
173
+ - spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_files/accepts_a_different_relative_path.yml
174
+ - spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_folders/contains_folder1.yml
175
+ - spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_folders/accepts_a_different_path.yml
176
+ - spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_folders/accepts_a_different_relative_path.yml
177
+ - spec/cassettes/Worochi_Agent_Github/_source_branch/retrieves_the_master_branch_correctly.yml
178
+ - spec/cassettes/Worochi_Item/_open_single/accepts_a_String.yml
179
+ - spec/cassettes/Worochi_Item/_open_single/works_with_AWS_S3_paths.yml
180
+ - spec/cassettes/Worochi_Item/_open/opens_multiple_files/with_String_parameters.yml
181
+ - spec/cassettes/Worochi_Item/_open/opens_multiple_files/with_Hash_parameters.yml
182
+ - spec/cassettes/Worochi_Item/_open/opens_a_single_file/with_String_parameter.yml
183
+ - spec/cassettes/Worochi_Item/_open/opens_a_single_file/with_Hash_parameter.yml
184
+ - spec/helper.rb
34
185
  homepage: http://rubygems.org/gems/worochi
35
186
  licenses:
36
187
  - MIT
37
188
  metadata: {}
38
- post_install_message:
189
+ post_install_message: |
190
+ RAWRRRRR!!!
39
191
  rdoc_options: []
40
192
  require_paths:
41
193
  - lib
@@ -55,5 +207,42 @@ rubygems_version: 2.0.6
55
207
  signing_key:
56
208
  specification_version: 4
57
209
  summary: Worochi
58
- test_files: []
210
+ test_files:
211
+ - spec/worochi/helper_spec.rb
212
+ - spec/worochi/item_spec.rb
213
+ - spec/worochi/helper/github_spec.rb
214
+ - spec/worochi/agent/dropbox_spec.rb
215
+ - spec/worochi/agent/github_spec.rb
216
+ - spec/worochi/agent_spec.rb
217
+ - spec/worochi_spec.rb
218
+ - spec/support/aws_uri_matcher.rb
219
+ - spec/support/shared_exampes_for_agents.rb
220
+ - spec/support/test_files.rb
221
+ - spec/support/test_file
222
+ - spec/cassettes/Worochi_Agent_Dropbox/_push_item_chunked/pushes_a_single_item_in_chunks.yml
223
+ - spec/cassettes/Worochi_Agent_Dropbox/_list/works_with_absolute_paths.yml
224
+ - spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_files/contains_file1.yml
225
+ - spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_files/accepts_a_different_path.yml
226
+ - spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_files/accepts_a_different_relative_path.yml
227
+ - spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_folders/contains_folder1.yml
228
+ - spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_folders/accepts_a_different_path.yml
229
+ - spec/cassettes/Worochi_Agent_Dropbox/it_should_behave_like_a_service_agent/_folders/accepts_a_different_relative_path.yml
230
+ - spec/cassettes/Worochi_Agent_Dropbox/_push_item/pushes_a_single_item.yml
231
+ - spec/cassettes/Worochi_Agent_Github/_push_all/pushes_the_file_to_the_right_place.yml
232
+ - spec/cassettes/Worochi_Agent_Github/_push_all/pushes_a_list_of_items_to_create_a_new_commit.yml
233
+ - spec/cassettes/Worochi_Agent_Github/_list/works_with_absolute_paths.yml
234
+ - spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_files/contains_file1.yml
235
+ - spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_files/accepts_a_different_path.yml
236
+ - spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_files/accepts_a_different_relative_path.yml
237
+ - spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_folders/contains_folder1.yml
238
+ - spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_folders/accepts_a_different_path.yml
239
+ - spec/cassettes/Worochi_Agent_Github/it_should_behave_like_a_service_agent/_folders/accepts_a_different_relative_path.yml
240
+ - spec/cassettes/Worochi_Agent_Github/_source_branch/retrieves_the_master_branch_correctly.yml
241
+ - spec/cassettes/Worochi_Item/_open_single/accepts_a_String.yml
242
+ - spec/cassettes/Worochi_Item/_open_single/works_with_AWS_S3_paths.yml
243
+ - spec/cassettes/Worochi_Item/_open/opens_multiple_files/with_String_parameters.yml
244
+ - spec/cassettes/Worochi_Item/_open/opens_multiple_files/with_Hash_parameters.yml
245
+ - spec/cassettes/Worochi_Item/_open/opens_a_single_file/with_String_parameter.yml
246
+ - spec/cassettes/Worochi_Item/_open/opens_a_single_file/with_Hash_parameter.yml
247
+ - spec/helper.rb
59
248
  has_rdoc: