huffshell 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- huffshell (0.0.3)
4
+ huffshell (0.0.4)
5
5
  colorize
6
6
 
7
7
  GEM
data/Readme.md CHANGED
@@ -21,12 +21,6 @@ Features
21
21
  Installation
22
22
  ---------------------
23
23
 
24
- You need to have zsh_history stored at this location: '~/.zsh_history'. If this code outputs a lot of junk, you are probably setup.
25
-
26
- ```script
27
- cat ~/.zsh_history
28
- ```
29
-
30
24
  Here is how you install the gem.
31
25
 
32
26
  ```script
@@ -48,10 +42,10 @@ Update
48
42
  gem update huffshell
49
43
  ````
50
44
 
51
- Fixes
45
+ De-duplication
52
46
  ---------------------
53
47
 
54
- Things don't look right? Change your zsh history to these settings to allow your history to save dups and store a lot of entries. You need dups so that we can figure out what to optimize out with aliases and the larger the history, the better the data will be.
48
+ Many people have some form of deduplication on their ZSH history. That is a gret feature but will prevent you from getting all of the benifits of alias generation. If you are curious and want to see a better picture of your shell usage, here is a zsh configuration which remove deduping and creates a more accurate picture.
55
49
 
56
50
  ```script
57
51
  ## Command history configuration
data/bin/huffshell CHANGED
@@ -5,10 +5,15 @@ require 'colorize'
5
5
 
6
6
  cs = CommandSuggestor.new
7
7
 
8
+ # TODOS
9
+ # get largest history file
10
+ # examine to see what format the file is in
11
+ # let users tell me where their files is
12
+
8
13
  files = ['~/.zsh_history', '~/.zshhistory', '~/.zhistory']
9
14
  history_filename = files.map{|f| File.expand_path(f) }.select{|f| File.exist?(f) }.first
10
15
 
11
- puts "Huffshel"
16
+ puts "Huffshell"
12
17
  puts "============="
13
18
  puts ["History found:", history_filename, File.size(history_filename).to_s].join(" ")
14
19
 
@@ -5,13 +5,22 @@ class OhMyZshReader
5
5
 
6
6
  def initialize(file_name)
7
7
  @file_name = file_name
8
- @file_contents = File.open(File.expand_path(file_name), 'r').read
8
+
9
+ file = File.open(File.expand_path(file_name), 'r')
10
+
11
+ @file_contents = ""
9
12
 
10
13
  if String.method_defined?(:encode)
11
- @file_contents.encode!('UTF-8', 'UTF-8', :invalid => :replace)
14
+ @file_contents = file.read.encode!('UTF-8', 'UTF-8', :invalid => :replace)
12
15
  else
13
- ic = Iconv.new('UTF-8', 'UTF-8//IGNORE')
14
- @file_contents = ic.iconv(@file_contents)
16
+ ic = Iconv.new('UTF-8', 'UTF-8')
17
+ file.each do |l|
18
+ begin
19
+ @file_contents += ic.iconv(l)
20
+ rescue
21
+ puts "Encoding error: #{l}"
22
+ end
23
+ end
15
24
  end
16
25
  end
17
26
 
metadata CHANGED
@@ -1,35 +1,45 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: huffshell
3
- version: !ruby/object:Gem::Version
4
- version: 0.0.4
3
+ version: !ruby/object:Gem::Version
4
+ hash: 21
5
5
  prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 5
10
+ version: 0.0.5
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Paul McKellar
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-06-18 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2012-06-18 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: colorize
16
- requirement: &70115917714360 !ruby/object:Gem::Requirement
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
17
24
  none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
22
32
  type: :runtime
23
- prerelease: false
24
- version_requirements: *70115917714360
25
- description: A parser and recommendation system for your shell aliases based on your
26
- shell history
33
+ version_requirements: *id001
34
+ description: A parser and recommendation system for your shell aliases based on your shell history
27
35
  email: paul.mckellar@gmail.com
28
- executables:
36
+ executables:
29
37
  - huffshell
30
38
  extensions: []
39
+
31
40
  extra_rdoc_files: []
32
- files:
41
+
42
+ files:
33
43
  - lib/command/command_suggestion.rb
34
44
  - lib/command/command_suggestor.rb
35
45
  - lib/command/command_word.rb
@@ -48,26 +58,36 @@ files:
48
58
  - Readme.md
49
59
  homepage: https://github.com/paulmars/huffshell
50
60
  licenses: []
61
+
51
62
  post_install_message:
52
63
  rdoc_options: []
53
- require_paths:
64
+
65
+ require_paths:
54
66
  - lib
55
- required_ruby_version: !ruby/object:Gem::Requirement
67
+ required_ruby_version: !ruby/object:Gem::Requirement
56
68
  none: false
57
- requirements:
58
- - - ! '>='
59
- - !ruby/object:Gem::Version
60
- version: '0'
61
- required_rubygems_version: !ruby/object:Gem::Requirement
69
+ requirements:
70
+ - - ">="
71
+ - !ruby/object:Gem::Version
72
+ hash: 3
73
+ segments:
74
+ - 0
75
+ version: "0"
76
+ required_rubygems_version: !ruby/object:Gem::Requirement
62
77
  none: false
63
- requirements:
64
- - - ! '>='
65
- - !ruby/object:Gem::Version
66
- version: '0'
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ hash: 3
82
+ segments:
83
+ - 0
84
+ version: "0"
67
85
  requirements: []
86
+
68
87
  rubyforge_project:
69
- rubygems_version: 1.8.10
88
+ rubygems_version: 1.8.17
70
89
  signing_key:
71
90
  specification_version: 3
72
91
  summary: Automatic shell alias recommondations based on usage!
73
92
  test_files: []
93
+