rb_tags 0.2.2 → 0.3.0

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: 31a65553f270a4c1fdf664e4a295c1b41f172984
4
- data.tar.gz: 08bc92bb09cb9924fa9e5a2379dd913dc4d03afc
3
+ metadata.gz: da7bf6d417ead19868348089b51f7860b796c7ff
4
+ data.tar.gz: 51576d365b56280e9da7887d07fb7e7b05cdccc6
5
5
  SHA512:
6
- metadata.gz: 63e08a431aa34560ea48ee7b8828206905badcf0bad6e0af7b933d99a41f1f8a9d5f8d2bf13b9abe2bd6d65343b0e859564f6ca810c7e41dda1a0a0c6816d891
7
- data.tar.gz: 962b6f517599e90b9cd084fa555d20d3684aeb840c55279fcc1e0244074257caa11f931f76df8394ac6ad4942ea9e5dfc752e04b91f756e2df1a6a3606d28671
6
+ metadata.gz: 1e61f72619aaa01e06efe28510e0833624e0c4cbe3c5b16d91db36df07f903813dfc5e0031978b8b74d47bc530bc980f2e6c44cee0e669f45e570a6abd4ad8c4
7
+ data.tar.gz: d7461496821da150d5d8f8b6a42eea1b9948d98bb1c050427ff7a09c5c33b60903eed85f0ffa5aa1e5403c3ff3a0d3c77e5ee487591f3034424409665d792fd2
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rb_tags (0.2.2)
4
+ rb_tags (0.3.0)
5
5
  awesome_print
6
6
  bundler
7
7
  colorize
@@ -15,8 +15,11 @@ GEM
15
15
  specs:
16
16
  awesome_print (1.6.1)
17
17
  blankslate (3.1.3)
18
+ byebug (5.0.0)
19
+ columnize (= 0.9.0)
18
20
  coderay (1.1.0)
19
21
  colorize (0.7.7)
22
+ columnize (0.9.0)
20
23
  diff-lcs (1.2.5)
21
24
  docile (1.1.5)
22
25
  ffi (1.9.10)
@@ -57,6 +60,9 @@ GEM
57
60
  coderay (~> 1.1.0)
58
61
  method_source (~> 0.8.1)
59
62
  slop (~> 3.4)
63
+ pry-byebug (3.2.0)
64
+ byebug (~> 5.0)
65
+ pry (~> 0.10)
60
66
  rake (10.4.2)
61
67
  rb-fsevent (0.9.5)
62
68
  rb-inotify (0.9.5)
@@ -90,6 +96,8 @@ PLATFORMS
90
96
  DEPENDENCIES
91
97
  guard-bundler
92
98
  guard-rspec
99
+ pry
100
+ pry-byebug
93
101
  rb-fsevent
94
102
  rb_tags!
95
103
  rspec
data/bin/rb_tags CHANGED
@@ -36,6 +36,8 @@ command :tag do |c|
36
36
  # switches
37
37
  c.desc 'tag also bundled gems'
38
38
  c.switch [:gems], :default_value => false
39
+ c.desc 'forces deleting of tag file before tagging'
40
+ c.switch [:force], :default_value => false
39
41
 
40
42
  c.action do |global_options,options,args|
41
43
  generate(options)
@@ -2,13 +2,17 @@ module YamlTasks
2
2
  # # WRITE
3
3
  def write_to_yaml(dir: nil, this: {})
4
4
  db = YAML::Store.new(store(dir), thread_safe: true)
5
- db.transaction { db["tags"] = this } unless this.nil?
5
+ db.transaction { db["tags"] = this }
6
6
  end
7
7
 
8
8
  # # READ
9
- def read_from_yaml_file(dir: nil)
10
- db = YAML::Store.new(store(dir), thread_safe: true)
11
- db.transaction { db.fetch("tags") }
9
+ def read_from_yaml(dir: nil)
10
+ begin
11
+ db = YAML::Store.new(store(dir), thread_safe: true)
12
+ db.transaction { db.fetch("tags") }
13
+ rescue Exception => e
14
+ end
15
+
12
16
  end
13
17
 
14
18
  private
data/lib/rb_tags/tags.rb CHANGED
@@ -4,16 +4,16 @@ class Tags
4
4
 
5
5
  attr_reader :dir, :tags, :names
6
6
 
7
- def initialize(dir = Dir.getwd, read: false)
8
- @dir = dir
9
- if read
10
- self.read
11
- self.names
12
- end
7
+ def initialize(dir: Dir.getwd, force: false)
8
+ @dir = check(dir)
9
+
10
+ self.delete if force
11
+ self.read
13
12
  end
14
13
 
15
14
  def tag
16
15
  FileUtils.cd(@dir) { |dir| @tags = find_expressions(dir, @mask) }
16
+ save
17
17
  end
18
18
 
19
19
  def add(tags)
@@ -31,11 +31,23 @@ class Tags
31
31
  end
32
32
 
33
33
  def read
34
- @tags = read_from_yaml_file(dir: @dir)
35
- tag if @tags.nil?
34
+ @tags = read_from_yaml(dir: @dir)
35
+ tag if @tags.nil? || @tags.empty?
36
+ end
37
+
38
+ def delete
39
+ tag_file = File.join(@dir,".tags")
40
+ FileUtils.rm(tag_file) if File.exist?(tag_file)
36
41
  end
37
42
 
38
43
  def names
39
44
  @tags.keys
40
45
  end
46
+
47
+ def check(dir)
48
+ return dir if Dir.exist?(dir)
49
+ FileUtils.mkdir_p(dir)
50
+
51
+ dir
52
+ end
41
53
  end
@@ -1,3 +1,3 @@
1
1
  module RbTags
2
- VERSION = '0.2.2'
2
+ VERSION = '0.3.0'
3
3
  end
data/lib/rb_tags.rb CHANGED
@@ -31,7 +31,7 @@ module RbTags
31
31
  def generate(options={})
32
32
  default_options(options)
33
33
 
34
- tags = Tags.new(@options[:dir])
34
+ tags = Tags.new(dir: @options[:dir], force: (@options[:gems] || @options[:force]))
35
35
  tags.tag
36
36
  if @options[:gems]
37
37
  result = tag_bundled_gems
@@ -45,29 +45,24 @@ module RbTags
45
45
  gem_list = build_gem_list
46
46
  results = ::Parallel.map(gem_list.each_slice(number_of_processors),
47
47
  in_processes: number_of_processors) do |dir_list|
48
- gem_list = Tags.new(dir_list.shift)
48
+
49
+ gem_list = Tags.new(dir: dir_list.shift)
49
50
  gem_list.tag
50
51
 
51
52
  dir_list.each do |dir|
52
- gem_tags = Tags.new(dir, read: true)
53
- unless !!gem_tags.tags
54
- gem_tags.tag
55
- gem_tags.save
56
- say_tagging(gem_tags.dir)
57
- end
53
+ gem_tags = Tags.new(dir: dir)
54
+ say_tagging(gem_tags.dir)
55
+ # p gem_tags.tags.length
58
56
  gem_list.add(gem_tags.tags)
59
57
  end
60
-
61
58
  gem_list
62
59
  end
63
-
64
60
  results
65
61
  end
66
62
 
67
63
  def say_tagging(dir)
68
64
  $stdout.print "tag gem: ".blue
69
- $stdout.print "#{dir}".colorize(:yellow_light)
70
- $stdout.print " first time\n".blue
65
+ $stdout.print "#{dir}\n".colorize(:yellow_light)
71
66
  end
72
67
 
73
68
  #
@@ -76,7 +71,7 @@ module RbTags
76
71
 
77
72
  # get list of all names of methods/classes/modules
78
73
  def tags
79
- @tags ||= Tags.new(read: true)
74
+ @tags ||= Tags.new(force: false)
80
75
  @tags.names
81
76
  end
82
77
 
@@ -129,7 +124,7 @@ module RbTags
129
124
  end
130
125
 
131
126
  def defaults
132
- { gems: false }
127
+ { gems: false, force: false }
133
128
  end
134
129
 
135
130
  def default_dir
@@ -140,6 +135,8 @@ module RbTags
140
135
  # :nocov:
141
136
  file_line = "#{selected[:line]} #{selected[:path]}"
142
137
  case editor
138
+ when 'atom'
139
+ `atom #{file_line}`
143
140
  when 'mate'
144
141
  `mate -l #{file_line}`
145
142
  when 'emacs'
data/rb_tags.gemspec CHANGED
@@ -26,6 +26,8 @@ Gem::Specification.new do |spec|
26
26
  spec.add_development_dependency "guard-bundler"
27
27
  spec.add_development_dependency "rb-fsevent"
28
28
  spec.add_development_dependency "terminal-notifier-guard"
29
+ spec.add_development_dependency "pry"
30
+ spec.add_development_dependency "pry-byebug"
29
31
 
30
32
  spec.add_runtime_dependency "awesome_print"
31
33
  spec.add_runtime_dependency "bundler"
@@ -1,20 +1,43 @@
1
1
  describe YamlTasks do
2
+ after(:each) do
3
+ tag_file = File.join(Dir.getwd,'.tags')
4
+ FileUtils.rm(tag_file) if File.exist?(tag_file)
5
+ end
6
+
2
7
  subject { described_class }
3
8
 
4
9
  it { expect(subject.name).to eq 'YamlTasks' }
5
10
 
6
- describe '#store' do
11
+ describe 'include methods' do
7
12
  subject { Class.include described_class }
8
- describe 'default dir' do
9
- let(:store) { subject.send(:store) }
10
13
 
11
- it { expect(store).to eq File.join(Dir.getwd,'.tags') }
14
+ describe '#write_to_yaml' do
15
+ it { expect{ subject.write_to_yaml(this: {}) }.not_to raise_error }
16
+ end
17
+
18
+ describe '#read_from_yaml' do
19
+
20
+ it { expect{ subject.read_from_yaml }.not_to raise_error }
21
+ it 'does something' do
22
+ subject.write_to_yaml(this: {foo: "bar"} )
23
+ expect{ subject.read_from_yaml }.not_to raise_error
24
+ expect(subject.read_from_yaml).not_to be nil
25
+ end
12
26
  end
13
27
 
14
- describe 'dir given' do
15
- let(:store) { subject.send(:store, '/somewhere') }
28
+ describe '#store' do
29
+ describe 'default dir' do
30
+ let(:store) { subject.send(:store) }
31
+
32
+ it { expect(store).to eq File.join(Dir.getwd,'.tags') }
33
+ end
16
34
 
17
- it { expect(store).to eq File.join('/somewhere',".tags") }
35
+ describe 'dir given' do
36
+ let(:store) { subject.send(:store, '/somewhere') }
37
+
38
+ it { expect(store).to eq File.join('/somewhere',".tags") }
39
+ end
18
40
  end
19
41
  end
42
+
20
43
  end
@@ -1,5 +1,5 @@
1
1
  describe Tags do
2
- after(:all) do
2
+ after(:each) do
3
3
  tag_file = File.join(Dir.getwd,'.tags')
4
4
  FileUtils.rm(tag_file) if File.exist?(tag_file)
5
5
  end
@@ -14,11 +14,20 @@ describe Tags do
14
14
 
15
15
  describe 'defaults' do
16
16
  it { expect(subject.dir).to eq Dir.getwd }
17
- end
18
17
 
19
- describe 'with params' do
20
- subject { Tags.new('.')}
21
- it { expect(subject.dir).to eq '.' }
18
+ describe '#check dir' do
19
+ let(:to_create_dir) { File.join(Dir.getwd, 'spec','what') }
20
+
21
+ it 'create dirs' do
22
+ subject.check(to_create_dir)
23
+ expect(Dir.exist?(to_create_dir)).to be true
24
+ end
25
+ end
26
+
27
+ describe 'with params' do
28
+ subject { Tags.new(dir: './wo')}
29
+ it { expect(subject.dir).to eq './wo' }
30
+ end
22
31
  end
23
32
 
24
33
  describe '#tag' do
@@ -32,7 +41,7 @@ describe Tags do
32
41
  end
33
42
 
34
43
  it 'tags specified directory' do
35
- subject = Tags.new(FileUtils.pwd)
44
+ subject = Tags.new(dir: FileUtils.pwd)
36
45
  subject.tag
37
46
  expect(subject.tags.length).to be > 1
38
47
  expect(subject.tags).to be_a Hash
@@ -54,7 +63,6 @@ describe Tags do
54
63
  it { expect { subject.read }.not_to raise_error }
