hairballs 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/History.md +10 -2
- data/lib/hairballs/configuration.rb +13 -9
- data/lib/hairballs/plugins/irb_history.rb +6 -2
- data/lib/hairballs/themes/turboladen.rb +5 -1
- data/lib/hairballs/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d1465ffb77e5a3cca642251d686e9a764ece6c02
|
4
|
+
data.tar.gz: 5cb9166c6199254d83dab384669178216a554680
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2653b127751f63dd739dc0fe08fe088b89fe5f798c7d0658ea29aefb73278647ad2bd8ea5eea7d1088c5bb5e66c88c6ea48ff6cd75346ba6f59e8dee144c1ef8
|
7
|
+
data.tar.gz: 27bdc77f19a8737921fd7f0e6649b24d33beb67c140a2a250b56539a130122e7f7a40994c64ef85f942a10fd6ab949711d988ea370f86c6d520d5fc473e91b03
|
data/History.md
CHANGED
@@ -1,13 +1,21 @@
|
|
1
|
+
### 0.1.1 / 2015-04-06
|
2
|
+
|
3
|
+
* Bug Fixes
|
4
|
+
* Fixed #root_by_git when not in a git director. This would result in
|
5
|
+
`NoMethodError: undefined method 'strip' for nil:NilClass`.
|
6
|
+
* Plugin: *irb_history* Fixed IRB history for non-project sessions. All IRB
|
7
|
+
sessions that don't belong to a project are saved to `~/.irb_history`.
|
8
|
+
|
1
9
|
### 0.1.0 / 2015-02-18
|
2
10
|
|
3
11
|
* Improvements
|
4
12
|
* Added `Hairballs.project_root`, which tries to determine the root
|
5
13
|
directory for the project you're working in.
|
6
|
-
* Refactored configuration to Hairballs::Configuration
|
14
|
+
* Refactored configuration to `Hairballs::Configuration`.
|
7
15
|
* Bug Fixes
|
8
|
-
* Fixed nested file completion for the `tab_completion_for_files` plugin.
|
9
16
|
* Fixed `Hairballs::LibraryHelpers#find_latest_gem` to find the latest
|
10
17
|
instead of the earliest.
|
18
|
+
* Plugin: *tab_completion_for_files* Fixed nested file completion.
|
11
19
|
|
12
20
|
### 0.0.1 / 2014-12-19
|
13
21
|
|
@@ -35,9 +35,6 @@ class Hairballs
|
|
35
35
|
# @return [String]
|
36
36
|
attr_reader :project_name
|
37
37
|
|
38
|
-
# @return [String]
|
39
|
-
attr_reader :project_root
|
40
|
-
|
41
38
|
def initialize
|
42
39
|
@themes = []
|
43
40
|
@current_theme = nil
|
@@ -53,24 +50,27 @@ class Hairballs
|
|
53
50
|
Hairballs::VERSION
|
54
51
|
end
|
55
52
|
|
56
|
-
# Is IRB getting loaded for a
|
53
|
+
# Is IRB getting loaded for a Rails console?
|
57
54
|
#
|
58
55
|
# @return [Boolean]
|
59
56
|
def rails?
|
60
57
|
ENV.has_key?('RAILS_ENV') || !!defined?(Rails)
|
61
58
|
end
|
62
59
|
|
63
|
-
# Name of the
|
60
|
+
# Name of the project, if it can be determined. If not, defaults to "irb".
|
64
61
|
#
|
65
62
|
# @return [String]
|
66
63
|
def project_name
|
67
|
-
@project_name ||=
|
64
|
+
@project_name ||= project_root ? project_root.basename : nil
|
68
65
|
end
|
69
66
|
|
67
|
+
# @return [Pathname]
|
70
68
|
def project_root
|
71
69
|
@project_root ||= find_project_root
|
72
70
|
end
|
73
71
|
|
72
|
+
# @param [String] path
|
73
|
+
# @return [Boolean]
|
74
74
|
def project_root?(path)
|
75
75
|
File.expand_path(path) == project_root
|
76
76
|
end
|
@@ -137,6 +137,7 @@ class Hairballs
|
|
137
137
|
|
138
138
|
private
|
139
139
|
|
140
|
+
# @return [Pathname]
|
140
141
|
def find_project_root
|
141
142
|
if rails?
|
142
143
|
::Rails.root
|
@@ -145,12 +146,15 @@ class Hairballs
|
|
145
146
|
end
|
146
147
|
end
|
147
148
|
|
149
|
+
# @return [Pathname, nil]
|
148
150
|
def root_by_git
|
149
151
|
_stdin, stdout, _stderr = Open3.popen3('git rev-parse --show-toplevel')
|
150
|
-
|
151
|
-
|
152
|
+
result = stdout.gets
|
153
|
+
|
154
|
+
result.nil? ? nil : Pathname.new(result.strip)
|
152
155
|
end
|
153
156
|
|
157
|
+
# @return [Pathname, nil]
|
154
158
|
def root_by_lib_dir
|
155
159
|
cwd = Pathname.new(Dir.pwd)
|
156
160
|
root = nil
|
@@ -159,7 +163,7 @@ class Hairballs
|
|
159
163
|
lib_dir = File.join(dir.to_s, 'lib')
|
160
164
|
|
161
165
|
if dir.children.find { |c| c.to_s =~ /#{lib_dir}/ && File.exist?(lib_dir) }
|
162
|
-
root = dir.to_s
|
166
|
+
root = Pathname.new(dir.to_s)
|
163
167
|
break
|
164
168
|
end
|
165
169
|
end
|
@@ -7,8 +7,12 @@ Hairballs.add_plugin(:irb_history, save_history: 1000, eval_history: 20, global_
|
|
7
7
|
IRB.conf[:SAVE_HISTORY] = plugin.save_history
|
8
8
|
IRB.conf[:EVAL_HISTORY] = plugin.eval_history
|
9
9
|
|
10
|
-
unless plugin.global_history_file
|
11
|
-
IRB.conf[:HISTORY_FILE] = "#{Dir.home}/.irb_history
|
10
|
+
unless plugin.global_history_file && Hairballs.project_name
|
11
|
+
IRB.conf[:HISTORY_FILE] = "#{Dir.home}/.irb_history"
|
12
|
+
|
13
|
+
if Hairballs.project_name
|
14
|
+
IRB.conf[:HISTORY_FILE] << Hairballs.project_name.to_s
|
15
|
+
end
|
12
16
|
end
|
13
17
|
|
14
18
|
Object.class_eval do
|
@@ -21,7 +21,11 @@ Hairballs.add_theme(:turboladen) do |theme|
|
|
21
21
|
|
22
22
|
theme.prompt do |prompt|
|
23
23
|
preface = proc do |status = ' '|
|
24
|
-
|
24
|
+
if Hairballs.project_name
|
25
|
+
"⟪#{Hairballs.project_name.to_s.light_blue}⟫#{status}%03n"
|
26
|
+
else
|
27
|
+
"❨#{'irb'.light_blue}❩#{status}%03n"
|
28
|
+
end
|
25
29
|
end
|
26
30
|
|
27
31
|
prompt.auto_indent = true
|
data/lib/hairballs/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hairballs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Loveless
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -113,7 +113,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
113
|
version: '0'
|
114
114
|
requirements: []
|
115
115
|
rubyforge_project:
|
116
|
-
rubygems_version: 2.
|
116
|
+
rubygems_version: 2.4.6
|
117
117
|
signing_key:
|
118
118
|
specification_version: 4
|
119
119
|
summary: Like oh-my-zsh, but for IRB.
|
@@ -124,4 +124,3 @@ test_files:
|
|
124
124
|
- spec/hairballs/theme_spec.rb
|
125
125
|
- spec/hairballs_spec.rb
|
126
126
|
- spec/spec_helper.rb
|
127
|
-
has_rdoc:
|