dotify 0.2.0 → 0.3.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.
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+ require 'dotify'
3
+ require 'dotify/version_checker'
4
+
5
+ describe Dotify::VersionChecker do
6
+ it Dotify::VersionChecker, "#run_check!" do
7
+ VCR.use_cassette "version_check" do
8
+ Dotify::VersionChecker.version.should == '0.2.0'
9
+ end
10
+ end
11
+ describe Dotify::VersionChecker, "#out_of_date?" do
12
+ it "should be return the correct value if version is not current" do
13
+ Dotify::VersionChecker.stub(:current?).and_return(false)
14
+ Dotify::VersionChecker.out_of_date?.should == true
15
+ Dotify::VersionChecker.stub(:current?).and_return(true)
16
+ Dotify::VersionChecker.out_of_date?.should == false
17
+ end
18
+ end
19
+ describe Dotify::VersionChecker, "#current?" do
20
+ it "should be false if version is not current" do
21
+ with_constants "Dotify::VERSION" => '0.2.0' do
22
+ Dotify::VersionChecker.stub(:version).and_return('0.1.9')
23
+ Dotify::VersionChecker.current?.should == false
24
+ end
25
+ end
26
+ it "should be true if version is current" do
27
+ with_constants "Dotify::VERSION" => '0.2.0' do
28
+ Dotify::VersionChecker.stub(:version).and_return('0.2.0')
29
+ Dotify::VersionChecker.current?.should == true
30
+ end
31
+ end
32
+ end
33
+ end
@@ -1,2 +1,5 @@
1
- profile: 'mattdbridges'
2
- shell: 'zsh'
1
+ ignore:
2
+ dotfiles:
3
+ - '.gemrc'
4
+ dotify:
5
+ - '.gitmodule'
@@ -0,0 +1,74 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://rubygems.org/api/v1/versions/dotify.json
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Server:
20
+ - nginx/1.2.0
21
+ Date:
22
+ - Wed, 27 Jun 2012 23:10:05 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Content-Length:
26
+ - '1793'
27
+ Connection:
28
+ - keep-alive
29
+ X-Powered-By:
30
+ - Phusion Passenger (mod_rails/mod_rack) 3.0.11
31
+ X-Frame-Options:
32
+ - sameorigin
33
+ X-Xss-Protection:
34
+ - 1; mode=block
35
+ X-Ua-Compatible:
36
+ - IE=Edge,chrome=1
37
+ Etag:
38
+ - ! '"5677f4550f3cae2a62a538ddbdac5ed0"'
39
+ Cache-Control:
40
+ - max-age=0, private, must-revalidate
41
+ X-Request-Id:
42
+ - 52fdb58a9da1c5fed008181f55035d08
43
+ X-Runtime:
44
+ - '0.020066'
45
+ X-Rack-Cache:
46
+ - miss
47
+ Status:
48
+ - '200'
49
+ body:
50
+ encoding: US-ASCII
51
+ string: ! '[{"authors":"Matt Bridges","built_at":"2012-06-26T00:00:00Z","description":"A
52
+ CLI Tool for managing your dotfiles","downloads_count":45,"number":"0.2.0","summary":"A
53
+ CLI Tool for managing your dotfiles","platform":"ruby","prerelease":false},{"authors":"Matt
54
+ Bridges","built_at":"2012-06-26T00:00:00Z","description":"A CLI Tool for managing
55
+ your dotfiles","downloads_count":70,"number":"0.1.1","summary":"A CLI Tool
56
+ for managing your dotfiles","platform":"ruby","prerelease":false},{"authors":"Matt
57
+ Bridges","built_at":"2012-06-25T00:00:00Z","description":"A CLI Tool for managing
58
+ your dotfiles","downloads_count":47,"number":"0.1","summary":"A CLI Tool for
59
+ managing your dotfiles","platform":"ruby","prerelease":false},{"authors":"Matt
60
+ Bridges","built_at":"2012-06-19T00:00:00Z","description":"A CLI Tool for managing
61
+ your dotfiles and profiles.","downloads_count":63,"number":"0.0.3","summary":"A
62
+ CLI Tool for managing your dotfiles and profiles.","platform":"ruby","prerelease":false},{"authors":"Matt
63
+ Bridges","built_at":"2012-06-18T00:00:00Z","description":"A CLI Tool for managing
64
+ your dotfiles and profiles.","downloads_count":67,"number":"0.0.2.1","summary":"A
65
+ CLI Tool for managing your dotfiles and profiles.","platform":"ruby","prerelease":false},{"authors":"Matt
66
+ Bridges","built_at":"2012-06-18T00:00:00Z","description":"A CLI Tool for managing
67
+ your dotfiles and profiles.","downloads_count":63,"number":"0.0.2","summary":"A
68
+ CLI Tool for managing your dotfiles and profiles.","platform":"ruby","prerelease":false},{"authors":"Matt
69
+ Bridges","built_at":"2012-06-13T00:00:00Z","description":"A CLI Tool for managing
70
+ your dotfiles and profiles.","downloads_count":71,"number":"0.0.1","summary":"A
71
+ CLI Tool for managing your dotfiles and profiles.","platform":"ruby","prerelease":false}]'
72
+ http_version:
73
+ recorded_at: Wed, 27 Jun 2012 23:06:21 GMT
74
+ recorded_with: VCR 2.2.2
@@ -13,6 +13,3 @@ RSpec.configure do |config|
13
13
  config.run_all_when_everything_filtered = true
