merge StoredFile app specific methods with the rest of the class definition
authorLunar <lunar@anargeek.net>
Mon, 13 Feb 2012 19:30:01 +0000 (20:30 +0100)
committerLunar <lunar@anargeek.net>
Tue, 14 Feb 2012 17:38:58 +0000 (18:38 +0100)
There is not much added value in spreading the code. Separating concerns is
nice, but there is no problem if another consumer calls these methods anyway.

lib/coquelicot/app.rb
lib/coquelicot/configure.rb
lib/coquelicot/depot.rb
lib/coquelicot/stored_file.rb

index ffda7c8..d876fff 100644 (file)
@@ -6,35 +6,6 @@ require 'gettext'
 require 'haml_gettext'
 
 module Coquelicot
-  class StoredFile
-    def lockfile
-      @lockfile ||= Lockfile.new "#{File.expand_path(@path)}.lock", :timeout => 4
-    end
-
-    def each
-      # output content
-      yield @initial_content
-      @initial_content = nil
-      until (buf = @file.read(BUFFER_LEN)).nil?
-        yield @cipher.update(buf)
-      end
-      yield @cipher.final
-      @fully_sent = true
-    end
-
-    def close
-      if @cipher
-        @cipher.reset
-        @cipher = nil
-      end
-      @file.close
-      if one_time_only?
-        empty! if @fully_sent
-        lockfile.unlock
-      end
-    end
-  end
-
   class << self
     def settings
       (class << self; Application; end)
index 665e9d7..4744399 100644 (file)
@@ -1,3 +1,5 @@
+require 'yaml'
+
 module Coquelicot
   module Configure
     def self.included(c)
index 860883d..1c651d8 100644 (file)
@@ -1,3 +1,6 @@
+require 'lockfile'
+require 'openssl'
+
 module Coquelicot
   class Depot
     attr_reader :path
index b676281..10a270d 100644 (file)
@@ -1,3 +1,7 @@
+require 'base64'
+require 'openssl'
+require 'yaml'
+
 module Coquelicot
   class BadKey < StandardError; end
 
@@ -55,6 +59,34 @@ module Coquelicot
       File.truncate(@path, 0)
     end
 
+    def lockfile
+      @lockfile ||= Lockfile.new "#{File.expand_path(@path)}.lock", :timeout => 4
+    end
+
+    # used by Rack streaming mechanism
+    def each
+      # output content
+      yield @initial_content
+      @initial_content = nil
+      until (buf = @file.read(BUFFER_LEN)).nil?
+        yield @cipher.update(buf)
+      end
+      yield @cipher.final
+      @fully_sent = true
+    end
+
+    def close
+      if @cipher
+        @cipher.reset
+        @cipher = nil
+      end
+      @file.close
+      if one_time_only?
+        empty! if @fully_sent
+        lockfile.unlock
+      end
+    end
+
   private
 
     YAML_START = "--- \n"