rails-add_ons 0.6.0 → 1.0.0

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
  SHA1:
3
- metadata.gz: 27d2b81421d0d2fa001db6f2b7bd9071190c56c3
4
- data.tar.gz: 5b2cd7b72fde14704f85b85cb166c4d6bae7ccac
3
+ metadata.gz: ec4d8cc8f06e8437cdf7dea6ca365162b767474d
4
+ data.tar.gz: 9d53aaeeabdc8e86ecc1a860f74e56d2ce5050b2
5
5
  SHA512:
6
- metadata.gz: 59f015f0b1adbb87c93bba6618aaa3a7e5ab4676ba6f30005e12c4dd253ce446d15da08eac7c7fcfcb8452bce07f2164ac412fe30b89e567459f1bf49c509fe4
7
- data.tar.gz: c66a9e46718dc4827f95ebf1d4e84b5d5b086edb8939cd862a5fb46437c875331a3219018a59c20be930734b505e9d74ba0d1fcd4130ab2a44d6c704eb34727d
6
+ metadata.gz: 87f4b1f8b9ed7cdb73302ec4b54bd6f638010e13a6e8fa6c58ca4cb656b09f7529fed13309d67dbeb154f363cfbd4a0e04cc5b86302c0c19d2251de41573cb0a
7
+ data.tar.gz: 7ee7d995a3a4b19690224dacb0138dc6a7ba723ec5e9ae6c196177c0f8e5845bd39b416339978a1451c2eaee0deb5a650e23543da59b7e1dab4f259117513585
data/README.md CHANGED
@@ -12,6 +12,14 @@ You have to add
12
12
 
13
13
  to your applications javascript include file to use bootstrap-sass.
14
14
 
15
+ ### Update path to 1.0.0
16
+
17
+ You may want to add
18
+
19
+ //= require tether
20
+
21
+ to your applications javascript include file, as it was removed.
22
+
15
23
  ## Installation
16
24
  Add this line to your application's Gemfile:
17
25
 
@@ -12,5 +12,4 @@
12
12
  //
13
13
  //= require jquery
14
14
  //= require jquery_ujs
15
- //= require tether
16
15
  //= require_tree ./application
@@ -17,9 +17,9 @@ module Component
17
17
  @columns[name] = options
18
18
  end
19
19
 
20
- def timestamps
21
- column(:created_at)
22
- column(:updated_at)
20
+ def timestamps(options = {})
21
+ column(:created_at, options)
22
+ column(:updated_at, options)
23
23
  end
24
24
 
25
25
  def association(name, options = {}, &block)
@@ -0,0 +1,31 @@
1
+ module ResourcesController::LocationHistory
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ if respond_to?(:before_action)
6
+ before_action :store_location
7
+ else
8
+ before_filter :store_location
9
+ end
10
+ end
11
+
12
+ private
13
+
14
+ def store_location
15
+ truncate_location_history(9)
16
+ location_history[Time.zone.now] = request.referer
17
+ end
18
+
19
+ def location_history
20
+ session[:location_history] ||= {}
21
+ end
22
+
23
+ def last_location
24
+ location_history.sort.last.try(:last)
25
+ end
26
+
27
+ def truncate_location_history(count = 0)
28
+ return if location_history.size <= count
29
+ session[:location_history] = session[:location_history].sort.last(count).to_h
30
+ end
31
+ end
@@ -0,0 +1,16 @@
1
+ module ResourcesController::ResourceInflections
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ helper_method :inflections
6
+ end
7
+
8
+ private
9
+
10
+ def inflections
11
+ {
12
+ resource_name: resource_class.model_name.human(count: 1),
13
+ collection_name: resource_class.model_name.human(count: 2)
14
+ }
15
+ end
16
+ end
@@ -0,0 +1,11 @@
1
+ module ResourcesController::Resources
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ helper_method :resource_class
6
+ end
7
+
8
+ def resource_class
9
+ self.class.resource_class
10
+ end
11
+ end
@@ -0,0 +1,78 @@
1
+ module ResourcesController::RestActions
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ include ActionController::MimeResponds
6
+
7
+ respond_to :html
8
+ responders :flash
9
+
10
+ if respond_to?(:before_action)
11
+ before_action :load_collection, only: [:index]
12
+ before_action :load_resource, only: [:show, :edit, :destroy, :update]
13
+ before_action :initialize_resource, only: [:new]
14
+ before_action :initialize_resource_for_create, only: [:create]
15
+ else
16
+ before_filter :load_collection, only: [:index]
17
+ before_filter :load_resource, only: [:show, :edit, :destroy, :update]
18
+ before_filter :initialize_resource, only: [:new]
19
+ before_filter :initialize_resource_for_create, only: [:create]
20
+ end
21
+ end
22
+
23
+ def index; end
24
+ def new; end
25
+ def show; end
26
+ def edit; end
27
+
28
+ def update
29
+ if Rails::VERSION::MAJOR < 4
30
+ @resource.update_attributes(permitted_params)
31
+ else
32
+ @resource.update(permitted_params)
33
+ end
34
+ respond_with @resource
35
+ end
36
+
37
+ def destroy
38
+ @resource.destroy
39
+ respond_with @resource
40
+ end
41
+
42
+ def create
43
+ @resource.save
44
+ respond_with @resource
45
+ end
46
+
47
+ private
48
+
49
+ def after_create_location
50
+ ->(controller) { resource_path(@resource) }
51
+ end
52
+
53
+ def load_collection_scope
54
+ resource_class
55
+ end
56
+ def load_collection
57
+ @collection = load_collection_scope.all
58
+ end
59
+
60
+ def load_resource_scope
61
+ resource_class
62
+ end
63
+ def load_resource
64
+ @resource = load_resource_scope.find(params[:id])
65
+ end
66
+
67
+ def initialize_resource
68
+ @resource = resource_class.new
69
+ end
70
+
71
+ def initialize_resource_for_create
72
+ @resource = resource_class.new(permitted_params)
73
+ end
74
+
75
+ def permitted_params
76
+ raise "not implemented"
77
+ end
78
+ end
@@ -0,0 +1,32 @@
1
+ module ResourcesController::RestResourceUrls
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ helper_method :new_resource_path
6
+ helper_method :collection_path
7
+ helper_method :resource_path
8
+ helper_method :edit_resource_path
9
+ end
10
+
11
+ private
12
+
13
+ def new_resource_path
14
+ resource_router.send(:url_for, { action: :new, only_path: true })
15
+ end
16
+
17
+ def collection_path
18
+ resource_router.send(:url_for, { action: :index, only_path: true })
19
+ end
20
+
21
+ def resource_path(resource)
22
+ resource_router.send(:url_for, { action: :show, id: resource, only_path: true })
23
+ end
24
+
25
+ def edit_resource_path(resource)
26
+ resource_router.send(:url_for, { action: :edit, id: resource, only_path: true })
27
+ end
28
+
29
+ def resource_router
30
+ self
31
+ end
32
+ end
@@ -2,179 +2,6 @@ module ResourcesController
2
2
  class Base < ::FrontendController