14
14
  config.filter_run :focus
15
15
  end
16
-
17
- ENV['DOTIFY_DIR_NAME'] = '.dotify-test'
18
- ENV['DOTIFY_PATH'] = '~/.dotify-test'
@@ -0,0 +1,6 @@
1
+ require 'vcr'
2
+
3
+ VCR.configure do |c|
4
+ c.cassette_library_dir = 'spec/fixtures/vcr'
5
+ c.hook_into :webmock
6
+ end
@@ -0,0 +1,49 @@
1
+ module Kernel
2
+ def silence_warnings
3
+ with_warnings(nil) { yield }
4
+ end
5
+
6
+ def with_warnings(flag)
7
+ old_verbose, $VERBOSE = $VERBOSE, flag
8
+ yield
9
+ ensure
10
+ $VERBOSE = old_verbose
11
+ end
12
+ end
13
+
14
+ def constantize(camel_cased_word)
15
+ names = camel_cased_word.split('::')
16
+ names.shift if names.empty? || names.first.empty?
17
+
18
+ constant = Object
19
+ names.each do |name|
20
+ constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name)
21
+ end
22
+ constant
23
+ end
24
+
25
+ def parse(constant)
26
+ source, _, constant_name = constant.to_s.rpartition('::')
27
+
28
+ [constantize(source), constant_name]
29
+ end
30
+
31
+ def with_constants(constants, &block)
32
+ saved_constants = {}
33
+ constants.each do |constant, val|
34
+ source_object, const_name = parse(constant)
35
+
36
+ saved_constants[constant] = source_object.const_get(const_name)
37
+ Kernel::silence_warnings { source_object.const_set(const_name, val) }
38
+ end
39
+
40
+ begin
41
+ block.call
42
+ ensure
43
+ constants.each do |constant, val|
44
+ source_object, const_name = parse(constant)
45
+
46
+ Kernel::silence_warnings { source_object.const_set(const_name, saved_constants[constant]) }
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,14 @@
1
+ # Ignoring files in ~/.dotify when linking:
2
+ #
3
+ # ignore:
4
+ # dotify:
5
+ # - '.git'
6
+ # - '.gitignore'
7
+ # - '.gitmodules'
8
+ #
9
+ # Ignoring files in the home directory when linking:
10
+ #
11
+ # ignore:
12
+ # dotify:
13
+ # - '.rbenv'
14
+ # - '.rvm'
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dotify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.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-06-26 00:00:00.000000000 Z
12
+ date: 2012-06-28 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: thor
@@ -27,6 +27,22 @@ dependencies:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
29
  version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: json
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
30
46
  - !ruby/object:Gem::Dependency