55
64
  it 'do it' do
56
65
  subject.tag
57
- subject.save
58
66
  tag_file = File.join(subject.dir, '.tags')
59
67
  expect(File.exist?(tag_file)).to eq true
60
68
  object = Tags.new
@@ -75,7 +83,7 @@ describe Tags do
75
83
 
76
84
  it 'has greater length, if not equal' do
77
85
  dir = Bundler.load.specs.map(&:full_gem_path).last
78
- compare = Tags.new(dir)
86
+ compare = Tags.new(dir: dir)
79
87
  subject.tag
80
88
  compare.tag
81
89
  subject.add(compare.tags)
@@ -88,4 +96,19 @@ describe Tags do
88
96
  it { expect(subject.names).to be_a Array }
89
97
  it { expect(subject.names.first).to be_a String }
90
98
  end
99
+
100
+ describe '#delete' do
101
+ before do
102
+ subject = Tags.new(dir: FileUtils.pwd)
103
+ subject.tag
104
+ end
105
+
106
+ it 'tag file' do
107
+ expect(subject).to receive(:delete)
108
+ subject.delete
109
+ tag_file = File.join(subject.dir, '.tags')
110
+
111
+ expect(Dir.exist?(tag_file)).to be false
112
+ end
113
+ end
91
114
  end
data/spec/rb_tags_spec.rb CHANGED
@@ -42,7 +42,7 @@ describe RbTags do
42
42
  before { foo.tags }
43
43
 
44
44
  describe '#tags' do
45
- let(:tag_tags) { Tags.new(read: true).names}
45
+ let(:tag_tags) { Tags.new(force: true).names}
46
46
 
47
47
  it 'has tags' do
48
48
  expect(foo.tags).to eq tag_tags
@@ -50,7 +50,7 @@ describe RbTags do
50
50
  end
51
51
 
52
52
  describe '#complete_tag' do
53
- let(:tag) { Tags.new(read: true).tags}
53
+ let(:tag) { Tags.new(force: true).tags}
54
54
  let(:arg) { tag.first.first }
55
55
 
56
56
  before do
@@ -64,7 +64,7 @@ describe RbTags do
64
64
  end
65
65
 
66
66
  describe '#found' do
67
- let(:tag) { Tags.new(read: true).tags.first}
67
+ let(:tag) { Tags.new(force: true).tags.first}
68
68
  let(:key) { tag.first }
69
69
 
70
70
  it 'does something' do
@@ -96,7 +96,7 @@ describe RbTags do
96
96
  describe 'defaults' do
97
97
  let(:tags) { foo.send(:default_options, {})}
98
98
  let(:defaults) { foo.send(:defaults) }
99
- let(:default) { {gems: false, dir: Dir.getwd} }
99
+ let(:default) { {gems: false, dir: Dir.getwd, force: false} }
100
100
 
101
101
  it { expect { tags }.to_not raise_error }
102
102
  it { expect(tags).to eq default }
@@ -108,7 +108,7 @@ describe RbTags do
108
108
  end
109
109
 
110
110
  describe 'set gems' do
111
- let(:options) { {gems: true, dir: '/somewhere'} }
111
+ let(:options) { {gems: true, dir: '/somewhere', force: false} }
112
112
  let(:tag_w_options) { foo.send(:default_options, options)}
113
113
  it { expect(tag_w_options).to eq options }
114
114
  end
@@ -116,7 +116,7 @@ describe RbTags do
116
116
  describe 'from gli' do
117
117
  let(:income) { { "dir" => "..", :dir => "..", "save" => true, :save => true, "gems" => true, :read => false } }
118
118
  let(:options) { foo.send(:default_options, income)}
119
- let(:expected) { { :dir => "..", :save => true, :gems => true, :read => false } }
119
+ let(:expected) { { :dir => "..", :save => true, :gems => true, :read => false, force: false } }
120
120
 
121
121
  it { expect(options).to eq expected }
122
122
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rb_tags
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - LeFnord
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-19 00:00:00.000000000 Z
11
+ date: 2015-08-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -80,6 +80,34 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry-byebug
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'
83
111
  - !ruby/object:Gem::Dependency
84
112
  name: awesome_print
85
113
  requirement: !ruby/object:Gem::Requirement