3
3
  layout 'rails/add_ons/application'
4
4
 
5
- module RestActions
6
- extend ActiveSupport::Concern
7
-
8
- included do
9
- include ActionController::MimeResponds
10
-
11
- respond_to :html
12
- responders :flash
13
-
14
- if respond_to?(:before_action)
15
- before_action :load_collection, only: [:index]
16
- before_action :load_resource, only: [:show, :edit, :destroy, :update]
17
- before_action :initialize_resource, only: [:new]
18
- before_action :initialize_resource_for_create, only: [:create]
19
- else
20
- before_filter :load_collection, only: [:index]
21
- before_filter :load_resource, only: [:show, :edit, :destroy, :update]
22
- before_filter :initialize_resource, only: [:new]
23
- before_filter :initialize_resource_for_create, only: [:create]
24
- end
25
- end
26
-
27
- def index; end
28
- def new; end
29
- def show; end
30
- def edit; end
31
-
32
- def update
33
- if Rails::VERSION::MAJOR < 4
34
- @resource.update_attributes(permitted_params)
35
- else
36
- @resource.update(permitted_params)
37
- end
38
- respond_with @resource
39
- end
40
-
41
- def destroy
42
- @resource.destroy
43
- respond_with @resource
44
- end
45
-
46
- def create
47
- @resource.save
48
- respond_with @resource
49
- end
50
-
51
- private
52
-
53
- def after_create_location
54
- ->(controller) { resource_path(@resource) }
55
- end
56
-
57
- def load_collection_scope
58
- resource_class
59
- end
60
- def load_collection
61
- @collection = load_collection_scope.all
62
- end
63
-
64
- def load_resource_scope
65
- resource_class
66
- end
67
- def load_resource
68
- @resource = load_resource_scope.find(params[:id])
69
- end
70
-
71
- def initialize_resource
72
- @resource = resource_class.new
73
- end
74
-
75
- def initialize_resource_for_create
76
- @resource = resource_class.new(permitted_params)
77
- end
78
-
79
- def permitted_params
80
- raise "not implemented"
81
- end
82
- end
83
-
84
- module Resources
85
- extend ActiveSupport::Concern
86
-
87
- included do
88
- helper_method :resource_class
89
- end
90
-
91
- def resource_class
92
- self.class.resource_class
93
- end
94
- end
95
-
96
- module RestResourceUrls
97
- extend ActiveSupport::Concern
98
-
99
- included do
100
- helper_method :new_resource_path
101
- helper_method :collection_path
102
- helper_method :resource_path
103
- helper_method :edit_resource_path
104
- end
105
-
106
- private
107
-
108
- def new_resource_path
109
- resource_router.send(:url_for, { action: :new, only_path: true })
110
- end
111
-
112
- def collection_path
113
- resource_router.send(:url_for, { action: :index, only_path: true })
114
- end
115
-
116
- def resource_path(resource)
117
- resource_router.send(:url_for, { action: :show, id: resource, only_path: true })
118
- end
119
-
120
- def edit_resource_path(resource)
121
- resource_router.send(:url_for, { action: :edit, id: resource, only_path: true })
122
- end
123
-
124
- def resource_router
125
- self
126
- end
127
- end
128
-
129
- module ResourceInflections
130
- extend ActiveSupport::Concern
131
-
132
- included do
133
- helper_method :inflections
134
- end
135
-
136
- private
137
-
138
- def inflections
139
- {
140
- resource_name: resource_class.model_name.human(count: 1),
141
- collection_name: resource_class.model_name.human(count: 2)
142
- }
143
- end
144
- end
145
-
146
- module LocationHistory
147
- extend ActiveSupport::Concern
148
-
149
- included do
150
- if respond_to?(:before_action)
151
- before_action :store_location
152
- else
153
- before_filter :store_location
154
- end
155
- end
156
-
157
- private
158
-
159
- def store_location
160
- truncate_location_history(9)
161
- location_history[Time.zone.now] = request.referer
162
- end
163
-
164
- def location_history
165
- session[:location_history] ||= {}
166
- end
167
-
168
- def last_location
169
- location_history.sort.last.try(:last)
170
- end
171
-
172
- def truncate_location_history(count = 0)
173
- return if location_history.size <= count
174
- session[:location_history] = session[:location_history].sort.last(count).to_h
175
- end
176
- end
177
-
178
5
  include RestActions
