persist 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: cfd5a6e8d039461b96ccc4dcb50ffdceb19e3a26
4
+ data.tar.gz: 80c53c2651cd2d090102cd822161930c6d73f777
5
+ SHA512:
6
+ metadata.gz: 3a75c9089a8ae144036e3ed0bfc396744f76a910959cf66035bcae76762c01186eb6cc3266a3ddf013038805beeefe541011d2efcc18f4ec78444d57dced0b5e
7
+ data.tar.gz: d29dfbdb9730f17297867438e979fb00374b54fa0412bdc9c01f28d868f06e6811173d272c11e555ae286bbb93f5bc03d12db93f5c400f08b77f4e018e775fd4
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
4
+ - 1.9.3
5
+ - jruby-19mode
6
+ - rbx-19mode
data/README.md CHANGED
@@ -1,74 +1,38 @@
1
- # Persist.db
1
+ # Persist
2
+ [![Build Status](https://travis-ci.org/havenwood/persist.png?branch=master)](https://travis-ci.org/havenwood/persist)
2
3
 
3
- Persist.db implements a DSL around Ruby Standard Library's PStore to facilitate simple file-persistant storage of Ruby objects in a transactional NoSQL database.
4
+ The Persist gem makes it simple to persist Ruby objects to disk. Persist uses Ruby's PStore class to serialize Ruby objects with Marshal and transactionally save them for retrieval later.
4
5
 
5
6
  ## Installation
6
-
7
- Add this line to your application's Gemfile:
8
-
9
- gem 'persist'
10
-
11
- And then execute:
12
-
13
- $ bundle
14
-
15
- Or install it yourself:
16
-
17
- $ gem install persist
7
+ Install the gem from the command line:
8
+ `gem install persist`
18
9
 
19
10
  ## Usage
20
-
21
- Example in Pry (or IRB if you must):
22
-
11
+ Example in irb or [Pry](http://pryrepl.org):
23
12
  ```ruby
24
13
  require 'persist'
25
- #=> true
26
-
27
- Persist.pull
28
- # => #<PStore:0x007f8c199c9698
29
- @abort=false,
30
- @filename=".db.pstore",
31
- @lock=#<Mutex:0x007f8c199c9580>,
32
- @rdonly=true,
33
- @table={},
34
- @thread_safe=true,
35
- @ultra_safe=true>
36
-
37
14
  Persist[:pie] = ['Key Lime', 'Strawberry Rhubarb', 'Blackberry Cobbler']
38
15
  # => ["Key Lime", "Strawberry Rhubarb", "Blackberry Cobbler"]
39
-
40
- Persist[:ice_cream] = ['chocolate', 'vanilla']
41
- # => ["chocolate", "vanilla"]
42
16
  ```
43
17
 
44
- You can now exit Pry/IRB and your store will persist!
45
-
18
+ You can now exit irb or [Pry](http://pryrepl.org) and your Ruby objects are still there:
46
19
  ```ruby
47
20
  require 'persist'
48
- #=> true
49
-
50
- Persist.pull
51
- #=> #<PStore:0x007f8c199c9698 ... >
52
-
53
21
  Persist[:pie]
54
22
  #=> ["Key Lime", "Strawberry Rhubarb", "Blackberry Cobbler"]
55
23
  ```
56
24
 
57
25
  ## Transactions
58
-
59
26
  Transactions succeed or fail together to ensure that data is not left in a transitory state:
60
-
61
27
  ```ruby
62
28
  Persist.transaction do |db|
63
- db[:cake] = 'pie is better!'
29
+ db[:ice_cream] = ['chocolate', 'vanilla']
64
30
  db.delete :pie
65
31
  end
66
32
  ```
67
33
 
68
34
  ## Helper Methods
69
-
70
- Each of Persist.db's tables is stored as a key:
71
-
35
+ Tables are treated as Hash keys:
72
36
  ```ruby
73
37
  Persist.keys
74
38
  #=> [:pie, :ice_cream]
@@ -80,15 +44,13 @@ Persist.key? :cake
80
44
  #=> false
81
45
  ```
82
46
 
83
- Tables can be clobbered:
84
-
47
+ Easily delete tables:
85
48
  ```ruby
86
49
  Persist.delete :pie
87
50
  #=> nil
88
51
  ```
89
52
 
90
- To check the location of your persistent store file:
91
-
53
+ Check the location of the persistant file on disk:
92
54
  ```ruby
93
55
  Persist.path
94
56
  #=> ".db.pstore"
@@ -98,14 +60,14 @@ Persist.path
98
60
 
99
61
  ## Supported Platforms
100
62
 
101
- Persist.db makes use of PStore's ultra_safe attribute, which requires:
63
+ Persist takes advantage of PStore's [ultra_safe attribute](http://ruby-doc.org/stdlib-2.0/libdoc/pstore/rdoc/PStore.html#ultra_safe-attribute-method), which requires:
102
64
 
103
- 1. Ruby 1.9 (tested on `ruby-1.9.3` and `rbx --1.9` thus far)
104
- 2. A POSIX platform (such as OS X, GNU/Linux or FreeBSD)
65
+ 1. Ruby 1.9+ compatibility (tested on Ruby 2.0.0, 1.9.3, JRuby and Rubinius).
66
+ 2. A POSIX compliant platform (such as OS X, GNU/Linux or a BSD).
105
67
 
106
68
  ## Contributing
107
69
 
108
70
  1. Fork it
109
71
  2. Commit changes (`git commit -am 'did something'`)
110
72
  3. Submit a Pull Request
111
- 4. :cake:
73
+ 4. :cake:
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require 'rake/testtask'
2
+
3
+ task default: [:test]
4
+
5
+ Rake::TestTask.new do |test|
6
+ test.pattern = 'test/*test.rb'
7
+ end
@@ -1,3 +1,3 @@
1
1
  module Persist
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
3
3
  end
data/persist.gemspec CHANGED
@@ -4,8 +4,8 @@ require File.expand_path('../lib/persist/version', __FILE__)
4
4
  Gem::Specification.new do |gem|
5
5
  gem.authors = ['Shannon Skipper']
6
6
  gem.email = ['shannonskipper@gmail.com']
7
- gem.description = %q{A DSL for storing Ruby Objects transactionally in a persistent NoSQL database}
8
- gem.summary = %q{Persist.db is a DSL implemented around Ruby Standard Library's PStore to facilitate simple file-persistant storage of Ruby objects in a transactional NoSQL database.}
7
+ gem.description = %q{A wrapper around Ruby's PStore that allows you to persist Ruby objects to a transactional file store.}
8
+ gem.summary = %q{Persist Ruby objects to a transactional file store using Ruby's Pstore.}
9
9
  gem.homepage = 'https://github.com/Havenwood/persist'
10
10
 
11
11
  gem.files = `git ls-files`.split($\)
@@ -16,7 +16,5 @@ Gem::Specification.new do |gem|
16
16
  gem.version = Persist::VERSION
17
17
 
18
18
  gem.add_development_dependency 'minitest'
19
-
20
- gem.signing_key = '/Users/shannonskipper/.gem/private/gem-private_key.pem'
21
- gem.cert_chain = ['/Users/shannonskipper/.gem/private/gem-public_cert.pem']
19
+ gem.add_development_dependency 'rake'
22
20
  end
data/test/helper.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  require 'minitest/autorun'
2
2
  require 'minitest/pride'
3
- require '../lib/persist'
3
+ require_relative '../lib/persist'
File without changes
metadata CHANGED
@@ -1,64 +1,45 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: persist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
5
- prerelease:
4
+ version: 0.1.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Shannon Skipper
9
8
  autorequire:
10
9
  bindir: bin
11
- cert_chain:
12
- - !binary |-
13
- LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURpakNDQW5LZ0F3SUJB
14
- Z0lCQVRBTkJna3Foa2lHOXcwQkFRVUZBREJGTVJjd0ZRWURWUVFEREE1emFH
15
- RnUKYm05dWMydHBjSEJsY2pFVk1CTUdDZ21TSm9tVDhpeGtBUmtXQldkdFlX
16
- bHNNUk13RVFZS0NaSW1pWlB5TEdRQgpHUllEWTI5dE1CNFhEVEV6TURJd01q
17
- SXlNalExTUZvWERURTBNREl3TWpJeU1qUTFNRm93UlRFWE1CVUdBMVVFCkF3
18
- d09jMmhoYm01dmJuTnJhWEJ3WlhJeEZUQVRCZ29Ka2lhSmsvSXNaQUVaRmdW
19
- bmJXRnBiREVUTUJFR0NnbVMKSm9tVDhpeGtBUmtXQTJOdmJUQ0NBU0l3RFFZ
20
- SktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQU1scwo1WVQ5UHpW
21
- bjM0NWVhL0NaN1hjdHZaVEVGK0d0MWxEbTRWNDFXVkcyR1FnTmEwejlyZFlh
22
- RkF2MzNDNUpqQlg1CkM5ajBKZDU1REREZkdGejh5YTd3WFRTVzdIUGFiNjZx
23
- aFpEWDFYQ2s3OXZmMmFCMFJkVlJnR3dKL1FYa1N3UEgKOGhPV0ZoTTc5L2pM
24
- VEFRcU8yN0pUbHdTSmhHNDNBZUxMWUlqRm4xei8wejVzRGFqdWJ6TVZaUkd5
25
- Rjd1R0hSSgpUcEdEZFhsbGdUNndldU9KNjA4SlRPYTRGeU9EK1lyVlNBWWZN
26
- c09PMFM3SzhHTm9qSVdGeGp2Mk16azFZMG1ECkpRcS9yREorRU51L1lkOTJo
27
- TUVXMzdtM3R1K1l6LzNYS3ZsalBxNHhjZ05sY093NTN1b1Q5Q3FmbERTbmVt
28
- ekMKQTBJV2RLdzNVYjBnWEk0VGY5VUNBd0VBQWFPQmhEQ0JnVEFKQmdOVkhS
29
- TUVBakFBTUFzR0ExVWREd1FFQXdJRQpzREFkQmdOVkhRNEVGZ1FVK2NvaEhy
30
- dXI3S3FScFYvakZzYXRFRmY5cjJzd0l3WURWUjBSQkJ3d0dvRVljMmhoCmJt
31
- NXZibk5yYVhCd1pYSkFaMjFoYVd3dVkyOXRNQ01HQTFVZEVnUWNNQnFCR0hO
32
- b1lXNXViMjV6YTJsd2NHVnkKUUdkdFlXbHNMbU52YlRBTkJna3Foa2lHOXcw
33
- QkFRVUZBQU9DQVFFQUNHODRxc0d3NGYrRGorZHlka1laSzVvMgp3VUh1YjNV
34
- U1YwRlo1Rnd1cVhaclcxQitjY3JqNzZWVzdsalpkNnJyYTkxMjBmSC9KOUN0
35
- R0ZYSExOYmJGYnFyCk03Tkd4N0p4eVBVbFdTQ0VDYUVIeDF3UkFzc3Y2aU9p
36
- TzlpZWozU1pGS2VrQWZDVDNWUG1Kb2s1OXR2dGtHL1MKWGRsYkZGekQwclMw
37
- MEdaZEEyaHBzSmJ2ck1IcmNlclJsSTNXRnR1dk9RT2VGN01ndDNmMnNJQjVl
38
- RkZQR2huZgp6MjJXUXliTStmbGpBek1FcE1qYkdUaFdtdy9nS3FIV09NT1Ey
39
- WjlTOWpjR2pFZUVzK3EzTFJhdlJDelJCQnptCnVZSWIwbWtUcGg0M3lxOVp4
40
- T3h3VDNmYld0RkorUDAwNEl2ZnFwUmpqelgvRXFTRTVBUi94RjFwYTUyRjd3
41
- PT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
42
- date: 2013-02-05 00:00:00.000000000 Z
10
+ cert_chain: []
11
+ date: 2013-06-17 00:00:00.000000000 Z
43
12
  dependencies:
44
13
  - !ruby/object:Gem::Dependency
45
14
  name: minitest
46
15
  requirement: !ruby/object:Gem::Requirement
47
- none: false
48
16
  requirements:
49
- - - ! '>='
17
+ - - '>='
50
18
  - !ruby/object:Gem::Version
51
19
  version: '0'
52
20
  type: :development
53
21
  prerelease: false
54
22
  version_requirements: !ruby/object:Gem::Requirement
55
- none: false
56
23
  requirements:
57
- - - ! '>='
24
+ - - '>='
58
25
  - !ruby/object:Gem::Version
59
26
  version: '0'
60
- description: A DSL for storing Ruby Objects transactionally in a persistent NoSQL
61
- database
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: A wrapper around Ruby's PStore that allows you to persist Ruby objects
42
+ to a transactional file store.
62
43
  email:
63
44
  - shannonskipper@gmail.com
64
45
  executables: []
@@ -66,42 +47,41 @@ extensions: []
66
47
  extra_rdoc_files: []
67
48
  files:
68
49
  - .gitignore
50
+ - .travis.yml
69
51
  - Gemfile
70
52
  - LICENSE
71
53
  - README.md
54
+ - Rakefile
72
55
  - lib/persist.rb
73
56
  - lib/persist/persist.rb
74
57
  - lib/persist/version.rb
75
58
  - persist.gemspec
76
59
  - test/helper.rb
77
- - test/test_persist.rb
60
+ - test/persist_test.rb
78
61
  homepage: https://github.com/Havenwood/persist
79
62
  licenses: []
63
+ metadata: {}
80
64
  post_install_message:
81
65
  rdoc_options: []
82
66
  require_paths:
83
67
  - lib
84
68
  required_ruby_version: !ruby/object:Gem::Requirement
85
- none: false
86
69
  requirements:
87
- - - ! '>='
70
+ - - '>='
88
71
  - !ruby/object:Gem::Version
89
72
  version: '0'
90
73
  required_rubygems_version: !ruby/object:Gem::Requirement
91
- none: false
92
74
  requirements:
93
- - - ! '>='
75
+ - - '>='
94
76
  - !ruby/object:Gem::Version
95
77
  version: '0'
96
78
  requirements: []
97
79
  rubyforge_project:
98
- rubygems_version: 1.8.25
80
+ rubygems_version: 2.0.3
99
81
  signing_key:
100
- specification_version: 3
101
- summary: Persist.db is a DSL implemented around Ruby Standard Library's PStore to
102
- facilitate simple file-persistant storage of Ruby objects in a transactional NoSQL
103
- database.
82
+ specification_version: 4
83
+ summary: Persist Ruby objects to a transactional file store using Ruby's Pstore.
104
84
  test_files:
105
85
  - test/helper.rb
106
- - test/test_persist.rb
86
+ - test/persist_test.rb
107
87
  has_rdoc:
data.tar.gz.sig DELETED
@@ -1,3 +0,0 @@
1
- �����/�E���ߔ�j[Ӡ:�٬�U���Āɉ.N9^��(]\`U�X�\^`/���顩a��B �������sd�r����Ew�^jzH��U�>x�s��h�\�[V]v�f�k=�
2
- ��5��نa���`X��:OpΎ�����T�
3
- �]!j�C��%�����я�wWN5!�L�F��܆ָ�QI�^q0O�[EV��z�*�s�H�5E�t��uJ��?h��ȴ@MFę��)��UO�E/��)˕�����S
metadata.gz.sig DELETED
Binary file