rotn 1.0.0
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 +7 -0
- checksums.yaml.gz.sig +0 -0
- data/lib/rotn/local.rb +9 -0
- data/lib/rotn.rb +57 -0
- data.tar.gz.sig +0 -0
- metadata +67 -0
- metadata.gz.sig +1 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: d41d0eab13053e5dac4d849c1fa6df9ac2dd2763
|
|
4
|
+
data.tar.gz: ec184df48a7a7f7dc38fe805d76f0e30c7c57b0a
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: e3e055ef996f666a4577ef9392b7b9f4f11b1ae1fd2cb04056f0366a3717d0732838472713c8f36c34ce754f5089ed6f63c938ddf3086b9e5aa28a3c2e75a777
|
|
7
|
+
data.tar.gz: 06c04d2f0d5159d892a965029ce4d4ec2067c01fc080d7a38bb3a834addc4faa7333643c5573a716f817afaa5db03361a2b81f9ec713784b94b6fc48b8dbb2bf
|
checksums.yaml.gz.sig
ADDED
|
Binary file
|
data/lib/rotn/local.rb
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
class Rotn
|
|
2
|
+
def self.shift_dictionary(amount, type)
|
|
3
|
+
numbers = "0123456789"
|
|
4
|
+
small = "abcdefghijklmnopqrstuvwxyz"
|
|
5
|
+
big = small.upcase
|
|
6
|
+
return "#{small[amount..-1]}#{small[0..amount]}#{big[amount+1..-1]}#{big[0..amount+1]}" if type == :a
|
|
7
|
+
return "#{numbers[amount..-1]}#{numbers[0..amount]}" if type == :n
|
|
8
|
+
end
|
|
9
|
+
end
|
data/lib/rotn.rb
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
require 'rotn/local'
|
|
2
|
+
|
|
3
|
+
# The String class
|
|
4
|
+
class String
|
|
5
|
+
# Shift a string by N symbols
|
|
6
|
+
#
|
|
7
|
+
# Example:
|
|
8
|
+
# >> "Hello World 123".encode({:a => 13, :n => 5})
|
|
9
|
+
# => "Uryyb Jbeyq 678"
|
|
10
|
+
#
|
|
11
|
+
# Arguments:
|
|
12
|
+
# map: (Hash)
|
|
13
|
+
def shift(map)
|
|
14
|
+
string = self.dup
|
|
15
|
+
string.tr!("a-zA-Z", Rotn.shift_dictionary(map[:a], :a)) if map.has_key? :a
|
|
16
|
+
string.tr!("0-9", Rotn.shift_dictionary(map[:n], :n)) if map.has_key? :n
|
|
17
|
+
return string
|
|
18
|
+
end
|
|
19
|
+
# In-place shift by N symbols
|
|
20
|
+
#
|
|
21
|
+
# Example:
|
|
22
|
+
# >> a = "Hello World 123"
|
|
23
|
+
# => "Hello World 123"
|
|
24
|
+
# >> a.encode!({:a => 4, :n => 1})
|
|
25
|
+
# => "Lipps Asvph 234"
|
|
26
|
+
# >> a
|
|
27
|
+
# => "Lipps Asvph 234"
|
|
28
|
+
#
|
|
29
|
+
# Arguments:
|
|
30
|
+
# map: (Hash)
|
|
31
|
+
def shift!(map)
|
|
32
|
+
replace shift(map)
|
|
33
|
+
end
|
|
34
|
+
# Unshift a string by N symbols
|
|
35
|
+
#
|
|
36
|
+
# Example:
|
|
37
|
+
# >> "Yvccf Nficu 345".unshift({:a => 17, :n => 2})
|
|
38
|
+
# => "Hello World 123"
|
|
39
|
+
def unshift(map)
|
|
40
|
+
string = self.dup
|
|
41
|
+
string.tr!(Rotn.shift_dictionary(map[:a], :a), "a-zA-Z") if map.has_key? :a
|
|
42
|
+
string.tr!(Rotn.shift_dictionary(map[:n], :n), "0-9") if map.has_key? :n
|
|
43
|
+
return string
|
|
44
|
+
end
|
|
45
|
+
# In-place unshift by N symbols
|
|
46
|
+
#
|
|
47
|
+
# Example:
|
|
48
|
+
# >> a = "Rovvy Gybvn 567"
|
|
49
|
+
# => "Rovvy Gybvn 567"
|
|
50
|
+
# >> a.encode!({:a => 10, :n => 4})
|
|
51
|
+
# => "Hello World 123"
|
|
52
|
+
# >> a
|
|
53
|
+
# => "Hello World 123"
|
|
54
|
+
def unshift!(map)
|
|
55
|
+
replace unshift(map)
|
|
56
|
+
end
|
|
57
|
+
end
|
data.tar.gz.sig
ADDED
|
Binary file
|
metadata
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: rotn
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Mark Black
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain:
|
|
11
|
+
- |
|
|
12
|
+
-----BEGIN CERTIFICATE-----
|
|
13
|
+
MIIDijCCAnKgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMRUwEwYDVQQDDAxhbm5v
|
|
14
|
+
eWluZy1kb2cxFzAVBgoJkiaJk/IsZAEZFgdvdXRsb29rMRMwEQYKCZImiZPyLGQB
|
|
15
|
+
GRYDY29tMB4XDTE2MDgzMDExMDg0MloXDTE3MDgzMDExMDg0MlowRTEVMBMGA1UE
|
|
16
|
+
AwwMYW5ub3lpbmctZG9nMRcwFQYKCZImiZPyLGQBGRYHb3V0bG9vazETMBEGCgmS
|
|
17
|
+
JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKcc
|
|
18
|
+
iSxgSTpOlNYBgE45PBzrruyajHudG63gvMkmX/Q2hBt2ZaHSxr5987xJxFrnrA2V
|
|
19
|
+
y/tTJKhBz7PthZxGN2BVfUM5YoJfMZJfB8UR58x0cmC1pnRXDLqhIRkdne0J7gcj
|
|
20
|
+
gmvkYG3KztMn0bscTfZUbQE0N3/63U1fvYnfh0rVXI4zqXlMLQrQc2JuqkBm9yYz
|
|
21
|
+
VRoCIL7neU7cKY/J13hnvS+ZbNJUEBY8F7QBnduJyO2ebC6Wxq6UMzvwAfLj+sjO
|
|
22
|
+
X0fJWpn0TV/E4qW4+Jd8kbJ/337X/wtZe8hzTmcmrU5oznjt0n5XkRbzzuyJorX7
|
|
23
|
+
vDxbaZgLZlWI7nDA66UCAwEAAaOBhDCBgTAJBgNVHRMEAjAAMAsGA1UdDwQEAwIE
|
|
24
|
+
sDAdBgNVHQ4EFgQUZfd8Ir9L8Gx8TTvA7OpmDH8TPSAwIwYDVR0RBBwwGoEYYW5u
|
|
25
|
+
b3lpbmctZG9nQG91dGxvb2suY29tMCMGA1UdEgQcMBqBGGFubm95aW5nLWRvZ0Bv
|
|
26
|
+
dXRsb29rLmNvbTANBgkqhkiG9w0BAQUFAAOCAQEAoeM9efUIyihbdEq1USbjJQij
|
|
27
|
+
zMI4tw/haoOae/BNR4dNwdNKvkOQpaUk1h1FSopAjXuKg5XK8ZYE8oASGwfQTcNt
|
|
28
|
+
2M2wpBSwoQbDBa8T5NqIJQ34RVmzh62XwYxnFZa4JWcC7cbrwpTiywKsl0DimlBc
|
|
29
|
+
bjdX1MyhxQ+Wxuy6oov4fM1nn+MDc5mxk+ZdUesvkKue1xj1C8rUqI3wxowSqX0q
|
|
30
|
+
Axuy/yOJMbFmpkrP4EiYeDjWwpZ3U80Z6J3jExBR+GDVoy/8+uPSxfh+7UD8a0QH
|
|
31
|
+
LgOq3QTHStbVqOBVA/XiTIapLxpC2xOUDpVxKsktRFaBCzBe6XOC/+Hy6YI89g==
|
|
32
|
+
-----END CERTIFICATE-----
|
|
33
|
+
date: 2016-08-29 00:00:00.000000000 Z
|
|
34
|
+
dependencies: []
|
|
35
|
+
description: A library to perform a Caesar cypher by N symbols
|
|
36
|
+
email: annoying-dog@outlook.com
|
|
37
|
+
executables: []
|
|
38
|
+
extensions: []
|
|
39
|
+
extra_rdoc_files: []
|
|
40
|
+
files:
|
|
41
|
+
- lib/rotn.rb
|
|
42
|
+
- lib/rotn/local.rb
|
|
43
|
+
homepage: https://github.com/annoying-dog/rotn
|
|
44
|
+
licenses:
|
|
45
|
+
- MIT
|
|
46
|
+
metadata: {}
|
|
47
|
+
post_install_message:
|
|
48
|
+
rdoc_options: []
|
|
49
|
+
require_paths:
|
|
50
|
+
- lib
|
|
51
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
52
|
+
requirements:
|
|
53
|
+
- - '>='
|
|
54
|
+
- !ruby/object:Gem::Version
|
|
55
|
+
version: '0'
|
|
56
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - '>='
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0'
|
|
61
|
+
requirements: []
|
|
62
|
+
rubyforge_project:
|
|
63
|
+
rubygems_version: 2.0.14
|
|
64
|
+
signing_key:
|
|
65
|
+
specification_version: 4
|
|
66
|
+
summary: Rotate by N
|
|
67
|
+
test_files: []
|
metadata.gz.sig
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
a�SZ����^uu��O`xv��n(�4/
|