email-vigenere 0.0.2 → 0.0.3

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: 6ef0d5cc0f2b9a98587bea279b8808c2b2a0071a
4
- data.tar.gz: 702dc01e676d9d1840f9c64f18cc251f4b68c28a
3
+ metadata.gz: 4f0287ac575b622e6696ccae824b86d9a4caf4a7
4
+ data.tar.gz: 01a3d9528ae5d352e40a6abe12e09f7f7f978b64
5
5
  SHA512:
6
- metadata.gz: 529530cd099fab6a1e3b1c2223f3cd2e0a54178629cc16f4d66e351d387542b1a903af5784ad604c6c71a7ef159f5efc26b2272010dd83a7a48c8c6fc8c63495
7
- data.tar.gz: adf34e28bd552cc239eb7fb3710fa0fb49c66cca6dcf3563b02e068e43bf6ac7e5a6f0b0e6ea0c3ed055b6708a197f14b3e899c3868a5a8498a6aeaca0c83272
6
+ metadata.gz: 7ec5b9559e17c0f22d36d0902de4e1e1f9489b1444b9332ab8da372dd37870c47c509920a9e31647aa52a84210a0b0caafcd30256964743eb353cac893dbf9d3
7
+ data.tar.gz: bef91d08ac669a3ed8456717ff6b613010ef688081423bb7c9e0105fcdd089f7ee07a0238a989b3a6a5029e714c648700126ba60555e4d21f71cf0eadd695798
data/Gemfile CHANGED
@@ -1,3 +1,7 @@
1
+ source 'http://rubygems.org'
2
+
1
3
  group :test do
2
4
  gem 'rspec'
3
5
  end
6
+
7
+ gem 'bitly', '~> 0.10.4 '
@@ -1,5 +1,3 @@
1
- Copyright (c) 2014 Volodymyr Shatsky
2
-
3
1
  MIT License
4
2
 
5
3
  Permission is hereby granted, free of charge, to any person obtaining
@@ -0,0 +1,16 @@
1
+ ### CircleCi configuration file https://circleci.com/docs/configuration
2
+
3
+ ## Customize the test machine
4
+ machine:
5
+ ruby:
6
+ version: ruby-2.1.2
7
+ general:
8
+ artifacts:
9
+ - "log/test.log"
10
+
11
+ dependencies:
12
+ override:
13
+ - bundle check --path=vendor/bundle || bundle install --path=vendor/bundle --no-deployment
14
+ test:
15
+ override:
16
+ - bundle exec rspec spec
@@ -1,2 +1,3 @@
1
1
  require 'vigenere/version'
2
+ require 'vigenere/config/initializer'
2
3
  require 'vigenere/email_cipher'
@@ -0,0 +1,6 @@
1
+ require 'bitly'
2
+
3
+ Bitly.configure do |config|
4
+ config.api_version = 3
5
+ config.access_token = ENV['BITLY_TOKEN']
6
+ end
@@ -1,3 +1,5 @@
1
+ require 'bitly'
2
+
1
3
  module VIGENERE
2
4
  class EmailCipher
3
5
  def initialize(args = {})
@@ -5,7 +7,6 @@ module VIGENERE
5
7
 
6
8
  # TODO: Add any characters that need to work here
7
9
  @alphabet.concat(('a'..'z').to_a)
8
- @alphabet.concat(('A'..'Z').to_a)
9
10
  @alphabet.concat(('0'..'9').to_a)
10
11
  @alphabet.concat(['&','*','+','-','/','=','?','^','_','`','~','.'])
11
12
  @key = args[:key]
@@ -94,16 +95,15 @@ module VIGENERE
94
95
  alpha_decode decoded
95
96
  end
96
97
 
97
- def split_addresses str
98
+ def split_addresses(str)
98
99
  from = str[0, str.index('_')]
99
100
  to = str[str.index('_')+1, str.length]
100
101
 
101
102
  addresses = { from: from, to: to }
102
103
  end
103
104
 
104
- def parse email_address
105
- encoded_addresses_string = email_address[0, email_address.index('@')]
106
-
105
+ def parse( email_address )
106
+ encoded_addresses_string = expand_bitly(email_address)
107
107
  encoded_addresses = split_addresses encoded_addresses_string
108
108
 
109
109
  from_addr = decode(encoded_addresses[:from])
@@ -112,8 +112,21 @@ module VIGENERE
112
112
  {from: from_addr, to: to_addr}
113
113
  end
114
114
 
115
+ def expand_bitly(email)
116
+ bitly_shortcut = email.gsub!(/(fb_user_|@gofundbase.com)/, '')
117
+ long_url = Bitly.client.expand("http://bit.ly/#{bitly_shortcut}").long_url
118
+ long_url.gsub!(/(\/|\.|http:)/,'')
119
+ end
120
+
121
+ def create_bitly(str)
122
+ str = "http://#{str}".scan(/.{1,24}/).join('.')
123
+ Bitly.client.shorten(str).user_hash
124
+ end
125
+
115
126
  def create_email_address(from, to, domain)
116
- "#{encode(from)}_#{encode(to)}@#{domain}"
127
+ encrypted_email = "#{encode(from)}_#{encode(to)}"
128
+ bitly_shortcut = create_bitly(encrypted_email)
129
+ "fb_user_#{bitly_shortcut}@#{domain}"
117
130
  end
118
131
  end
119
132
  end
@@ -1,3 +1,3 @@
1
1
  module VIGENERE
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
@@ -2,6 +2,7 @@
2
2
  lib = File.expand_path('../lib', __FILE__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
  require 'vigenere/version'
5
+ require 'vigenere/config/initializer'
5
6
 
6
7
  Gem::Specification.new do |spec|
7
8
  spec.name = 'email-vigenere'
@@ -17,4 +18,5 @@ Gem::Specification.new do |spec|
17
18
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
19
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
20
  spec.require_paths = ['lib']
21
+ spec.add_dependency 'bitly', '~> 0.10.4'
20
22
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: email-vigenere
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Fundbase
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-03-30 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2015-04-02 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bitly
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.10.4
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.10.4
13
27
  description: Easily Encode/Decode text with Vigenere Cipher
14
28
  email:
15
29
  - support@fundbase.com
@@ -23,7 +37,9 @@ files:
23
37
  - Gemfile
24
38
  - LICENSE.txt
25
39
  - README.md
40
+ - circle.yml
26
41
  - lib/vigenere.rb
42
+ - lib/vigenere/config/initializer.rb
27
43
  - lib/vigenere/email_cipher.rb
28
44
  - lib/vigenere/version.rb
29
45
  - spec/email_cipher_spec.rb