active_scaffold_duplicate 1.0.0 → 1.0.1

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA512:
3
+ data.tar.gz: fe4482042e71ce1e6bcc63b89b863c254f92d421b32599109f919858fd465382e45d2f8efd2377966499420fb3b7689e5a0d53d4ce8ae0650a4b0cfe38af3355
4
+ metadata.gz: bb3a717673f55a665db6c817f41439a191d3fadf9a0b58d2f0e77eff71e4cbfb50273580bc8deb7a0c0848faee526ad43a5ec4f89d90e1ad12ebc9da575a37c1
5
+ SHA1:
6
+ data.tar.gz: 86c1f70bcb1c2d68272246587de58b7219ade71b
7
+ metadata.gz: dab546f0a8408f5a9999e9d91d419d548884427b
data/README.textile CHANGED
@@ -19,7 +19,7 @@ h2. Usage
19
19
 
20
20
  h4. Step 1
21
21
 
22
- Override intialize_dup in the model:
22
+ Override initialize_dup in the model to set some attributes or copy associations:
23
23
 
24
24
  <pre>
25
25
  # app/models/bill.rb
@@ -48,12 +48,14 @@ end
48
48
 
49
49
  h4. Step 3
50
50
 
51
- Change method to :get in link if you want to display create form instead of cloning record.
51
+ Change method to :get in link if you want to display create form instead of cloning record. Set position to :replace or :after for inline display, or enable page rendering.
52
52
 
53
53
  <pre>
54
54
  class BillsController < ApplicationController
55
55
  active_scaffold do |conf|
56
- conf.duplicate.link.options.method = :get
56
+ conf.duplicate.link.method = :get
57
+ conf.duplicate.link.position = :after
58
+ #conf.duplicate.link.page = true # for new page rendering
57
59
  end
58
60
  end
59
61
  </pre>
@@ -63,11 +65,14 @@ Also you can change it globally.
63
65
  <pre>
64
66
  class ApplicationController < ActionController::Base
65
67
  active_scaffold.set_defaults do |conf|
66
- conf.duplicate.link.options.method = :get
68
+ conf.duplicate.link.method = :get
69
+ conf.duplicate.link.position = :after
70
+ #conf.duplicate.link.page = true # for new page rendering
67
71
  end
68
72
  end
69
73
  </pre>
70
74
 
75
+ You can access to record which is being duplicated in your form overrides with @old_record variable.
71
76
 
72
77
  If you use :post method, you can enable refresh_list to refresh the list instead of only adding new record at top, or set action_after_clone to open edit form for example:
73
78
 
@@ -76,6 +81,13 @@ If you use :post method, you can enable refresh_list to refresh the list instead
76
81
  conf.duplicate.action_after_clone = :edit
77
82
  </pre>
78
83
 
84
+ h2. Before/after controller methods
85
+
86
+ It's possible to define some methods to add some custom code which require access to session or request params:
87
+
88
+ * For :post method, before_duplicate_save(record) and after_duplicate_save(record) can be defined, which will be called before and after saving the record respectively.
89
+ * For :new method, before_duplicate_new(record) can be defined, which will be called before rendering.
90
+
79
91
  h2. Support
80
92
 
81
93
  If you have issues installing the gem, search / post to the "Active Scaffold":http://groups.google.com/group/activescaffold forum or "Create an issue":http://github.com/activescaffold/active_scaffold_clone/issues
@@ -5,17 +5,25 @@ module ActiveScaffold::Actions
5
5
  end
6
6
 
7
7
  def duplicate
8
- old_record = find_if_allowed(params[:id], :read)
9
- @record = old_record.send(active_scaffold_config.duplicate.method)
8
+ @old_record = find_if_allowed(params[:id], :read)
9
+ @record = @old_record.send(active_scaffold_config.duplicate.method)
10
10
  if request.post?
11
+ before_duplicate_save(@record)
11
12
  self.successful = @record.save
13
+ after_duplicate_save(@record) if successful?
12
14
  respond_to_action(:duplicate)
13
15
  else
16
+ params.delete :id
17
+ before_duplicate_new(@record)
14
18
  respond_to_action(:new)
15
19
  end
16
20
  end
17
21
 
18
22
  protected
23
+ def before_duplicate_save(record); end
24
+ def before_duplicate_new(record); end
25
+ def after_duplicate_save(record); end
26
+
19
27
  def duplicate_authorized?(record = nil)
20
28
  (record || self).authorized_for?(:crud_type => :create, :action => :duplicate)
21
29
  end
@@ -2,7 +2,7 @@ module ActiveScaffoldDuplicate
2
2
  module Version
3
3
  MAJOR = 1
4
4
  MINOR = 0
5
- PATCH = 0
5
+ PATCH = 1
6
6
 
7
7
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
metadata CHANGED
@@ -1,13 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_scaffold_duplicate
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
5
- prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 0
10
- version: 1.0.0
4
+ version: 1.0.1
11
5
  platform: ruby
12
6
  authors:
13
7
  - Sergio Cambra
@@ -15,69 +9,47 @@ autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
11
 
18
- date: 2012-12-18 00:00:00 Z
12
+ date: 2014-02-17 00:00:00 Z
19
13
  dependencies:
20
14
  - !ruby/object:Gem::Dependency
21
- type: :development
22
- requirement: &id001 !ruby/object:Gem::Requirement
23
- none: false
15
+ version_requirements: &id001 !ruby/object:Gem::Requirement
24
16
  requirements:
25
- - - ">="
17
+ - &id003
18
+ - ">="
26
19
  - !ruby/object:Gem::Version
27
- hash: 3
28
- segments:
29
- - 0
30
20
  version: "0"
31
- version_requirements: *id001
32
- prerelease: false
21
+ type: :development
33
22
  name: shoulda
23
+ requirement: *id001
24
+ prerelease: false
34
25
  - !ruby/object:Gem::Dependency
35
- type: :development
36
- requirement: &id002 !ruby/object:Gem::Requirement
37
- none: false
26
+ version_requirements: &id002 !ruby/object:Gem::Requirement
38
27
  requirements:
39
28
  - - ~>
40
29
  - !ruby/object:Gem::Version
41
- hash: 23
42
- segments:
43
- - 1
44
- - 0
45
- - 0
46
30
  version: 1.0.0
47
- version_requirements: *id002
48
- prerelease: false
31
+ type: :development
49
32
  name: bundler
33
+ requirement: *id002
34
+ prerelease: false
50
35
  - !ruby/object:Gem::Dependency
51
- type: :development
52
- requirement: &id003 !ruby/object:Gem::Requirement
53
- none: false
36
+ version_requirements: &id004 !ruby/object:Gem::Requirement
54
37
  requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
61
- version_requirements: *id003
62
- prerelease: false
38
+ - *id003
39
+ type: :development
63
40
  name: rcov
41
+ requirement: *id004
42
+ prerelease: false
64
43
  - !ruby/object:Gem::Dependency
65
- type: :runtime
66
- requirement: &id004 !ruby/object:Gem::Requirement
67
- none: false
44
+ version_requirements: &id005 !ruby/object:Gem::Requirement
68
45
  requirements:
69
46
  - - ">="
70
47
  - !ruby/object:Gem::Version
71
- hash: -615719623
72
- segments:
73
- - 3
74
- - 3
75
- - 0
76
- - rc
77
48
  version: 3.3.0.rc
78
- version_requirements: *id004
79
- prerelease: false
49
+ type: :runtime
80
50
  name: active_scaffold
51
+ requirement: *id005
52
+ prerelease: false
81
53
  description: Clone records using a method from model in ActiveScaffold
82
54
  email: activescaffold@googlegroups.com
83
55
  executables: []
@@ -124,35 +96,25 @@ files:
124
96
  homepage: http://github.com/activescaffold/active_scaffold_duplicate
125
97
  licenses:
126
98
  - MIT
99
+ metadata: {}
100
+
127
101
  post_install_message:
128
102
  rdoc_options: []
129
103
 
130
104
  require_paths:
131
105
  - lib
132
106
  required_ruby_version: !ruby/object:Gem::Requirement
133
- none: false
134
107
  requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- hash: 3
138
- segments:
139
- - 0
140
- version: "0"
108
+ - *id003
141
109
  required_rubygems_version: !ruby/object:Gem::Requirement
142
- none: false
143
110
  requirements:
144
- - - ">="
145
- - !ruby/object:Gem::Version
146
- hash: 3
147
- segments:
148
- - 0
149
- version: "0"
111
+ - *id003
150
112
  requirements: []
151
113
 
152
114
  rubyforge_project:
153
- rubygems_version: 1.8.23
115
+ rubygems_version: 2.0.7
154
116
  signing_key:
155
- specification_version: 3
117
+ specification_version: 4
156
118
  summary: Clone record gem for Activescaffold
157
119
  test_files:
158
120
  - test/auto_models_controller_test.rb