recloner 0.0.0

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.
@@ -0,0 +1 @@
1
+ require 'recloner/recloner'
@@ -0,0 +1,8 @@
1
+ module Recloner
2
+ def clone(&block)
3
+ block ||= Proc.new {}
4
+ next_id = database.server.next_uuid
5
+ copy next_id
6
+ self.class.get(next_id).tap(&block).tap {|d| d.save}
7
+ end
8
+ end
@@ -0,0 +1,26 @@
1
+ #Introduction
2
+
3
+ Exposes a "Recloner" module containing a "clone" method that you can mixin to your CouchRest::Model::Base derived objects.
4
+
5
+ #Installation
6
+
7
+ $ gem install recloner
8
+
9
+ #Usage
10
+
11
+ require 'recloner'
12
+ class MyDocument < CouchRest::Model::Base
13
+ include Recloner
14
+ property :name
15
+ end
16
+
17
+ m = MyDocument.create :name => "m"
18
+ p m.id #==> "78439279432743279"
19
+ p m.name #==> "m"
20
+ m1 = m.clone
21
+ p m1.id #==> "45353762637126371"
22
+ p m.name #==> "m"
23
+ m2 = m.clone {|doc| doc.name = "m2"}
24
+ p m2.id #==> "1234566789090"
25
+ p m2.name #==> "m2"
26
+
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: recloner
3
+ version: !ruby/object:Gem::Version
4
+ hash: 31
5
+ prerelease: false
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 0
10
+ version: 0.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Matt Parker
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-08-11 00:00:00 -04:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: couchrest_model
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - "="
28
+ - !ruby/object:Gem::Version
29
+ hash: -1848230057
30
+ segments:
31
+ - 1
32
+ - 0
33
+ - 0
34
+ - beta7
35
+ version: 1.0.0.beta7
36
+ type: :runtime
37
+ version_requirements: *id001
38
+ description: This gem exposes a 'Recloner' module containing a 'clone' method, allowing you to easily clone CouchRest::Model::Base docs.
39
+ email: moonmaster9000@gmail.com
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ extra_rdoc_files: []
45
+
46
+ files:
47
+ - lib/recloner.rb
48
+ - lib/recloner/recloner.rb
49
+ - readme.markdown
50
+ has_rdoc: true
51
+ homepage: http://github.com/moonmaster9000/recloner
52
+ licenses: []
53
+
54
+ post_install_message:
55
+ rdoc_options:
56
+ - --charset=UTF-8
57
+ require_paths:
58
+ - lib
59
+ required_ruby_version: !ruby/object:Gem::Requirement
60
+ none: false
61
+ requirements:
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ hash: 3
65
+ segments:
66
+ - 0
67
+ version: "0"
68
+ required_rubygems_version: !ruby/object:Gem::Requirement
69
+ none: false
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ hash: 3
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ requirements: []
78
+
79
+ rubyforge_project:
80
+ rubygems_version: 1.3.7
81
+ signing_key:
82
+ specification_version: 3
83
+ summary: Clone power for your CouchRest::Model::Base docs.
84
+ test_files: []
85
+