rows_controller 2.1.0 → 2.1.2

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.
Files changed (113) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +8 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +22 -0
  6. data/Appraisals +21 -0
  7. data/Gemfile +14 -0
  8. data/Gemfile.lock +169 -0
  9. data/MIT-LICENSE +1 -1
  10. data/NOTES +87 -0
  11. data/README.md +1 -1
  12. data/Rakefile +1 -19
  13. data/app/controllers/.keep +0 -0
  14. data/app/views/.keep +0 -0
  15. data/bin/rails +12 -0
  16. data/gemfiles/rails_4.2.0.gemfile +13 -0
  17. data/gemfiles/rails_4.2.4.gemfile +13 -0
  18. data/gemfiles/rails_5.1.gemfile +17 -0
  19. data/gemfiles/rails_5.2.gemfile +17 -0
  20. data/lib/rows/version.rb +1 -1
  21. data/rows_controller.gemspec +25 -0
  22. data/script/rails +8 -0
  23. data/test/.watchr +61 -0
  24. data/test/controllers/order/items_controller_test.rb +64 -0
  25. data/test/controllers/orders_test.rb +83 -0
  26. data/test/controllers/rows_controller_test.rb +52 -0
  27. data/test/controllers/rows_ext_controller_test.rb +25 -0
  28. data/test/dummy3/Rakefile +6 -0
  29. data/test/dummy3/app/controllers/application_controller.rb +3 -0
  30. data/test/dummy3/app/controllers/order/items_controller.rb +8 -0
  31. data/test/dummy3/app/controllers/orders_controller.rb +8 -0
  32. data/test/dummy3/app/models/order.rb +14 -0
  33. data/test/dummy3/app/models/order/item.rb +4 -0
  34. data/test/dummy3/app/views/layouts/application.html.erb +12 -0
  35. data/test/dummy3/app/views/order/items/_form.html.erb +8 -0
  36. data/test/dummy3/app/views/orders/_form.html.erb +8 -0
  37. data/test/dummy3/config.ru +4 -0
  38. data/test/dummy3/config/application.rb +58 -0
  39. data/test/dummy3/config/boot.rb +10 -0
  40. data/test/dummy3/config/database.yml +25 -0
  41. data/test/dummy3/config/environment.rb +5 -0
  42. data/test/dummy3/config/environments/development.rb +37 -0
  43. data/test/dummy3/config/environments/production.rb +67 -0
  44. data/test/dummy3/config/environments/test.rb +37 -0
  45. data/test/dummy3/config/initializers/secret_token.rb +7 -0
  46. data/test/dummy3/config/initializers/session_store.rb +8 -0
  47. data/test/dummy3/config/initializers/wrap_parameters.rb +14 -0
  48. data/test/dummy3/config/routes.rb +9 -0
  49. data/test/dummy3/db/migrate/001_create_orders.rb +9 -0
  50. data/test/dummy3/db/migrate/002_create_order_items.rb +9 -0
  51. data/test/dummy3/db/schema.rb +28 -0
  52. data/test/dummy3/script/rails +6 -0
  53. data/test/dummy4/Rakefile +6 -0
  54. data/test/dummy4/app/controllers/application_controller.rb +3 -0
  55. data/test/dummy4/app/controllers/order/items_controller.rb +8 -0
  56. data/test/dummy4/app/controllers/orders_controller.rb +8 -0
  57. data/test/dummy4/app/models/order.rb +13 -0
  58. data/test/dummy4/app/models/order/item.rb +2 -0
  59. data/test/dummy4/app/views/layouts/application.html.erb +12 -0
  60. data/test/dummy4/app/views/order/items/_form.html.erb +8 -0
  61. data/test/dummy4/app/views/orders/_form.html.erb +8 -0
  62. data/test/dummy4/bin/bundle +3 -0
  63. data/test/dummy4/bin/rails +4 -0
  64. data/test/dummy4/bin/rake +4 -0
  65. data/test/dummy4/bin/setup +29 -0
  66. data/test/dummy4/config.ru +4 -0
  67. data/test/dummy4/config/application.rb +25 -0
  68. data/test/dummy4/config/boot.rb +5 -0
  69. data/test/dummy4/config/database.yml +25 -0
  70. data/test/dummy4/config/environment.rb +5 -0
  71. data/test/dummy4/config/environments/development.rb +41 -0
  72. data/test/dummy4/config/environments/production.rb +79 -0
  73. data/test/dummy4/config/environments/test.rb +42 -0
  74. data/test/dummy4/config/initializers/cookies_serializer.rb +3 -0
  75. data/test/dummy4/config/initializers/filter_parameter_logging.rb +4 -0
  76. data/test/dummy4/config/initializers/session_store.rb +3 -0
  77. data/test/dummy4/config/initializers/wrap_parameters.rb +14 -0
  78. data/test/dummy4/config/routes.rb +9 -0
  79. data/test/dummy4/config/secrets.yml +22 -0
  80. data/test/dummy4/db/migrate/001_create_orders.rb +9 -0
  81. data/test/dummy4/db/migrate/002_create_order_items.rb +9 -0
  82. data/test/dummy4/db/schema.rb +28 -0
  83. data/test/dummy4/log/.keep +0 -0
  84. data/test/dummy5/Rakefile +6 -0
  85. data/test/dummy5/app/controllers/application_controller.rb +3 -0
  86. data/test/dummy5/app/controllers/order/items_controller.rb +8 -0
  87. data/test/dummy5/app/controllers/orders_controller.rb +8 -0
  88. data/test/dummy5/app/models/application_record.rb +3 -0
  89. data/test/dummy5/app/models/order.rb +12 -0
  90. data/test/dummy5/app/models/order/item.rb +2 -0
  91. data/test/dummy5/app/views/layouts/application.html.erb +12 -0
  92. data/test/dummy5/app/views/order/items/_form.html.erb +8 -0
  93. data/test/dummy5/app/views/orders/_form.html.erb +8 -0
  94. data/test/dummy5/bin/rails +9 -0
  95. data/test/dummy5/config.ru +5 -0
  96. data/test/dummy5/config/application.rb +19 -0
  97. data/test/dummy5/config/boot.rb +6 -0
  98. data/test/dummy5/config/database.yml +25 -0
  99. data/test/dummy5/config/environment.rb +5 -0
  100. data/test/dummy5/config/environments/test.rb +42 -0
  101. data/test/dummy5/config/routes.rb +9 -0
  102. data/test/dummy5/config/secrets.yml +32 -0
  103. data/test/dummy5/config/spring.rb +6 -0
  104. data/test/dummy5/db/migrate/001_create_orders.rb +9 -0
  105. data/test/dummy5/db/migrate/002_create_order_items.rb +9 -0
  106. data/test/dummy5/db/schema.rb +27 -0
  107. data/test/dummy5/log/.keep +0 -0
  108. data/test/fixtures/order/items.yml +5 -0
  109. data/test/fixtures/orders.yml +5 -0
  110. data/test/test_helper.rb +31 -0
  111. metadata +231 -12
  112. data/app/controllers/rows_controller.rb.bak +0 -88
  113. data/lib/rows/resources.rb.bak +0 -80
@@ -1,88 +0,0 @@
1
- require 'rows/resources'
2
- require 'rows/model'
3
- require 'rows/utils'
4
-
5
- class RowsController < ApplicationController
6
- helper_method :set_resource, :set_resources, :resource, :resources
7
- helper_method :resource_columns, :resource_format
8
- helper_method :model_class, :model_name
9
- helper_method :model_symbol, :model_symbol_plural
10
-
11
- include Rows::Model
12
- include Rows::Resources
13
- include Rows::Utils
14
-
15
- def self.model_class(model_class = nil)
16
- @_model_class ||= nil
17
- @_model_class = model_class unless model_class.nil?
18
- @_model_class
19
- end
20
-
21
- # GET /:resources[.json]
22
- def index
23
- set_resources
24
- end
25
-
26
- # GET /:resource/:id[.json]
27
- def show
28
- set_resource
29
- end
30
-
31
- # GET /:resource/new
32
- def new
33
- resource_new
34
- end
35
-
36
- # GET /:resource/:id/edit
37
- def edit
38
- set_resource
39
- end
40
-
41
- # POST /:resources[.json]
42
- def create
43
- create_update(:resource_create, 'created')
44
- end
45
-
46
- # PATCH/PUT /:resources/:id[.json]
47
- def update
48
- set_resource
49
- create_update(:resource_update, 'updated')
50
- end
51
-
52
- # DELETE /:resources/:id[.json]
53
- def destroy
54
- set_resource
55
- resource_destroy
56
- flash[:notice] = t('ui.destroyed', model: model_name).html_safe unless request.xhr?
57
- respond_to do |format|
58
- format.html { redirect_to action: :index }
59
- format.js { render template: 'rows/destroy', layout: false }
60
- format.json { head :no_content }
61
- end
62
- end
63
-
64
- private
65
- def create_update(which, msg)
66
- respond_to do |format|
67
- if self.send(which)
68
- format.html {
69
- flash[:notice] = t(msg, scope: :ui, model: model_name,
70
- default: "%{model} was successfully #{msg}.").html_safe
71
- if params[:commit] == 'OK'
72
- redirect_to action: :index
73
- else
74
- redirect_to action: 'edit', id: resource.id
75
- end
76
- }
77
- format.json { render action: 'show',
78
- status: msg == 'created' ? :created : :ok,
79
- location: resource }
80
- else ## failed
81
- format.html { render action: msg == 'created' ? :new : :edit }
82
- format.json { render json: resource.errors,
83
- status: :unprocessable_entity }
84
- end
85
- end
86
- end
87
-
88
- end
@@ -1,80 +0,0 @@
1
- module Rows::Resources
2
-
3
- def set_resources(rows = nil)
4
- rows ||= model_class.all
5
- instance_variable_set("@#{model_symbol_plural}", rows)
6
- @rows = rows
7
- end
8
-
9
- def set_resource(row = nil)
10
- row ||= model_class.find_by_id(params[:id].to_i)
11
- instance_variable_set("@#{model_symbol}", row)
12
- @row = row
13
- end
14
-
15
- def resources
16
- @rows ||= set_resources
17
- end
18
-
19
- def resource
20
- @row ||= set_resource
21
- end
22
-
23
- private
24
- # low level resource methods
25
- # can be monkey patched
26
- def resource_new
27
- if params[model_symbol]
28
- set_resource model_class.new(resource_params)
29
- else
30
- set_resource model_class.new
31
- end
32
- end
33
-
34
- def resource_create
35
- resource_new
36
- resource.save
37
- end
38
-
39
- def resource_update
40
- if Rails::VERSION::MAJOR >= 4
41
- return true unless params[model_symbol]
42
- resource.update(resource_params)
43
- else
44
- resource.update_attributes(resource_params)
45
- end
46
- end
47
-
48
- def resource_destroy
49
- resource.destroy
50
- end
51
-
52
- def resource_columns
53
- return model_class.column_headers if model_class.respond_to?(:column_headers)
54
- return ['to_s'] unless model_class.respond_to?(:content_columns)
55
- ['id'] + model_class.content_columns.collect{|c| c.name }
56
- end
57
-
58
- def resource_whitelist
59
- raise "RowsController requires private method 'resource_whitelist' in controller <#{params[:controller]}>"
60
- end
61
-
62
- # Never trust parameters from the scary internet, only allow the white list through.
63
- def resource_params
64
- permits = resource_whitelist
65
- if params.respond_to?(:require)
66
- params.require(model_symbol).permit(permits)
67
- else
68
- pars = params[model_symbol] || {}
69
- pars.keys.each { |x|
70
- x = x.to_sym
71
- unless permits.include?(x) || permits.include?({x => []})
72
- pars.delete(x)
73
- p "** WARNING: model <#{model_name}> dropping params <#{x}>"
74
- end
75
- }
76
- pars
77
- end
78
- end
79
-
80
- end