ifilter 0.0.5 → 0.0.6

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: 9509ccf24f4affbe68d0e5a0999fa72a0439feb9
4
- data.tar.gz: 9a69c46beb85427d81a71122af6e80f0c28a091f
3
+ metadata.gz: 535ae8eeb3552b29e6e3ee3dfc7558bd7ab59d3a
4
+ data.tar.gz: 8889c81060a2ff43b9e193978e6941281afed5b8
5
5
  SHA512:
6
- metadata.gz: 3141cf7cc4070d2b09c73a397d4ccd4db6afe33393fd78170df07aed0fb835dc11fd440207f01861a032d6241998fb9c08753622dc5287e27465908fb58c8a8d
7
- data.tar.gz: 6bcc424ea886a0aa1294d987260774454f0b9684d83c3f6eb097760d141a1656565ca813ab85bb60fa9b40b3080b1bdfbfafff9d3f499d66cba9080dae92efd2
6
+ metadata.gz: da307d4bfa73ceebb973d6eb2fbff21cee39e629170ca78e2d7482baf27c0a57789fc93569b24f6a08d68e3630c216b041093767603484d0d48ce9c8d44d60f3
7
+ data.tar.gz: 794a8ead06b801877c05d35567084305ec51a0e534f65317eb276b1776d11c9754c5c8eb39524aee76e461d5abba82ea84e1d2b764a92b5a7648768fa7906814
@@ -54,7 +54,6 @@ module Ifilter
54
54
 
55
55
  Curses.close_screen
56
56
  @outputs[@cursor_position - 1]
57
-
58
57
  rescue Interrupt # <C-c>
59
58
  Curses.close_screen
60
59
  end
@@ -66,12 +65,14 @@ module Ifilter
66
65
  @window.clear
67
66
  reset_cursor_position
68
67
 
68
+ # A flag of the output for paging
69
69
  start_index = (@window.maxy - 1) * (@page_number - 1)
70
70
  # Update @outputs
71
71
  @outputs = filtering_by_input(@target, start_index: start_index)
72
72
 
73
73
  # Redraw the output
74
74
  output_line(@prompt + @input.to_s)
75
+ output_current_page
75
76
  @outputs.each do |output|
76
77
  output_line(output)
77
78
  end
@@ -87,6 +88,7 @@ module Ifilter
87
88
  def filtering_by_input(array, start_index: 0)
88
89
  array.each_with_object([]).with_index do |(str, outputs), index|
89
90
  next if index < start_index
91
+
90
92
  regex = @input.to_regex
91
93
 
92
94
  if !regex.nil? && regex =~ str
@@ -104,12 +106,19 @@ module Ifilter
104
106
  end
105
107
  end
106
108
 
109
+ def output_current_page
110
+ word = "[#{@page_number}/#{max_page_number.zero? ? 1 : max_page_number}]"
111
+ @window.setpos(@cursor_position - 1, @window.maxx)
112
+
113
+ @window << (' ' * (@window.maxx - word.size - @prompt.size)) + word
114
+ end
115
+
107
116
  def up_cursor_position
108
117
  if @cursor_position == 1
109
118
  scroll_prev_page
110
119
  else
111
- @window.setpos(@cursor_position - 1, 0)
112
120
  @cursor_position -= 1
121
+ @window.setpos(@cursor_position, 0)
113
122
  end
114
123
  end
115
124
 
@@ -117,14 +126,14 @@ module Ifilter
117
126
  if @cursor_position == @window.maxy - 1 || @cursor_position == @outputs.size
118
127
  scroll_next_page
119
128
  else
120
- @window.setpos(@cursor_position + 1, 0)
121
129
  @cursor_position += 1
130
+ @window.setpos(@cursor_position, 0)
122
131
  end
123
132
  end
124
133
 
125
134
  def reset_cursor_position
126
- @window.setpos(1, 0)
127
135
  @cursor_position = 1
136
+ @window.setpos(@cursor_position, 0)
128
137
  end
129
138
 
130
139
  def scroll_prev_page
@@ -132,32 +141,33 @@ module Ifilter
132
141
  @page_number = max_page_number
133
142
  update_window
134
143
 
135
- @window.setpos(last_output_position, 0)
136
144
  @cursor_position = last_output_position
145
+ @window.setpos(@cursor_position, 0)
137
146
  else
138
147
  @page_number -= 1
139
148
  update_window
140
149
 
141
- @window.setpos(@window.maxy - 1, 0)
142
150
  @cursor_position = @window.maxy - 1
151
+ @window.setpos(@cursor_position, 0)
143
152
  end
144
153
  end
145
154
 
146
155
  def scroll_next_page
147
156
  if @page_number == max_page_number
148
157
  @page_number = 1
158
+ update_window
149
159
  else
150
160
  @page_number += 1
161
+ update_window
151
162
  end
152
- update_window
153
163
  end
154
164
 
155
165
  def max_page_number
156
- (filtering_by_input(@target, start_index: 0).size.to_f / (@window.maxy - 1).to_f).ceil
166
+ (filtering_by_input(@target).size.to_f / (@window.maxy - 1).to_f).ceil
157
167
  end
158
168
 
159
169
  def last_output_position
160
- filtering_by_input(@target, start_index: 0).size % (@window.maxy - 1)
170
+ filtering_by_input(@target).size % (@window.maxy - 1)
161
171
  end
162
172
  end
163
173
  end
@@ -1,3 +1,3 @@
1
1
  module Ifilter
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ifilter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - kaihar4