cabinet 0.1.1 → 0.1.2

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.
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --colour
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cabinet (0.0.1)
4
+ cabinet (0.1.1)
5
5
  fog (~> 0.3.30)
6
6
 
7
7
  GEM
@@ -9,7 +9,7 @@ GEM
9
9
  specs:
10
10
  builder (3.0.0)
11
11
  diff-lcs (1.1.2)
12
- excon (0.3.6)
12
+ excon (0.3.7)
13
13
  fog (0.3.34)
14
14
  builder
15
15
  excon (>= 0.3.6)
@@ -19,6 +19,7 @@ GEM
19
19
  net-ssh (>= 2.0.23)
20
20
  nokogiri (>= 1.4.4)
21
21
  ruby-hmac
22
+ forgery (0.3.6)
22
23
  formatador (0.0.16)
23
24
  json (1.4.6)
24
25
  mime-types (1.16)
@@ -40,4 +41,5 @@ PLATFORMS
40
41
  DEPENDENCIES
41
42
  cabinet!
42
43
  fog (~> 0.3.30)
44
+ forgery
43
45
  rspec (~> 2.3.0)
@@ -21,4 +21,5 @@ Gem::Specification.new do |s|
21
21
 
22
22
  s.add_dependency "fog", "~> 0.3.30"
23
23
  s.add_development_dependency "rspec", "~> 2.3.0"
24
+ s.add_development_dependency "forgery"
24
25
  end
@@ -27,6 +27,11 @@ module Cabinet
27
27
  end
28
28
  end
29
29
 
30
+ def append(name, new_content)
31
+ content = exists?(name) ? get(name) + new_content : new_content
32
+ put(name, content) and !!reload(name)
33
+ end
34
+
30
35
  def delete(name_or_regexp)
31
36
  @file = nil
32
37
 
@@ -60,6 +65,10 @@ module Cabinet
60
65
  !!file(name)
61
66
  end
62
67
 
68
+ def modified(name)
69
+ file(name).last_modified + 0
70
+ end
71
+
63
72
  def gzip(name, content)
64
73
  name = name.gsub(/(.+?)(\.gz)?$/, '\1.gz')
65
74
  local = "/tmp/#{name}"
@@ -78,9 +87,13 @@ module Cabinet
78
87
  if @file && @file.key == name
79
88
  @file
80
89
  else
81
- container.files.reload
82
- @file = container.files.get(name)
90
+ reload(name)
83
91
  end
84
92
  end
93
+
94
+ def reload(name)
95
+ container.files.reload
96
+ @file = container.files.get(name)
97
+ end
85
98
  end
86
99
  end
@@ -15,6 +15,10 @@ module Cabinet
15
15
  File.open(dir + file, 'wb') {|f| f.write(content)} == content.length
16
16
  end
17
17
 
18
+ def append(file, content)
19
+ File.open(dir + file, 'ab') {|f| f.write(content)} == content.length
20
+ end
21
+
18
22
  def delete(file_or_regexp)
19
23
  File.delete *Dir.glob(dir + file_or_regexp)
20
24
  end
@@ -23,6 +27,10 @@ module Cabinet
23
27
  File.exists?(dir + file)
24
28
  end
25
29
 
30
+ def modified(file)
31
+ File.mtime(dir + file)
32
+ end
33
+
26
34
  def gzip(file, content)
27
35
  File.open(dir + file, 'w') do |f|
28
36
  gz = Zlib::GzipWriter.new(f)
@@ -1,3 +1,3 @@
1
1
  module Cabinet
2
- VERSION = "0.1.1"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -22,6 +22,16 @@ describe Cabinet::Cloud do
22
22
  @cc.get(@@file_name).should == @@file_content
23
23
  end
24
24
 
25
+ it "should get last modified" do
26
+ @cc.modified(@@file_name).class.should == Time
27
+ end
28
+
29
+ it "should append file" do
30
+ extra_content = Forgery(:lorem_ipsum).text(:paragraph)
31
+ @cc.append(@@file_name, extra_content).should == true
32
+ @cc.get(@@file_name).should == @@file_content + extra_content
33
+ end
34
+
25
35
  it "should list files" do
26
36
  @cc.list.should include(@@file_name)
27
37
  @cc.list(/#{@@file_name}/).should include(@@file_name)
@@ -21,6 +21,16 @@ describe Cabinet::Local do
21
21
  @cl.get(@@file_name).should == @@file_content
22
22
  end
23
23
 
24
+ it "should see last modified" do
25
+ @cl.modified(@@file_name).class.should == Time
26
+ end
27
+
28
+ it "should append file" do
29
+ extra_content = Forgery(:lorem_ipsum).text(:paragraph)
30
+ @cl.append(@@file_name, extra_content).should == true
31
+ @cl.get(@@file_name).should == @@file_content + extra_content
32
+ end
33
+
24
34
  it "should list files"
25
35
 
26
36
  it "should not overwrite file"
@@ -1,8 +1,9 @@
1
1
  require File.join(File.dirname(__FILE__), '..', 'lib', 'cabinet')
2
+ require 'forgery'
2
3
 
3
4
  RSpec.configure do |config|
4
5
  config.before(:suite) do
5
6
  @@file_name = 'cabinet.test'
6
- @@file_content = (0...50).map{('a'..'z').to_a[rand(26)]}.join
7
+ @@file_content = Forgery(:lorem_ipsum).text(:paragraphs, 10)
7
8
  end
8
9
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cabinet
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Sebastian von Conrad
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-06 00:00:00 +10:30
18
+ date: 2011-01-13 00:00:00 +10:30
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -50,6 +50,20 @@ dependencies:
50
50
  version: 2.3.0
51
51
  type: :development
52
52
  version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: forgery
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 3
62
+ segments:
63
+ - 0
64
+ version: "0"
65
+ type: :development
66
+ version_requirements: *id003
53
67
  description: ""
54
68
  email:
55
69
  - sebastian@vonconrad.com
@@ -61,6 +75,7 @@ extra_rdoc_files: []
61
75
 
62
76
  files:
63
77
  - .gitignore
78
+ - .rspec
64
79
  - Gemfile
65
80
  - Gemfile.lock
66
81
  - LICENSE