da_funk 0.7.9 → 0.7.10

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: b644f1f2ba4859e329c58c00d532b28f794bc6d3
4
- data.tar.gz: 5e5a8cb854cac3ef9c3ffc85cc966f7806a20e92
3
+ metadata.gz: c4ecd5d711aa91a4bbe69de7e6ff18412f259f7e
4
+ data.tar.gz: aa18938c8a20c6bb4f94135e339990000662c9d6
5
5
  SHA512:
6
- metadata.gz: abdfd8c783ba7fa829f9138cf1d11ad334b281d87106bac54f9998b79b32ddd800d24badfcf9443ddb0be9d077c69f52bff963452471c03ecc900b4264759a2a
7
- data.tar.gz: 3d4d2c213a6975b8e250fb64064113ea96c8681591bd08391880d8ae4279d373803fb64dbafd9b878f4314031194d084de067db6a75e94a599c1b9547e90160c
6
+ metadata.gz: 09c7a31d90ac5e0d8e2ac2e65fdffea6b5deb5fc1134d4532ec457533abc7f80c2aff9541ef2eb91f6740622f9b2d7334fb9d93242b64970b063f792533d58d1
7
+ data.tar.gz: 1486c9556783dfb87f8ed7f96cd6d22492ab966679678c428b43fb6fdbe2184973243fa22586c53a2be2c06750fe9b69eb4a1e5a01476b734ba04b2a54a1c6bd
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- da_funk (0.7.9)
4
+ da_funk (0.7.10)
5
5
  bundler (~> 1.7)
6
6
  cloudwalk_handshake (~> 0.6)
7
7
  funky-emv (~> 0.3)
data/RELEASE_NOTES.md CHANGED
@@ -1,5 +1,10 @@
1
1
  # DaFunk
2
2
 
3
+ ### 0.7.10 - 2016-10-06
4
+
5
+ - Refactoring Helper.menu supporting custom forward and back key, and bug fix pagination.
6
+ - Support custom forward and back keys.
7
+
3
8
  ### 0.7.9 - 2016-10-03
4
9
 
5
10
  - Implement seconds to Scheduler timer.
@@ -150,21 +150,14 @@ module DaFunk
150
150
 
151
151
  # TODO Scalone: Refactor.
152
152
  def pagination(title, options, collection, &block)
153
- if title.nil?
154
- start_line = 0
155
- options[:limit] ||= STDOUT.max_y
156
- else
157
- start_line = 1
158
- options[:limit] ||= STDOUT.max_y - 1
159
- end
160
- if collection.size > options[:limit] # minus header
161
- key = Device::IO::F1
162
- pages = pagination_page(collection, options[:limit] - 1)
153
+ start_line, options[:limit] = pagination_limit(title, options[:limit])
154
+ if collection.size > (options[:limit] - 1) # minus pagination header
155
+ key = Device::IO.back_key
156
+ pages = pagination_page(collection, options[:limit] - 1) # minus pagination header
163
157
  page = 1
164
- while(key == Device::IO::F1 || key == Device::IO::F2)
158
+ while(key == Device::IO.back_key || key == Device::IO.forward_key)
165
159
  Device::Display.clear
166
- print_title(title, options[:default]) if title
167
- Device::Display.print("< F1 ____ #{page}/#{pages.size} ____ F2 >", start_line, 0)
160
+ pagination_header(title, page, pages.size, start_line, options[:default])
168
161
  values = pages[page].to_a
169
162
  block.call(values, start_line+1)
170
163
  key = try_key(pagination_keys(values.size))
@@ -185,10 +178,17 @@ module DaFunk
185
178
  end
186
179
  end
187
180
 
181
+ def pagination_header(title, page, pages, line, default)
182
+ print_title(title, default) if title
183
+ back = Device::IO.back_key_label
184
+ forward = Device::IO.forward_key_label
185
+ Device::Display.print("< #{back} __ #{page}/#{pages} __ #{forward} >", line, 0)
186
+ end
187
+
188
188
  def pagination_key_page(page, key, size)
189
- if key == Device::IO::F1
189
+ if key == Device::IO.back_key
190
190
  page == 1 ? page : page -= 1
191
- elsif key == Device::IO::F2
191
+ elsif key == Device::IO.forward_key
192
192
  page >= size ? size : page += 1
193
193
  end
194
194
  end
@@ -197,8 +197,10 @@ module DaFunk
197
197
  page = 1
198
198
  i = 0
199
199
  values.group_by do |value|
200
- if size < (i+=1)
201
- page+=1; i=0
200
+ if size <= i
201
+ page+=1; i=1
202
+ else
203
+ i += 1
202
204
  end
203
205
  page
204
206
  end
@@ -206,7 +208,25 @@ module DaFunk
206
208
 
207
209
  def pagination_keys(size)
208
210
  (1..size.to_i).to_a.map(&:to_s) + [Device::IO::ENTER, Device::IO::CLEAR,
209
- Device::IO::CANCEL, Device::IO::F1, Device::IO::F2]
211
+ Device::IO::CANCEL, Device::IO.back_key, Device::IO.forward_key]
212
+ end
213
+
214
+ def pagination_limit(title, number = nil)
215
+ start = title.nil? ? 0 : 1 # start in next line if title
216
+ if number
217
+ limit = number
218
+ else
219
+ if STDOUT.max_y > 9
220
+ limit = 9
221
+ else
222
+ if title.nil?
223
+ limit = STDOUT.max_y
224
+ else
225
+ limit = STDOUT.max_y - 1 # minus title
226
+ end
227
+ end
228
+ end
229
+ [start, limit]
210
230
  end
211
231
 
212
232
  def number_to_currency(value, options = {})
@@ -273,6 +293,5 @@ module DaFunk
273
293
  end
274
294
  end
275
295
  end
276
-
277
296
  end
278
297
 
@@ -1,4 +1,4 @@
1
1
  module DaFunk
2
- VERSION="0.7.9"
2
+ VERSION="0.7.10"
3
3
  end
4
4
 
data/lib/device/io.rb CHANGED
@@ -44,8 +44,12 @@ class Device
44
44
  NINE_NUMBER = "9"
45
45
  ZERO_NUMBER = "0"
46
46
 
47
+ KEYBOARD_DEFAULT = ["qzQZ.", "abcABC", "defDEF", "ghiGHI", "jklJKL",
48
+ "mnoMNO", "prsPRS", "tuvTUV", "wxyWXY", ", *\#_$%-+="]
49
+
47
50
  class << self
48
- attr_accessor :timeout, :keys_range
51
+ attr_accessor :timeout, :keys_range, :forward_key, :back_key, :back_key_label,
52
+ :forward_key_label
49
53
  end
50
54
 
51
55
  # Setup Keyboard Map
@@ -67,8 +71,7 @@ class Device
67
71
  # map = [one_letters, two_letters, three_letters, four_letters, five_letters,
68
72
  # six_letters, seven_letters, eight_letters, nine_letters, zero_letters]
69
73
  # Device::IO.setup_keyboard(map)
70
- #
71
- def self.setup_keyboard(map)
74
+ def self.setup_keyboard(map, options = {})
72
75
  one_letters, two_letters, three_letters, four_letters, five_letters,
73
76
  six_letters, seven_letters, eight_letters, nine_letters, zero_letters =
74
77
  map
@@ -89,10 +92,14 @@ class Device
89
92
  NINE_NUMBER + nine_letters, ZERO_NUMBER + zero_letters
90
93
  ]
91
94
  @keys_range = {MASK_ALPHA => range_alpha, MASK_LETTERS => range_letters, MASK_NUMBERS => range_number}
95
+
96
+ self.back_key = options[:back_key] || Device::IO::F1
97
+ self.back_key_label = options[:back_key_label] || " F1 "
98
+ self.forward_key = options[:forward_key] || Device::IO::F2
99
+ self.forward_key_label = options[:forward_key_label] || " F2 "
92
100
  end
93
101
 
94
- self.setup_keyboard(["qzQZ.", "abcABC", "defDEF", "ghiGHI", "jklJKL",
95
- "mnoMNO", "prsPRS", "tuvTUV", "wxyWXY", ", *\#_$%-+="])
102
+ self.setup_keyboard(KEYBOARD_DEFAULT)
96
103
  self.timeout = DEFAULT_TIMEOUT
97
104
 
98
105
  # Restricted to terminals, get strings and numbers.
data/out/da_funk.mrb CHANGED
Binary file
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: da_funk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.9
4
+ version: 0.7.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thiago Scalone
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-10-03 00:00:00.000000000 Z
11
+ date: 2016-10-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake