rows_controller 2.2.0 → 3.0.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c53fee168bd4d0d8a093e355c28e23c860f6a93b6b18bdcbc4a514bd590ada3
4
- data.tar.gz: 38047665206377aa534418e0bb866548e7facd23a05953a19a6b2d75ff3497ff
3
+ metadata.gz: 1ea282f99f4fadad36a5d7973f85373cde5d0a99bd4693b73ba4bb7022966d74
4
+ data.tar.gz: bff51320262e2bcc2853abf0825a4887177755af61d32340e07c38cd321f1a93
5
5
  SHA512:
6
- metadata.gz: 3ad3fa4eb527976a1a7693093b314bf82579ba1da6e0423c97b679b4a45c588642ed041eb3c7bf69e8619302c780c1fecd70033087be6b16fe2810dc1bf90cf2
7
- data.tar.gz: 430fbdeec449cbb5de02eb3f228616fb8dda569e9a469838f23b9295c8f75af1f32664c23558733e80f9733bf1d93c45013ef487d6db28afc582dd24827febc7
6
+ metadata.gz: 6fc50f5cedbd36b6fc06c3bb71e489543629b0c9cc88b7fc7044d111d74d2f612189b0f6f686047975ecb8006a4acb4eb7e41a2cb77d01409e656d0b8eb1118f
7
+ data.tar.gz: 265a469734b8be2a4b6e1087470e0cdbc284b3d32de4591ee229c9ee0993fbe27487512ff10be84d52c76b35279bd80f37f0e512ebd47dd0f7370246a3f0ad17
@@ -1,4 +1,4 @@
1
- Copyright 2009-2018 Dittmar Krall http://matique.de
1
+ Copyright (c) 2012-2020 Dittmar Krall - www.matique.com
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -26,8 +26,8 @@ use:
26
26
 
27
27
  I.e. RowsController defines all the usual methods (index, show, edit,...).
28
28
 
29
- The methods may be redefined in OrdersController overwriting the
30
- methods from RowsController.
29
+ The methods may be redefined in OrdersController
30
+ (overwrites methods from RowsController).
31
31
 
32
32
  Low level methods like 'resources' may be redefined as well.
33
33
  An example:
@@ -70,6 +70,12 @@ be changed by e.g.:
70
70
  The model class can be retrieved with the helper model_class.
71
71
 
72
72
 
73
+ Rails 6
74
+ -------
75
+
76
+ This gem is intended for Rails 6.
77
+ Older Rails versions may use "gem 'rows_controller', '= 2.2.2'".
78
+
73
79
  Rails 5
74
80
  -------
75
81
 
@@ -118,7 +124,7 @@ As usual:
118
124
 
119
125
  gem 'rows_controller' # in Gemfile
120
126
  bundle
121
- ( cd spec/dummy; rake db:create db:migrate )
127
+ ( cd spec/dummy; rake db:create db:migrate ) # not required for Rails 6
122
128
  rake
123
129
 
124
130
 
@@ -131,4 +137,4 @@ Look for:
131
137
  - inherited_resources
132
138
  - decent_exposure
133
139
 
134
- Copyright (c) 2009-2017 [Dittmar Krall], released under the MIT license.
140
+ Copyright (c) 2009-2020 [Dittmar Krall], released under the MIT license.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'rows/resources'
2
4
  require 'rows/model'
3
5
  require 'rows/utils'
@@ -56,7 +58,8 @@ class RowsController < ApplicationController
56
58
  def destroy
57
59
  set_resource
58
60
  resource_destroy
59
- flash[:notice] = t('ui.destroyed', model: model_name).html_safe unless request.xhr?
61
+ msg = t('ui.destroyed', model: model_name).html_safe
62
+ flash[:notice] = msg unless request.xhr?
60
63
  respond_to do |format|
61
64
  format.html { redirect_to action: :index }
62
65
  format.js { render template: 'rows/destroy', layout: false }
@@ -67,14 +70,14 @@ class RowsController < ApplicationController
67
70
  private
68
71
  def create_update(which, msg)
69
72
  respond_to do |format|
70
- if self.send(which)
73
+ if send(which)
71
74
  format.html {
72
75
  flash[:notice] = t(msg, scope: :ui, model: model_name,
73
76
  default: "%{model} was successfully #{msg}.").html_safe
74
77
  if params[:commit] == 'OK'
75
78
  redirect_to action: :index
76
79
  else
77
- redirect_to action: 'edit', id: resource.id
80
+ redirect_to action: 'edit', id: resource.id
78
81
  end
79
82
  }
80
83
  format.json { render action: 'show',
@@ -1,10 +1,13 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Extensions
1
4
  class RowsExtController < RowsController
2
5
 
3
6
  def copy
4
7
  set_resource resource.dup
5
8
  resource.id = nil
6
9
  respond_to do |format|
7
- format.html { render :action => :new }
10
+ format.html { render action: :new }
8
11
  end
9
12
  end
10
13
 
@@ -1,3 +1,5 @@
1
+ # rubocop: disable all
2
+
1
3
  module Rows
2
4
  class Engine < ::Rails::Engine
3
5
  end
@@ -1,30 +1,30 @@
1
- module Rows::Model
1
+ # frozen_string_literal: true
2
2
 
3
+ module Rows::Model
3
4
  def model_class
4
- @_model_class ||= self.class.model_class ||
5
- params[:controller].singularize.camelize.constantize
5
+ @_model_class ||= self.class.model_class ||
6
+ params[:controller].singularize.camelize.constantize
6
7
  end
7
8
 
8
- if Rails::VERSION::MAJOR > 3
9
- def model_name
10
- @_model_name ||= model_class.model_name.name
11
- end
9
+ if Rails::VERSION::MAJOR > 3
10
+ def model_name
11
+ @_model_name ||= model_class.model_name.name
12
+ end
12
13
 
13
- def model_symbol
14
- @_model_symbol ||= model_class.model_name.singular
15
- end
16
- else
17
- def model_name
18
- @_model_name ||= model_class.name
19
- end
14
+ def model_symbol
15
+ @_model_symbol ||= model_class.model_name.singular
16
+ end
17
+ else
18
+ def model_name
19
+ @_model_name ||= model_class.name
20
+ end
20
21
 
21
- def model_symbol
22
- @_model_symbol ||= model_name.underscore.gsub( %r{/}, '_' )
22
+ def model_symbol
23
+ @_model_symbol ||= model_name.underscore.gsub(%r{/}, '_')
24
+ end
23
25
  end
24
- end
25
26
 
26
27
  def model_symbol_plural
27
28
  @_model_symbol_plural ||= model_symbol.pluralize
28
29
  end
29
-
30
30
  end
@@ -1,5 +1,6 @@
1
- module Rows::Resources
1
+ # frozen_string_literal: true
2
2
 
3
+ module Rows::Resources
3
4
  def set_resources(rows = nil)
4
5
  rows ||= model_class.all
5
6
  instance_variable_set("@#{model_symbol_plural}", rows)
@@ -21,8 +22,8 @@ module Rows::Resources
21
22
  end
22
23
 
23
24
  private
24
- # low level resource methods
25
- # can be monkey patched
25
+ # low level resource methods
26
+ # can be monkey patched
26
27
  def resource_new
27
28
  if params[model_symbol]
28
29
  set_resource model_class.new(resource_params)
@@ -38,7 +39,7 @@ module Rows::Resources
38
39
 
39
40
  def resource_update
40
41
  if Rails::VERSION::MAJOR >= 4
41
- # return true unless params[model_symbol]
42
+ # return true unless params[model_symbol]
42
43
  resource.update(resource_params)
43
44
  else
44
45
  resource.update_attributes(resource_params)
@@ -50,16 +51,18 @@ module Rows::Resources
50
51
  end
51
52
 
52
53
  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 }
54
+ return model_class.column_headers if model_class.respond_to?(:column_headers)
55
+ return ['to_s'] unless model_class.respond_to?(:content_columns)
56
+
57
+ ['id'] + model_class.content_columns.collect(&:name)
56
58
  end
57
59
 
58
60
  def resource_whitelist
59
61
  raise "RowsController requires private method 'resource_whitelist' in controller <#{params[:controller]}>"
60
62
  end
61
63
 
62
- # Never trust parameters from the scary internet, only allow the white list through.
64
+ # Never trust parameters from the scary internet, only allow the
65
+ # white list through.
63
66
  def resource_params
64
67
  permits = resource_whitelist
65
68
  if params.respond_to?(:require)
@@ -67,14 +70,13 @@ module Rows::Resources
67
70
  else
68
71
  pars = params[model_symbol] || {}
69
72
  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
73
+ x = x.to_sym
74
+ unless permits.include?(x) || permits.include?({x => []})
75
+ pars.delete(x)
76
+ p "** WARNING: model <#{model_name}> dropping params <#{x}>"
77
+ end
75
78
  }
76
79
  pars
77
80
  end
78
81
  end
79
-
80
82
  end
@@ -1,20 +1,23 @@
1
- module Rows::Utils
1
+ # frozen_string_literal: true
2
+ # rubocop: disable all
2
3
 
3
- # formatting
4
+ module Rows::Utils
5
+ # formatting
4
6
  def resource_format(x)
5
7
  return '--'.html_safe if x.nil?
8
+
6
9
  bool = x.class == Time || x.class == Date || x.class == DateTime ||
7
- x.class == ActiveSupport::TimeWithZone
8
- return x.strftime('%d.%m.%Y').html_safe if bool
9
- # return I18n.l(x) if bool
10
- # return x.to_s.html_safe if x.class == Fixnum
11
- return x.to_s.html_safe if x.kind_of?(Integer)
10
+ x.class == ActiveSupport::TimeWithZone
11
+ return x.strftime('%d.%m.%Y').html_safe if bool
12
+
13
+ # return I18n.l(x) if bool
14
+ # return x.to_s.html_safe if x.class == Fixnum
15
+ return x.to_s.html_safe if x.is_a?(Integer)
12
16
  return 'X'.html_safe if x.class == TrueClass
13
17
  return '&ensp;'.html_safe if x.class == FalseClass
14
18
  return x.call if x.class == Proc
15
19
  return '---'.html_safe if x.empty?
16
- str = x.to_s
17
- return str.gsub(/\r*\n/, '<br/>')
18
- end
19
20
 
21
+ x.to_s.gsub(/\r*\n/, '<br/>')
22
+ end
20
23
  end
@@ -1,3 +1,12 @@
1
+ # rubocop: disable all
2
+
1
3
  module Rows
2
- VERSION = '2.2.0'
4
+ VERSION = '3.0.3' # 2020-07-14
5
+ # VERSION = '3.0.2' # 2020-04-27
6
+ # VERSION = '3.0.1' # 2020-03-01
7
+ # VERSION = '3.0.0' # 2019-10-03
8
+ # VERSION = '2.2.3' # 2019-10-03
9
+ # VERSION = '2.2.2' # 2019-05-06
10
+ # VERSION = '2.2.1' # 2019-02-18
11
+ # VERSION = '2.2.0'
3
12
  end
@@ -1,3 +1,11 @@
1
+ # rubocop: disable all
2
+
1
3
  module Rows
2
- VERSION = '2.1.3'
4
+ VERSION = '3.0.2' # 2020-04-27
5
+ # VERSION = '3.0.1' # 2020-03-01
6
+ # VERSION = '3.0.0' # 2019-10-03
7
+ # VERSION = '2.2.3' # 2019-10-03
8
+ # VERSION = '2.2.2' # 2019-05-06
9
+ # VERSION = '2.2.1' # 2019-02-18
10
+ # VERSION = '2.2.0'
3
11
  end
@@ -1,8 +1,10 @@
1
+ # rubocop: disable all
2
+
1
3
  require 'rows/engine'
2
4
 
3
5
  module Rows
4
6
  end
5
7
 
6
- I18n.load_path << File.expand_path('../rows/locales/en.yml', __FILE__)
7
- I18n.load_path << File.expand_path('../rows/locales/de.yml', __FILE__)
8
+ I18n.load_path << File.expand_path('rows/locales/en.yml', __dir__)
9
+ I18n.load_path << File.expand_path('rows/locales/de.yml', __dir__)
8
10
  I18n.reload!
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rows_controller
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.0
4
+ version: 3.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dittmar Krall
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-04-29 00:00:00.000000000 Z
11
+ date: 2020-07-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '12'
33
+ version: '13'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '12'
40
+ version: '13'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: appraisal
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,48 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: combustion
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.1'
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: '5'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '5'
83
+ - !ruby/object:Gem::Dependency
84
+ name: sqlite3
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '1'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '1'
55
97
  description: YourController < RowsController ( < ApplicationController).
56
98
  email:
57
99
  - dittmar.krall@matique.de
@@ -62,7 +104,6 @@ files:
62
104
  - MIT-LICENSE
63
105
  - README.md
64
106
  - app/controllers/rows_controller.rb
65
- - app/controllers/rows_controller.rb.bak
66
107
  - app/controllers/rows_ext_controller.rb
67
108
  - app/views/rows/_form.slim
68
109
  - app/views/rows/_list.slim
@@ -83,9 +124,7 @@ files:
83
124
  - lib/rows/locales/de.yml
84
125
  - lib/rows/locales/en.yml
85
126
  - lib/rows/model.rb
86
- - lib/rows/model.rb.bak
87
127
  - lib/rows/resources.rb
88
- - lib/rows/resources.rb.bak
89
128
  - lib/rows/utils.rb
90
129
  - lib/rows/version.rb
91
130
  - lib/rows/version.rb.bak
@@ -109,8 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
109
148
  - !ruby/object:Gem::Version
110
149
  version: '0'
111
150
  requirements: []
112
- rubyforge_project:
113
- rubygems_version: 2.7.6
151
+ rubygems_version: 3.0.8
114
152
  signing_key:
115
153
  specification_version: 4
116
154
  summary: RowsController DRYs your controllers.
@@ -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,30 +0,0 @@
1
- module Rows::Model
2
-
3
- def model_class
4
- @_model_class ||= self.class.model_class ||
5
- params[:controller].singularize.camelize.constantize
6
- end
7
-
8
- if Rails::VERSION::MAJOR > 3
9
- def model_name
10
- @_model_name ||= model_class.model_name.name
11
- end
12
-
13
- def model_symbol
14
- @_model_symbol ||= model_class.model_name.singular
15
- end
16
- else
17
- def model_name
18
- @_model_name ||= model_class.name
19
- end
20
-
21
- def model_symbol
22
- @_model_symbol ||= model_name.underscore.gsub( %r{/}, '_' )
23
- end
24
- end
25
-
26
- def model_symbol_plural
27
- @_model_symbol_plural ||= model_symbol.pluralize
28
- end
29
-
30
- 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