179
6
  include Resources
180
7
  include RestResourceUrls
@@ -104,45 +104,6 @@ module Rails
104
104
  end
105
105
  end
106
106
 
107
- module Messages
108
- private
109
-
110
- def initialize_messages
111
- @messages = []
112
- end
113
-
114
- def say(what, &block)
115
- @indent ||= 0
116
- if block_given?
117
- @indent += 1
118
- output "#{output_prefix}#{(" " * @indent)}#{what}..."
119
- block_result = yield
120
- say_done
121
- @indent -= 1
122
- block_result
123
- else
124
- output "#{output_prefix}#{(" " * @indent)}#{what}"
125
- end
126
- end
127
-
128
- def say_done
129
- say " => Done"
130
- end
131
-
132
- def output_prefix
133
- "[#{self.class.name}] "
134
- end
135
-
136
- def output(what)
137
- @messages << what
138
- puts what
139
- end
140
-
141
- def copy_messages_to_result
142
- @result.instance_variable_set(:@messages, @messages)
143
- end
144
- end
145
-
146
107
  include Errors
147
108
  include Resultable
148
109
  include Callbacks
@@ -32,7 +32,11 @@ module Rails
32
32
 
33
33
  def output(what)
34
34
  @messages << what
35
- puts what
35
+ puts what unless silenced?
36
+ end
37
+
38
+ def silenced?
39
+ !!@options[:silence]
36
40
  end
37
41
 
38
42
  def copy_messages_to_result
data/lib/rails-add_ons.rb CHANGED
@@ -1,9 +1,13 @@
1
1
  require 'haml-rails'
2
2
  require 'font-awesome-rails'
3
- require 'twitter_bootstrap_components_rails'
3
+ begin
4
+ require 'twitter_bootstrap_components_rails'
5
+ rescue LoadError
6
+ puts "[Rails AddOns]: WARNING - Could not require twitter_bootstrap_components_rails."
7
+ end
4
8
  require 'simple_form'
5
9
  require 'responders' if Rails::VERSION::MAJOR > 3
6
10
  require 'rails-i18n'
7
11
  require 'active_model/model' if Rails::VERSION::MAJOR < 4
8
12
 
9
- require 'rails/add_ons'
13
+ require 'rails/add_ons'
@@ -1,5 +1,5 @@
1
1
  module Rails
2
2
  module AddOns
3
- VERSION = '0.6.0'
3
+ VERSION = '1.0.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails-add_ons
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roberto Vasquez Angel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-11 00:00:00.000000000 Z
11
+ date: 2017-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -190,7 +190,12 @@ files:
190
190
  - app/components/component/collection_table.rb
191
191
  - app/components/component/resource_table.rb
192
192
  - app/concerns/api_controller_concerns/exception_handling.rb
193
+ - app/concerns/resources_controller/location_history.rb
193
194
  - app/concerns/resources_controller/pagination.rb
195
+ - app/concerns/resources_controller/resource_inflections.rb
196
+ - app/concerns/resources_controller/resources.rb
197
+ - app/concerns/resources_controller/rest_actions.rb
198
+ - app/concerns/resources_controller/rest_resource_urls.rb
194
199
  - app/concerns/resources_controller/sorting.rb
195
200
  - app/controllers/api/resources_controller/base.rb
196
201
  - app/controllers/api/service_controller/base.rb