recloner 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
+