rb_tags 0.2.2 → 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.
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