matrext 0.4.9 → 0.4.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: 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: []