multi-updator 0.0.3 → 0.0.5
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/.gitignore +1 -0
- data/lib/multi-updator.rb +1 -1
- data/lib/multi-updator/application_controller.rb +45 -0
- data/lib/multi-updator/routes.rb +40 -0
- data/lib/multi-updator/version.rb +1 -1
- metadata +5 -3
data/.gitignore
CHANGED
data/lib/multi-updator.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
require 'multi-updator/routes'
|
1
|
+
require 'multi-updator/routes.rb'
|
@@ -0,0 +1,45 @@
|
|
1
|
+
class ApplicationController
|
2
|
+
def multi_update
|
3
|
+
|
4
|
+
delete_list, update_list, create_list = [], [], [];
|
5
|
+
|
6
|
+
params[:multiple_data].each do |index, single_data|
|
7
|
+
destroy_flag = single_data.delete(:_destroy)
|
8
|
+
|
9
|
+
if(destroy_flag == "1")
|
10
|
+
delete_list << single_data[:id]
|
11
|
+
else
|
12
|
+
if(single_data[:id])
|
13
|
+
update_list << single_data
|
14
|
+
else
|
15
|
+
create_list << single_data
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# 1. delete
|
21
|
+
resource_class.destroy(delete_list) unless delete_list.empty?
|
22
|
+
|
23
|
+
# 2. update
|
24
|
+
update_list.each do |single_data|
|
25
|
+
# TODO resource_class.find 로 찾을 수 없는 경우 - entry_service 같은 경우에 대한 대응이 필요하다.
|
26
|
+
# ...
|
27
|
+
data = resource_class.find(single_data.delete(:id))
|
28
|
+
update_resource(data, single_data)
|
29
|
+
end
|
30
|
+
|
31
|
+
# 3. create
|
32
|
+
create_list.each do |single_data|
|
33
|
+
#data = build_resource(single_data)
|
34
|
+
#data.save
|
35
|
+
single_data[:domain_id] = @domain.id
|
36
|
+
resource_class.create!(single_data)
|
37
|
+
end
|
38
|
+
|
39
|
+
respond_to do |format|
|
40
|
+
format.html { redirect_to(collection_url) }
|
41
|
+
format.xml { head :ok }
|
42
|
+
format.json { render :json => {"Multi-Update" => "OK"} }
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
ActionDispatch::Routing::Mapper::Resources::Resource.class_eval do
|
2
|
+
self::NEW_DEFAULT_ACTIONS = (self::DEFAULT_ACTIONS << [:select, :multi_update]).flatten!
|
3
|
+
|
4
|
+
def default_actions
|
5
|
+
self.class::NEW_DEFAULT_ACTIONS
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
ActionDispatch::Routing::Mapper::Resources.class_eval do
|
10
|
+
def resources(*resources, &block)
|
11
|
+
options = resources.extract_options!
|
12
|
+
|
13
|
+
if apply_common_behavior_for(:resources, resources, options, &block)
|
14
|
+
return self
|
15
|
+
end
|
16
|
+
|
17
|
+
resource_scope(Resource.new(resources.pop, options)) do
|
18
|
+
yield if block_given?
|
19
|
+
|
20
|
+
collection do
|
21
|
+
get :index if parent_resource.actions.include?(:index)
|
22
|
+
post :create if parent_resource.actions.include?(:create)
|
23
|
+
put :multi_update if parent_resource.actions.include?(:multi_update)
|
24
|
+
end
|
25
|
+
|
26
|
+
new do
|
27
|
+
get :new
|
28
|
+
end if parent_resource.actions.include?(:new)
|
29
|
+
|
30
|
+
member do
|
31
|
+
get :edit if parent_resource.actions.include?(:edit)
|
32
|
+
get :show if parent_resource.actions.include?(:show)
|
33
|
+
put :update if parent_resource.actions.include?(:update)
|
34
|
+
delete :destroy if parent_resource.actions.include?(:destroy)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
self
|
39
|
+
end
|
40
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 5
|
9
|
+
version: 0.0.5
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- shnam
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2011-01-
|
17
|
+
date: 2011-01-13 00:00:00 +09:00
|
18
18
|
default_executable:
|
19
19
|
dependencies: []
|
20
20
|
|
@@ -32,6 +32,8 @@ files:
|
|
32
32
|
- Gemfile
|
33
33
|
- Rakefile
|
34
34
|
- lib/multi-updator.rb
|
35
|
+
- lib/multi-updator/application_controller.rb
|
36
|
+
- lib/multi-updator/routes.rb
|
35
37
|
- lib/multi-updator/version.rb
|
36
38
|
- multi-updator.gemspec
|
37
39
|
has_rdoc: true
|