ignorance 0.0.2 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 6fed72f749cca9fe2ce55acdace2c685d3dc0db5b79c2ee82a28c2c56040f9a4
4
+ data.tar.gz: 987d1ad544356035f1ef2d6e4ff6dbb50f3ae8fc26c9a98e6003cfb8994d4de6
5
+ SHA512:
6
+ metadata.gz: abdeacaa9126a09eba512a0229c10ab6943375b2a8969a3617418340b7798832069f6f3590d681b0b788751444a9e86f7db63316a093a9b4598b44dcef9691ba
7
+ data.tar.gz: 59d96b4c5b3a92657293479895e0be63c99a06b9e4f602b9af1431d0d933f809f9157991b591858b9dbd1341b1a18c7383172d547ed1480a08f577c0ae06e1f1
@@ -0,0 +1,4 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.7.1
4
+ - jruby-9.2.9.0
@@ -17,10 +17,10 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_dependency 'highline', '~> 1.6.15'
20
+ gem.add_dependency 'highline', '~> 2.0'
21
21
 
22
- gem.add_development_dependency 'rspec', '~> 2.12.0'
23
- gem.add_development_dependency 'fakefs', '~> 0.4.2'
24
- gem.add_development_dependency 'rake', '10.0.3'
25
- gem.add_development_dependency 'pry', '~> 0.9.11.4'
22
+ gem.add_development_dependency 'rspec', '~> 3.9'
23
+ gem.add_development_dependency 'fakefs', '~> 1.2'
24
+ gem.add_development_dependency 'rake', '13.0.1'
25
+ gem.add_development_dependency 'pry', '~> 0.13'
26
26
  end
@@ -16,7 +16,7 @@ module Ignorance
16
16
 
17
17
  def ignored
18
18
  (file_contents + user_ignore_file_contents).reject do |t|