31
47
  name: rspec
32
48
  requirement: !ruby/object:Gem::Requirement
@@ -43,6 +59,38 @@ dependencies:
43
59
  - - ! '>='
44
60
  - !ruby/object:Gem::Version
45
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: webmock
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: vcr
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
46
94
  description: A CLI Tool for managing your dotfiles
47
95
  email:
48
96
  - mbridges.91@gmail.com
@@ -64,15 +112,22 @@ files:
64
112
  - lib/dotify/cli.rb
65
113
  - lib/dotify/config.rb
66
114
  - lib/dotify/errors.rb
115
+ - lib/dotify/file_list.rb
67
116
  - lib/dotify/files.rb
68
117
  - lib/dotify/version.rb
118
+ - lib/dotify/version_checker.rb
69
119
  - spec/dotify/cli_spec.rb
70
120
  - spec/dotify/config_spec.rb
121
+ - spec/dotify/file_list_spec.rb
71
122
  - spec/dotify/files_spec.rb
123
+ - spec/dotify/version_checker_spec.rb
72
124
  - spec/fixtures/.dotrc-default
73
- - spec/fixtures/.dotrc-mattbridges
125
+ - spec/fixtures/vcr/version_check.yml
74
126
  - spec/spec_helper.rb
75
- - spec/support/fake.rb
127
+ - spec/support/vcr.rb
128
+ - spec/support/with_constants.rb
129
+ - templates/.dotrc
130
+ - templates/.gitkeep
76
131
  homepage: https://github.com/mattdbridges/dotify
77
132
  licenses: []
78
133
  post_install_message:
@@ -100,8 +155,11 @@ summary: A CLI Tool for managing your dotfiles
100
155
  test_files:
101
156
  - spec/dotify/cli_spec.rb
102
157
  - spec/dotify/config_spec.rb
158
+ - spec/dotify/file_list_spec.rb
103
159
  - spec/dotify/files_spec.rb
160
+ - spec/dotify/version_checker_spec.rb
104
161
  - spec/fixtures/.dotrc-default
105
- - spec/fixtures/.dotrc-mattbridges
162
+ - spec/fixtures/vcr/version_check.yml
106
163
  - spec/spec_helper.rb
107
- - spec/support/fake.rb
164
+ - spec/support/vcr.rb
165
+ - spec/support/with_constants.rb
@@ -1,3 +0,0 @@
1
- profile: 'mattdbridges'
2
- shell: 'zsh'
3
- does_nothing: 'another'
@@ -1,39 +0,0 @@
1
- require 'fileutils'
2
-
3
- class Fake
4
-
5
- def self.paths
6
- path = File.dirname(File.dirname(__FILE__))
7
- fake_root = File.join(path, 'fake-root')
8
- dotify = File.join(fake_root, '.dotify')
9
- [fake_root, dotify]
10
- end
11
-
12
- def self.tearup
13
- fake_root, dotify = paths
14
- FileUtils.mkdir_p fake_root
15
- reset
16
- end
17
-
18
- def self.teardown
19
- fake_root, dotify = paths
20
- FileUtils.rm_rf fake_root
21
- end
22
-
23
- def self.reset
24
- fake_root, dotify = paths
25
- FileUtils.mkdir_p dotify
26
- FileUtils.touch File.join(dotify, '.vimrc')
27
- FileUtils.touch File.join(dotify, '.bashrc')
28
- FileUtils.touch File.join(dotify, '.zshrc')
29
- end
30
-
31
- def self.root_path
32
- fake_root, dotify = paths
33
- fake_root
34
- end
35
- def self.dotify_path
36
- fake_root, dotify = paths
37
- dotify
38
- end
39
- end