akamaized 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,106 +1,2 @@
1
- require "tempfile"
2
- require "net/ftp"
3
-
4
- module Akamaized
5
-
6
- def initialize(config)
7
- Config.new(config)
8
- end
9
-
10
- module Config
11
- attr_accessor :username, :password, :host, :base_dir
12
-
13
- def initialize(opts = {})
14
- opts = {
15
- username: nil,
16
- password: nil,
17
- host: nil,
18
- base_dir: nil
19
- }.merge(opts)
20
-
21
- self.username = opts.username
22
- self.password = opts.password
23
- self.host = opts.host
24
- self.base_dir = opts.base_dir
25
- end
26
-
27
- end
28
-
29
-
30
- module Connection
31
-
32
- def initialize
33
- begin
34
- @connection = Net::FTP.new(Config.host)
35
- @connection.passive = true
36
- @connection.login(Config.username, Config.password)
37
- @connection.chdir(Config.base_dir) if Config.base_dir
38
- rescue Exception => e
39
- raise AkamaizedException.connection_error
40
- end
41
- end
42
-
43
-
44
- # Check to see if a file
45
- def exists?(file, location = nil)
46
- @connection.chdir(location) unless location.nil?
47
- !@connection.nlist(file).empty?
48
- end
49
-
50
-
51
- # Take a local file and push it up to akamai
52
- # Will raise an exception if unable to push the file up
53
- # or the file is empty after upload (0 bytes)
54
- def put(file, location = nil)
55
- Tempfile.open(file) do |temp|
56
- temp.write(yield)
57
- temp.flush
58
-
59
- @connection.chdir(location) unless location.nil?
60
-
61
- @connection.put(temp.path, "#{file}.new")
62
- @connection.rename("#{file}.new", file)
63
-
64
- raise AkamaizedException.put_error(file) if !exists?(file, location)
65
- end
66
- end
67
-
68
-
69
- # Will attempt to login to the server an remove a file. Returns
70
- # false if unable to delete the file
71
- def delete(file, location = nil)
72
- begin
73
- @connection.chdir(location) unless location.nil?
74
- @connection.delete(file)
75
- rescue Exception => e
76
- false
77
- end
78
- end
79
-
80
-
81
- # Calls the delete method, however, will raise an exception if there was an issue
82
- # whereas "delete" itself will swallow all errors
83
- def delete!(file, location = nil)
84
- raise AkamaizedException.delete_error(file) unless delete(file, location)
85
- end
86
-
87
- end
88
-
89
-
90
- module AkamaizedException
91
-
92
- def delete_error(file)
93
- "unable to delete the file at #{file}"
94
- end
95
-
96
- def put_error(file)
97
- "unable to push file at #{file}"
98
- end
99
-
100
- def connection_error
101
- "unable to connect to Akamai. Please check your authentication credentials"
102
- end
103
-
104
- end
105
-
106
- end
1
+ require "akamaized/exceptions"
2
+ require "akamaized/connections"
@@ -0,0 +1,92 @@
1
+ require "tempfile"
2
+ require "net/ftp"
3
+
4
+ module Akamaized
5
+
6
+ class Config
7
+ attr_accessor :username, :password, :host, :base_dir
8
+
9
+ def initialize(opts = {})
10
+ opts = {
11
+ username: nil,
12
+ password: nil,
13
+ host: nil,
14
+ base_dir: nil
15
+ }.merge(opts)
16
+
17
+ self.username = opts["username"]
18
+ self.password = opts["password"]
19
+ self.host = opts["host"]
20
+ self.base_dir = opts["base_dir"]
21
+ end
22
+
23
+ end
24
+
25
+ class Connection
26
+
27
+ include AkamaizedException
28
+
29
+ def initialize(config = {})
30
+ Config.new(config)
31
+ create_connection
32
+ end
33
+
34
+
35
+ def create_connection
36
+ begin
37
+ @connection = Net::FTP.new(Config.host)
38
+ @connection.passive = true
39
+ @connection.login(Config.username, Config.password)
40
+ @connection.chdir(Config.base_dir) if Config.base_dir
41
+ rescue Exception => e
42
+ raise connection_error
43
+ end
44
+ end
45
+
46
+
47
+ # Check to see if a file
48
+ def exists?(file, location = nil)
49
+ @connection.chdir(location) unless location.nil?
50
+ !@connection.nlist(file).empty?
51
+ end
52
+
53
+
54
+ # Take a local file and push it up to akamai
55
+ # Will raise an exception if unable to push the file up
56
+ # or the file is empty after upload (0 bytes)
57
+ def put(file, location = nil)
58
+ Tempfile.open(file) do |temp|
59
+ temp.write(yield)
60
+ temp.flush
61
+
62
+ @connection.chdir(location) unless location.nil?
63
+
64
+ @connection.put(temp.path, "#{file}.new")
65
+ @connection.rename("#{file}.new", file)
66
+
67
+ raise put_error(file) if !exists?(file, location)
68
+ end
69
+ end
70
+
71
+
72
+ # Will attempt to login to the server an remove a file. Returns
73
+ # false if unable to delete the file
74
+ def delete(file, location = nil)
75
+ begin
76
+ @connection.chdir(location) unless location.nil?
77
+ @connection.delete(file)
78
+ rescue Exception => e
79
+ false
80
+ end
81
+ end
82
+
83
+
84
+ # Calls the delete method, however, will raise an exception if there was an issue
85
+ # whereas "delete" itself will swallow all errors
86
+ def delete!(file, location = nil)
87
+ raise delete_error(file) unless delete(file, location)
88
+ end
89
+
90
+ end
91
+
92
+ end
@@ -0,0 +1,19 @@
1
+ module Akamaized
2
+
3
+ module AkamaizedException
4
+
5
+ def delete_error(file)
6
+ "unable to delete the file at #{file}"
7
+ end
8
+
9
+ def put_error(file)
10
+ "unable to push file at #{file}"
11
+ end
12
+
13
+ def connection_error
14
+ "unable to connect to Akamai. Please check your authentication credentials"
15
+ end
16
+
17
+ end
18
+
19
+ end
@@ -1,3 +1,3 @@
1
1
  module Akamaized
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: akamaized
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.2
5
+ version: 0.0.3
6
6
  platform: ruby
7
7
  authors:
8
8
  - Brandon Hansen, Eric Casequin
@@ -29,6 +29,8 @@ files:
29
29
  - Rakefile
30
30
  - akamaized.gemspec
31
31
  - lib/akamaized.rb
32
+ - lib/akamaized/connections.rb
33
+ - lib/akamaized/exceptions.rb
32
34
  - lib/akamaized/version.rb
33
35
  has_rdoc: true
34
36
  homepage: https://github.com/ready4god2513/Akamaized