git-dropbox 0.1.0 → 0.2.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.
@@ -3,9 +3,9 @@
3
3
  require 'rubygems'
4
4
 
5
5
  begin
6
- require 'git/dropbox/cli'
6
+ require 'git/dropbox'
7
7
  rescue LoadError => e
8
- warn 'Could not load "git/dropbox/cli"'
8
+ warn 'Could not load "git/dropbox"'
9
9
  exit -1
10
10
  end
11
11
 
@@ -1 +1,9 @@
1
- require 'git/dropbox/version'
1
+ module Git
2
+ module Dropbox
3
+ require 'git/dropbox/version'
4
+ autoload :Repository, 'git/dropbox/repository'
5
+ autoload :CLI, 'git/dropbox/cli'
6
+ autoload :Config, 'git/dropbox/config'
7
+ end
8
+ end
9
+
@@ -4,18 +4,31 @@ module Git
4
4
  module Dropbox
5
5
  class CLI < Thor
6
6
 
7
- DROPBOX_GIT_CMD = File.join(File.dirname(__FILE__), "git-dropbox-org.sh")
8
7
 
9
8
  desc 'sync', 'Syncs current git repository to dropbox folder'
10
9
 
11
10
  def sync
12
- system DROPBOX_GIT_CMD
11
+ config = Git::Dropbox::Config.load
12
+ Repository.new(config).sync(Dir.pwd)
13
13
  end
14
14
 
15
+ desc 'init', 'Initialize this gem'
16
+
17
+ def init
18
+ folder = "#{ENV['HOME']}/Dropbox/git"
19
+ Git::Dropbox::Config.init!(folder)
20
+ end
21
+
22
+ desc "list", "Shows all repositories"
23
+
24
+ def list
25
+ config = Git::Dropbox::Config.load
26
+ config['repositories'].each { |r| puts r }
27
+ end
28
+
29
+
15
30
  end
16
31
  end
17
32
  end
18
33
 
19
- #Git::Dropbox::CLI.start
20
-
21
34
 
@@ -0,0 +1,32 @@
1
+ module Git
2
+ module Dropbox
3
+ require "yaml"
4
+ class Config < Hash
5
+
6
+ def self.load
7
+ YAML.load_file(config_file)
8
+ end
9
+
10
+ def self.config_file
11
+ folder = `git config dropbox.folder`.split.first
12
+ "#{folder}/git-dropbox.yml"
13
+ end
14
+
15
+ def self.init!(folder)
16
+ setup_git_folder(folder)
17
+ self.new.save
18
+ end
19
+
20
+ def self.setup_git_folder(folder)
21
+ system "mkdir -p #{folder}"
22
+ system "git config --global dropbox.folder '#{folder}'"
23
+ end
24
+
25
+
26
+ def save
27
+ File.open(Config.config_file(), 'w') { |f| f.write(self.to_yaml) }
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,18 @@
1
+ class Repository
2
+
3
+ DROPBOX_GIT_CMD = File.join(File.dirname(__FILE__), "git-dropbox-org.sh")
4
+
5
+ def initialize(config)
6
+ @config = config
7
+ end
8
+
9
+ def sync(repo)
10
+ puts "About to sync #{repo}"
11
+ system DROPBOX_GIT_CMD
12
+ @config['repositories'] ||= []
13
+ @config['repositories'] << repo
14
+ @config['repositories'].uniq!
15
+ @config.save
16
+ end
17
+
18
+ end
@@ -1,6 +1,6 @@
1
1
  module Git
2
2
  module Dropbox
3
3
  # git-dropbox version
4
- VERSION = "0.1.0"
4
+ VERSION = "0.2.0"
5
5
  end
6
6
  end
@@ -1,5 +1,4 @@
1
1
  require 'spec_helper'
2
- require 'git/dropbox'
3
2
 
4
3
  describe Git::Dropbox do
5
4
  it "should have a VERSION constant" do
@@ -1,4 +1,5 @@
1
1
  require 'rspec'
2
2
  require 'git/dropbox/version'
3
+ require 'git/dropbox'
3
4
 
4
5
  include Git::Dropbox
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: git-dropbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-08-02 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
16
- requirement: &2157039780 !ruby/object:Gem::Requirement
16
+ requirement: &2155430380 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.15.4
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2157039780
24
+ version_requirements: *2155430380
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &2157036680 !ruby/object:Gem::Requirement
27
+ requirement: &2155429880 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *2157036680
35
+ version_requirements: *2155429880
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &2157034060 !ruby/object:Gem::Requirement
38
+ requirement: &2155429420 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0.8'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *2157034060
46
+ version_requirements: *2155429420
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rspec
49
- requirement: &2157032700 !ruby/object:Gem::Requirement
49
+ requirement: &2155428900 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '2.4'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *2157032700
57
+ version_requirements: *2155428900
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rubygems-tasks
60
- requirement: &2157020500 !ruby/object:Gem::Requirement
60
+ requirement: &2155428400 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0.2'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2157020500
68
+ version_requirements: *2155428400
69
69
  description: Gem mirrors your git repositorys in dropbox folder
70
70
  email: lukasz.kaniowski@gmail.com
71
71
  executables:
@@ -84,7 +84,9 @@ files:
84
84
  - git-dropbox.gemspec
85
85
  - lib/git/dropbox.rb
86
86
  - lib/git/dropbox/cli.rb
87
+ - lib/git/dropbox/config.rb
87
88
  - lib/git/dropbox/git-dropbox-org.sh
89
+ - lib/git/dropbox/repository.rb
88
90
  - lib/git/dropbox/version.rb
89
91
  - spec/dropbox_spec.rb
90
92
  - spec/spec_helper.rb
@@ -103,7 +105,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
103
105
  version: '0'
104
106
  segments:
105
107
  - 0
106
- hash: 3520450908102992967
108
+ hash: 2521307909805871201
107
109
  required_rubygems_version: !ruby/object:Gem::Requirement
108
110
  none: false
109
111
  requirements: