matrext 0.4.9 → 0.4.10

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: 678cbca192b7d6b928cf75ac1b5fcf8b7cb2a074
4
- data.tar.gz: 64c0c9161dc150fc6f34ace0bc89f685e1bb9fc4
3
+ metadata.gz: ed118740c8d1f66e6b02837afb7ba932e9447185
4
+ data.tar.gz: 7f51f399543a3b71c09421163bd898591bf0ce96
5
5
  SHA512:
6
- metadata.gz: e7bccc4c8fdb17cdf8147566d4569a7978896237ea822d636d9cc284bf34d31ee82c0b67757b80658633046960f825e136ff077ffafd36365eb4971b75a6374c
7
- data.tar.gz: 6df525bcf7cd0acb2533401e0ff4492316d629f961b6ec57913461baa522cc9ed4c97b1ddea92b4c1db492b45c0e2b75849331c5b4ecd9aacf176ebf9f47be65
6
+ metadata.gz: ba01fc75bd3c3d546f13a47b56a76a48ccfc446d601b8c99c219ac74ef843df4d0d1e3afa9f3b199d22a84d66bbfd1ed0705da4ba797df9b21cc5069dfdc8094
7
+ data.tar.gz: ff06557e71c889f82cfa30b15f6dea7ed674c79d74df94b97ddc8df6ed50022a7e2ea46f8b5cf70a1de0cc8dfa57c5f4f080d03c6251f1ae16d44c08154b7153
data/Rakefile CHANGED
@@ -1 +1 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
data/bin/matrext CHANGED
@@ -8,40 +8,56 @@ require_relative '../lib/matrext/version'
8
8
  BINARY_NAME = $PROGRAM_NAME.split('/').last
9
9
 
10
10
  def parse_options
11
- options = {:oneline => false, :speed => nil, :alpha => true, :numeric => true, :random => true}
11
+ options = {
12
+ oneline: false,
13
+ speed: nil,
14
+ alpha: true,
15
+ numeric: true,
16
+ random: true,
17
+ color: nil,
18
+ background: nil
19
+ }
12
20
 
13
21
  optparse = OptionParser.new do |opts|
14
- opts.banner = 'usage: matrext "phrase" [-o] [-s insane|fast|slow] [-a true|false] [-n true|false] [-r true|false]'
22
+ opts.banner = 'usage: matrext "phrase" [-o] [-s insane|fast|slow] [-a true|false] [-n true|false] [-r true|false] [-c color_symbol] [-b background_symbol]'
15
23
 
16
24
  opts.on('-s', '--speed SPEED', 'Speed at which the text decodes') do |speed|
17
25
  options[:speed] = speed
18
26
  end
19
-
27
+
20
28
  opts.on('-o', '--oneline', 'Display text on one line, along with anything before or after') do
21
29
  options[:oneline] = true
22
30
  end
23
-
31
+
24
32
  opts.on('-a', '--alpha BOOLEAN', 'Whether to include alphabetical characters') do |alpha|
25
33
  case alpha
26
34
  when 'false', 'f'
27
35
  options[:alpha] = false
28
36
  end
29
37
  end
30
-
38
+
31
39
  opts.on('-n', '--numeric BOOLEAN', 'Whether to include numeric characters') do |numeric|
32
40
  case numeric
33
41
  when 'false', 'f'
34
42
  options[:numeric] = false
35
43
  end
36
44
  end
37
-
45
+
38
46
  opts.on('-r', '--random BOOLEAN', 'Whether to include non-alphanumeric random characters') do |random|
39
47
  case random
40
48
  when 'false', 'f'
41
49
  options[:random] = false
42
50
  end
43
51
  end
44
-
52
+
53
+ opts.on('-c', '--color COLOR', 'Colorize symbol for color of text') do |color|
54
+ options[:color] = color.to_sym
55
+ end
56
+
57
+ opts.on('-b', '--background BACKGROUND', 'Colorize symbol for background color of text') do |background|
58
+ options[:background] = background.to_sym
59
+ end
60
+
45
61
  opts.on('-v', '--version', 'Display version number and exit') do
46
62
  puts "#{BINARY_NAME} #{Matrext::VERSION}"
47
63
  exit
data/lib/matrext/core.rb CHANGED
@@ -1,25 +1,32 @@
1
1
  # lib/matrext/core.rb
2
2
  # The core processing unit
3
3
 
4
+ require 'colorize'
5
+
4
6
  module Matrext
5
7
  NOISE_MIN_DEFAULT = 4
6
8
  NOISE_MAX_DEFAULT = 6
7
9
  DELAY_MIN_DEFAULT = 0.009
8
10
  DELAY_MAX_DEFAULT = 0.012
9
-
11
+
10
12
  attr_accessor :alpha_chars, :numeric_chars, :random_chars
11
13
 
12
14
  def self.process(options = {})
13
- defaults = {:oneline => false, :alpha => true, :numeric => true, :random => true}
15
+ defaults = {
16
+ oneline: false,
17
+ alpha: true,
18
+ numeric: true,
19
+ random: true,
20
+ color: nil,
21
+ background: nil
22
+ }
14
23
  options = defaults.merge(options)
15
-
16
- character_pool = self.create_character_pool(options)
24
+
25
+ character_pool = create_character_pool(options)
17
26
 
18
27
  letters = options[:phrase]
19
28
 
20
- unless options[:speed].nil?
21
- speed = options[:speed].to_sym
22
- end
29
+ speed = options[:speed].to_sym unless options[:speed].nil?
23
30
 
24
31
  case speed
25
32
  when :insane
@@ -47,50 +54,52 @@ module Matrext
47
54
  letters.each_char do |l|
48
55
  letter_noise = rand(noise_min..noise_max)
49
56
  letter_delay = rand(delay_min..delay_max)
50
-
51
- (0..letter_noise).each do |n|
52
- print get_random_letter(character_pool)
57
+
58
+ (0..letter_noise).each do
59
+ print get_random_letter(character_pool).colorize(color: options[:color], background: options[:background])
53
60
  sleep(letter_delay)
54
61
  print "\b"
55
62
  end
56
- print l.upcase
63
+
64
+ if options[:color].nil?
65
+ print l.upcase
66
+ else
67
+ print l.upcase.colorize(color: options[:color], background: options[:background])
68
+ end
69
+
57
70
  sleep(letter_delay)
58
71
  end
59
72
 
60
- if options[:oneline].equal? false
61
- puts
62
- end
73
+ puts unless options[:oneline].equal? true
63
74
  end
64
-
75
+
65
76
  private
66
-
77
+
67
78
  def self.alpha_chars
68
- ((65..90).map{|i| i.chr} | (97..122).map{|i| i.chr})
79
+ ((65..90).map(&:chr) | (97..122).map(&:chr))
69
80
  end
70
-
81
+
71
82
  def self.numeric_chars
72
- (48..57).map{|i| i.chr}
83
+ (48..57).map(&:chr)
73
84
  end
74
-
85
+
75
86
  def self.random_chars
76
- ((33..47).map{|i| i.chr} | (91..96).map{|i| i.chr} | (123..126).map{|i| i.chr})
87
+ ((33..47).map(&:chr) | (91..96).map(&:chr) | (123..126).map(&:chr))
77
88
  end
78
89
 
79
90
  def self.create_character_pool(options)
80
91
  chars = []
81
92
 
82
- chars = chars | alpha_chars if options[:alpha]
83
- chars = chars | numeric_chars if options[:numeric]
84
- chars = chars | random_chars if options[:random]
85
-
86
- return chars
93
+ chars |= alpha_chars if options[:alpha]
94
+ chars |= numeric_chars if options[:numeric]
95
+ chars |= random_chars if options[:random]
96
+
97
+ chars
87
98
  end
88
-
99
+
89
100
  def self.get_random_letter(chars)
90
- if chars.length <= 0
91
- chars = ['X']
92
- end
93
-
94
- chars[rand(0..chars.length-1)]
101
+ chars = ['X'] if chars.length <= 0
102
+
103
+ chars[rand(0..chars.length - 1)]
95
104
  end
96
105
  end
@@ -2,5 +2,5 @@
2
2
  # Version of Matrext
3
3
 
4
4
  module Matrext
5
- VERSION = '0.4.9'
5
+ VERSION = '0.4.10'
6
6
  end
data/lib/matrext.rb CHANGED
@@ -1,12 +1,12 @@
1
1
  # lib/matrext.rb
2
2
  # Main jumping off point
3
3
 
4
- require_relative "matrext/core"
4
+ require_relative 'matrext/core'
5
5
 
6
6
  module Matrext
7
7
  class Base
8
8
  def initialize(options)
9
- Matrext::process(options)
9
+ Matrext.process(options)
10
10
  end
11
11
  end
12
12
  end
data/matrext.gemspec CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.authors = ['Michael Chadwick']
11
11
  spec.email = ['mike@codana.me']
12
12
  spec.homepage = 'http://rubygems.org/gems/matrext'
13
- spec.summary = 'Make text phrases look like they\'re being decoded, Matrix-style'
13
+ spec.summary = 'Make text look like it\'s being decoded, Matrix-style'
14
14
  spec.description = 'Matrext takes a string input and then prints it back to the console, one letter at a time after "searching" through character noise, as if it was decoding the string itself.'
15
15
 
16
16
  spec.files = `git ls-files`.split("\n")
@@ -19,6 +19,8 @@ Gem::Specification.new do |spec|
19
19
  spec.require_paths = ['lib']
20
20
  spec.license = 'MIT'
21
21
 
22
+ spec.add_runtime_dependency 'colorize', '~> 0.7.7'
23
+
22
24
  spec.add_development_dependency 'bundler', '~> 1.9'
23
25
  spec.add_development_dependency 'rake', '~> 10.0'
24
26
  spec.add_development_dependency 'pry-byebug', '~> 3.0'
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: matrext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.9
4
+ version: 0.4.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Chadwick
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-18 00:00:00.000000000 Z
11
+ date: 2015-08-25 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colorize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.7.7
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.7.7
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: bundler
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -99,5 +113,5 @@ rubyforge_project:
99
113
  rubygems_version: 2.4.8
100
114
  signing_key:
101
115
  specification_version: 4
102
- summary: Make text phrases look like they're being decoded, Matrix-style
116
+ summary: Make text look like it's being decoded, Matrix-style
103
117
  test_files: []