19
- t.match /^\#/
19
+ t.match(/^\#/)
20
20
  end.map(&:chomp)
21
21
  end
22
22
 
@@ -25,7 +25,7 @@ module Ignorance
25
25
  end
26
26
 
27
27
  def user_ignore_file
28
- @user_ignore_file ||= `git config --global --get core.excludesfile`.chomp
28
+ @user_ignore_file ||= `git config --global --get core.excludesfile || echo '~/.gitignore'`.chomp
29
29
  end
30
30
 
31
31
  end
@@ -18,14 +18,14 @@ module Ignorance
18
18
  end
19
19
 
20
20
  def included?(token)
21
- file_contents.include? token
21
+ file_contents.include?(token)
22
22
  end
23
23
 
24
24
  def ignore!(token, comment=nil)
25
25
  return true if ignored?(token)
26
26
  if comment
27
27
  anchor = commentified comment
28
- if included? anchor
28
+ if included?(anchor)
29
29
  insert_after anchor, token
30
30
  else
31
31
  append "\n"
@@ -42,11 +42,11 @@ module Ignorance
42
42
  private
43
43
 
44
44
  def ignored
45
- file_contents.reject{ |t| t.match /^\#/ }.map(&:chomp)
45
+ file_contents.reject{ |t| t.match(/^\#/) }.map(&:chomp)
46
46
  end
47
47
 
48
48
  def file_contents
49
- @file_contents ||= exists? ? File.readlines(ignore_file) : []
49
+ @file_contents ||= exists? ? File.readlines(ignore_file).map{|line| line.chomp} : []
50
50
  end
51
51
 
52
52
  def insert_at(index, token)
@@ -72,7 +72,7 @@ module Ignorance
72
72
  end
73
73
 
74
74
  def blank_line_at?(insert_index)
75
- file_contents[insert_index].match(/^[\s\n]*$/)
75
+ file_contents[insert_index].match(/^[\s]*$/)
76
76
  end
77
77
 
78
78
  def commentified(comment)
@@ -1,3 +1,3 @@
1
1
  module Ignorance
2
- VERSION = "0.0.2"
2
+ VERSION = "1.0.0"
3
3
  end
@@ -15,15 +15,15 @@ module Ignorance
15
15
  let(:user_ignore_file) { '~/.gitignore' }
16
16
  before do
17
17
  ignorefile_write %w[other stuff here].join("\n")
18
+ Dir.mkdir('~/')
18
19
  File.open(user_ignore_file, 'w') do |fh|
19
20
  fh.write "#{token}\n"
20
21
  end
21
- subject.stub(:user_ignore_file).and_return(user_ignore_file)
22
22
  end
23
23
 
24
24
  specify "then the file is ignored" do
25
- File.read('~/.gitignore').should match /#{token}/
26
- subject.ignored?(token).should be_true
25
+ expect(File.read('~/.gitignore')).to match(/#{token}/)
26
+ expect(subject).to be_ignored(token)
27
27
  end
28
28
  end
29
29
 
@@ -18,7 +18,7 @@ shared_examples Ignorance do
18
18
  before { ignorefile_write "something-else.txt\n" }
19
19
 
20
20
  it "prints warn (STDERR)" do
21
- expect( stderr_from { Ignorance.advise token } ).to match /WARNING:.*add "#{token}" to .*#{ignore_file}/
21
+ expect( stderr_from { Ignorance.advise token } ).to match(/WARNING:.*add "#{token}" to .*#{ignore_file}/)
22
22
  end
23
23
  end
24
24
  end
@@ -56,13 +56,13 @@ shared_examples Ignorance do
56
56
 
57
57
  context "user agrees (y)" do
58
58
  specify do
59
- expect( user_types("y") { Ignorance.negotiate token } ).to match /added "#{token}"/i
59
+ expect( user_types("y") { Ignorance.negotiate token } ).to match(/added "#{token}"/i)
60
60
  end
61
61
  end
62
62
 
63
63
  context "user disagrees (n)" do
64
64
  specify do
65
- expect( user_types("n") { Ignorance.negotiate token } ).to match /WARNING:.*add "#{token}" to .*#{ignore_file}/
65
+ expect( user_types("n") { Ignorance.negotiate token } ).to match(/WARNING:.*add "#{token}" to .*#{ignore_file}/)
66
66
  end
67
67
  end
68
68
  end
@@ -74,7 +74,7 @@ shared_examples Ignorance do
74
74
 
75
75
  it "does not change the ignore file" do
76
76
  Ignorance.guarantee! token, "a comment"
77
- ignorefile_contents.should == "#{token}\n"
77
+ expect(ignorefile_contents).to eq("#{token}\n")
78
78
  end
79
79
  end
80
80
 
@@ -83,7 +83,7 @@ shared_examples Ignorance do
83
83
 
84
84
  it "adds to the ignore file" do
85
85
  Ignorance.guarantee! token, "a comment"
86
- ignorefile_contents.should == "stuff.txt\n\n# a comment\n#{token}\n"
86
+ expect(ignorefile_contents).to eq("stuff.txt\n\n# a comment\n#{token}\n")
87
87
  end
88
88
  end
89
89
  end
@@ -2,7 +2,9 @@ module Ignorance
2
2
  shared_examples "an ignore file" do
3
3
 
4
4
  it { should respond_to :name, :exists?, :its_a_repo?, :ignored?, :ignore! }
5
- its(:name) { should == ignore_file }
5
+ it "has a name" do
6
+ expect(subject.name).to eq(ignore_file)
7
+ end
6
8
 
7
9
  describe "#exists?" do
8
10
 
@@ -21,12 +23,16 @@ module Ignorance
21
23
  describe "#its_a_repo?" do
22
24
 
23
25
  context "when the repo subdirectory does NOT exist" do
24
- it { should_not be_its_a_repo }
26
+ it "is not a repo" do
27
+ expect(subject).to_not be_its_a_repo
28
+ end
25
29
  end
26
30
 
27
31
  context "when the repo subdirectory DOES exist" do
28
32
  before { Dir.mkdir repo_dir }
29
- it { should be_its_a_repo }
33
+ it "is a repo" do
34
+ expect(subject).to be_its_a_repo
35
+ end
30
36
  end
31
37
 
32
38
  end
@@ -36,8 +42,8 @@ module Ignorance
36
42
 
37
43
  context "when the ignore file doesn't exist" do
38
44
  specify "then the file is not ignored, duh" do
39
- subject.should_not exist
40
- subject.ignored?(token).should == false
45
+ expect(subject).to_not exist
46
+ expect(subject.ignored?(token)).to be_falsy
41
47
  end
42
48
  end
43
49
 
@@ -45,7 +51,9 @@ module Ignorance
45
51
 
46
52
  context "when the ignore file doesn't include the token" do
47
53
  before { ignorefile_write %w[other stuff here].join("\n") }
48
- it { should_not be_ignored(token) }
54
+ it "is not ignored" do
55
+ expect(subject).to_not be_ignored(token)
56
+ end
49
57
  end
50
58
 
51
59
  context "when the ignore file DOES include the token" do
@@ -62,18 +70,18 @@ module Ignorance
62
70
 
63
71
  context "there is no ignore file" do
64
72
  it "writes to the ignore file" do
65
- subject.should_not exist
73
+ expect(subject).to_not exist
66
74
  subject.ignore! token
67
- ignored_tokens.should include token
75
+ expect(ignored_tokens).to include(token)
68
76
  end
69
77
  end
70
78
 
71
79
  context "there is already an ignore file" do
72
80
  before { ignorefile_write "*.swp\n" }
73
81
  specify do
74
- ignored_tokens.should include '*.swp'
82
+ expect(ignored_tokens).to include('*.swp')
75
83
  subject.ignore! token
76
- ignored_tokens.should include '*.swp'
84
+ expect(ignored_tokens).to include('*.swp')
77
85
  end
78
86
  end
79
87
 
@@ -82,9 +90,9 @@ module Ignorance
82
90
  before { ignorefile_write content }
83
91
 
84
92
  it "doesn't write to the ignore file" do
85
- File.any_instance.should_not_receive(:write)
93
+ expect_any_instance_of(File).to_not receive(:write)
86
94
  subject.ignore!(token)
87
- ignored_tokens.should include token
95
+ expect(ignored_tokens).to include(token)
88
96
  end
89
97
  end
90
98
 
@@ -92,7 +100,7 @@ module Ignorance
92
100
  context "when the comment wasn't already in the file" do
93
101
  specify do
94
102
  subject.ignore! token, "# hide these files!"
95
- ignorefile_contents.should match /# hide these files!\n#{token}\n/
103
+ expect(ignorefile_contents).to match(/# hide these files!\n#{token}\n/)
96
104
  end
97
105
  end
98
106
 
@@ -104,7 +112,7 @@ module Ignorance
104
112
 
105
113
  specify do
106
114
  subject.ignore! token, comment
107
- ignorefile_contents.should match /# #{comment}\n#{token}\n/
115
+ expect(ignorefile_contents).to match(/# #{comment}\n#{token}\n/)
108
116
  end
109
117
  end
110
118
 
@@ -117,11 +125,11 @@ barfile.md
117
125
  other-things
118
126
  IGNORE
119
127
  end
120
- let(:expected) { Regexp.new /# #{comment}\nbarfile\.md\n#{token}\n\nother-things/ }
128
+ let(:expected) { Regexp.new(/# #{comment}\nbarfile\.md\n#{token}\n\nother-things/) }
121
129
 
122
130
  specify do
123
131
  subject.ignore! token, comment
124
- ignorefile_contents.should match expected
132
+ expect(ignorefile_contents).to match(expected)
125
133
  end
126
134
  end
127
135
 
@@ -132,11 +140,11 @@ other-things
132
140
  barfile.md
133
141
  IGNORE
134
142
  end
135
- let(:expected) { Regexp.new /# #{comment}\nbarfile\.md\n#{token}\n/ }
143
+ let(:expected) { Regexp.new(/# #{comment}\nbarfile\.md\n#{token}\n/) }
136
144
 
137
145
  specify do
138
146
  subject.ignore! token, comment
139
- ignorefile_contents.should match expected
147
+ expect(ignorefile_contents).to match(expected)
140
148
  end
141
149
  end
142
150
  end
@@ -1,3 +1,4 @@
1
+ require 'pp'
1
2
  require 'fakefs/spec_helpers'
2
3
  require File.join(File.dirname(__FILE__), 'ignorefile_helpers')
3
4
  require File.join(File.dirname(__FILE__), 'io_helpers')
@@ -9,7 +10,6 @@ $LOAD_PATH.unshift(File.expand_path(File.join(here, '..', '..', 'lib')))
9
10
  Dir[File.join(here, "shared_examples") + "/**/*.rb"].sort.map{|f| File.basename f }.map{|f| "shared_examples/#{f}"}.each {|f| require f}
10
11
 
11
12
  RSpec.configure do |cfg|
12
- cfg.treat_symbols_as_metadata_keys_with_true_values = true
13
13
  cfg.include FakeFS::SpecHelpers, fakefs: true
14
14
  cfg.include IgnorefileHelpers, fakefs: true
15
15
  cfg.include IOHelpers, capture_io: true
metadata CHANGED
@@ -1,96 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ignorance
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
5
- prerelease:
4
+ version: 1.0.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Joel Helbling
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-31 00:00:00.000000000 Z
11
+ date: 2020-05-10 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: highline
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: 1.6.15
19
+ version: '2.0'
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: 1.6.15
26
+ version: '2.0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ~>
31
+ - - "~>"
36
32
  - !ruby/object:Gem::Version
37
- version: 2.12.0
33
+ version: '3.9'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ~>
38
+ - - "~>"
44
39
  - !ruby/object:Gem::Version
45
- version: 2.12.0
40
+ version: '3.9'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: fakefs
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ~>
45
+ - - "~>"
52
46
  - !ruby/object:Gem::Version
53
- version: 0.4.2
47
+ version: '1.2'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ~>
52
+ - - "~>"
60
53
  - !ruby/object:Gem::Version
61
- version: 0.4.2
54
+ version: '1.2'
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rake
64
57
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
58
  requirements:
67
59
  - - '='
68
60
  - !ruby/object:Gem::Version
69
- version: 10.0.3
61
+ version: 13.0.1
70
62
  type: :development
71
63
  prerelease: false
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
66
  - - '='
76
67
  - !ruby/object:Gem::Version
77
- version: 10.0.3
68
+ version: 13.0.1
78
69
  - !ruby/object:Gem::Dependency
79
70
  name: pry
80
71
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
72
  requirements:
83
- - - ~>
73
+ - - "~>"
84
74
  - !ruby/object:Gem::Version
85
- version: 0.9.11.4
75
+ version: '0.13'
86
76
  type: :development
87
77
  prerelease: false
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ~>
80
+ - - "~>"
92
81
  - !ruby/object:Gem::Version
93
- version: 0.9.11.4
82
+ version: '0.13'
94
83
  description: Ensures specified files are ignored by Git, Mercurial or SVN.
95
84
  email:
96
85
  - joel@joelhelbling.com
@@ -98,7 +87,8 @@ executables: []
98
87
  extensions: []
99
88
  extra_rdoc_files: []
100
89
  files:
101
- - .gitignore
90
+ - ".gitignore"
91
+ - ".travis.yml"
102
92
  - Gemfile
103
93
  - LICENSE.txt
104
94
  - README.md
@@ -124,33 +114,25 @@ files:
124
114
  - spec/spec_helper.rb
125
115
  homepage: http://github.com/joelhelbling/ignorance
126
116
  licenses: []
117
+ metadata: {}
127
118
  post_install_message:
128
119
  rdoc_options: []
129
120
  require_paths:
130
121
  - lib
131
122
  required_ruby_version: !ruby/object:Gem::Requirement
132
- none: false
133
123
  requirements:
134
- - - ! '>='
124
+ - - ">="
135
125
  - !ruby/object:Gem::Version
136
126
  version: '0'
137
- segments:
138
- - 0
139
- hash: -21553841
140
127
  required_rubygems_version: !ruby/object:Gem::Requirement
141
- none: false
142
128
  requirements:
143
- - - ! '>='
129
+ - - ">="
144
130
  - !ruby/object:Gem::Version
145
131
  version: '0'
146
- segments:
147
- - 0
148
- hash: -21553841
149
132
  requirements: []
150
- rubyforge_project:
151
- rubygems_version: 1.8.25
133
+ rubygems_version: 3.1.2
152
134
  signing_key:
153
- specification_version: 3
135
+ specification_version: 4
154
136
  summary: Ignorance helps your code be considerate of its users by protecting sensitive
155
137
  information from version control.
156
138
  test_files: