rails_default_url_options 5.0.0 → 6.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3528ba9babc8f72d7dfc4157003784eb641171b551ab986cf7a786c0bcddc587
4
- data.tar.gz: 470ec9f879a7e68faf00a6cf05c71e85007d3f946031d774072f5f5488c57b63
3
+ metadata.gz: d4cd442dd369102c6463931394c5ea8011676a361822b096b2d0d2d7222227ff
4
+ data.tar.gz: 3811e6226beac41b4c7a3aadfa18badf922fab5f298401699a9d39d437f64fa5
5
5
  SHA512:
6
- metadata.gz: 66c83875a9548eb4379c5df3ca63c27b807e87b8cd6720e32aaa3078d76c926149dc7ca1631445901ba8500a0062c10ec7918463aa957ebb10f540fc2c5a3fac
7
- data.tar.gz: f81ecdad6a24488fef3dd4d72d7e9ea22b1f781c3ca7fbaf5c035f1f2e3071f08f3a35bcbd3b87c20b6f205b06172afb3028626dfd49c0e132c6c6729287893d
6
+ metadata.gz: c0787e3f5993f7a0150e8011aa538b8a0ea5974311806d1763a41129326e95072f9e34f8784c310b0619347165849138caf87a68215d8aea7565955ffc3abe0d
7
+ data.tar.gz: 63735520cc91a62bdf254740dfe88c73403eeda5b05e625be77e29af79c5bab9ca05b5e4baf6b51b6accf84f8047ebcf319d2111954a02108c00c9bf0cc73fc8
@@ -7,13 +7,13 @@
7
7
  #
8
8
  # 2) dynamically configure these defaults on the first request seen.
9
9
  #
10
- # all we require to do this is a smart hash and simple before_filter. save
10
+ # all we require to do this is a smart hash and simple before_action. save
11
11
  # this file as 'config/intiializers/deafult_url_options.rb' and add this
12
12
  # before filter to your application_controller.rb
13
13
  #
14
14
  # class ApplicationController < ActionController::Base
15
15
  #
16
- # before_filter :configure_default_url_options!
16
+ # before_action :configure_default_url_options!
17
17
  #
18
18
  # protected
19
19
  # def configure_default_url_options!
@@ -31,7 +31,7 @@ unless defined?(DefaultUrlOptions)
31
31
  DefaultUrlOptions = Hash.new
32
32
 
33
33
  def DefaultUrlOptions.version
34
- '5.0.0'
34
+ '6.0.0'
35
35
  end
36
36
 
37
37
  def DefaultUrlOptions.dependencies
@@ -39,7 +39,7 @@ unless defined?(DefaultUrlOptions)
39
39
  end
40
40
 
41
41
 
42
- def DefaultUrlOptions.configure(request = {})
42
+ def DefaultUrlOptions.configure(request = {}, &block)
43
43
  default_url_options = DefaultUrlOptions
44
44
 
45
45
  default_url_options.clear
@@ -60,19 +60,15 @@ unless defined?(DefaultUrlOptions)
60
60
 
61
61
  normalize!
62
62
 
63
- # force action_mailer to not lick balls
63
+ # force action_mailer to not suck so bad
64
64
  #
65
65
  Rails.configuration.action_mailer.default_url_options = default_url_options
66
+
66
67
  if ActionMailer::Base.respond_to?('default_url_options=')
67
68
  ActionMailer::Base.default_url_options = default_url_options
68
69
  end
69
70
 
70
71
  default_url_options
71
- ensure
72
- keys.each do |key|
73
- next if key.is_a?(Symbol)
74
- self[key.to_s.to_sym] = self.fetch(key)
75
- end
76
72
  end
77
73
 
78
74
  def DefaultUrlOptions.configure!(request = {})
@@ -115,7 +111,18 @@ unless defined?(DefaultUrlOptions)
115
111
  delete(:port) if port.to_s == '80'
116
112
  end
117
113
 
118
- keys.each{|key| delete(key) if self[key].nil?}
114
+ keys.each do |key|
115
+ if self[key].nil?
116
+ delete(key)
117
+ next
118
+ end
119
+
120
+ if key.is_a?(Symbol)
121
+ next
122
+ end
123
+
124
+ self[key.to_s.to_sym] = self.delete(key)
125
+ end
119
126
 
120
127
  self
121
128
  end
@@ -132,56 +139,88 @@ unless defined?(DefaultUrlOptions)
132
139
  DefaultUrlOptions[:port]
133
140
  end
134
141
 
142
+ def DefaultUrlOptions.domain
143
+ case host
144
+ when '0.0.0.0', '127.0.0.1'
145
+ 'localhost'
146
+ when /\A[\d.]+\Z/iomx
147
+ host
148
+ else
149
+ host.split('.').last(2).join('.')
150
+ end
151
+ end
152
+
135
153
  def DefaultUrlOptions.to_yaml(*args, &block)
136
154
  Hash.new.update(self).to_yaml(*args, &block)
137
155
  end
138
156
 
157
+ def DefaultUrlOptions.callbacks
158
+ @callbacks ||= []
159
+ end
139
160
  end
140
161
 
141
162
 
142
163
  if defined?(Rails)
143
- ##
144
- #
145
- def DefaultUrlOptions.install_before_filter!
146
- DefaultUrlOptions.configure(
147
- :host => '127.0.0.1',
148
- :port => 3000
149
- ) unless DefaultUrlOptions.configured?
164
+ def DefaultUrlOptions.autoconfigure!(&block)
165
+ unless DefaultUrlOptions.configured?
166
+ DefaultUrlOptions.configure(
167
+ :host => 'localhost',
168
+ :port => 3000
169
+ )
170
+ end
171
+
172
+ if block
173
+ DefaultUrlOptions.callbacks.push(block)
174
+ end
175
+
176
+ DefaultUrlOptions.install_before_action!
177
+ end
178
+
179
+ def DefaultUrlOptions.autoconfigure(&block)
180
+ DefaultUrlOptions.autoconfigure!(&block)
181
+ end
150
182
 
183
+ def DefaultUrlOptions.install_before_action!
151
184
  if defined?(::ActionController::Base)
152
185
  ::ActionController::Base.module_eval do
153
- install_method = respond_to?(:prepend_before_filter) ? :prepend_before_filter : :prepend_before_action
154
-
155
- send(install_method) do |controller|
156
- unless controller.respond_to?(:configure_default_url_options!)
157
- unless DefaultUrlOptions.configured?
158
- request = controller.send(:request)
159
-
160
- if Rails.env.production?
161
- DefaultUrlOptions.configure!(request)
162
- else
163
- DefaultUrlOptions.configure(request)
164
- end
186
+ def configure_default_url_options!
187
+ unless DefaultUrlOptions.configured?
188
+ if Rails.env.production?
189
+ DefaultUrlOptions.configure!(request)
190
+ else
191
+ DefaultUrlOptions.configure(request)
192
+ end
193
+
194
+ DefaultUrlOptions.callbacks.each do |block|
195
+ block.call
165
196
  end
197
+
198
+ DefaultUrlOptions.callbacks.clear
166
199
  end
167
200
  end
201
+
202
+ prepend_before_action = respond_to?(:prepend_before_filter) ? :prepend_before_filter : :prepend_before_action
203
+
204
+ send(prepend_before_action, :configure_default_url_options!)
168
205
  end
169
206
  end
170
207
  end
171
208
 
172
- ##
209
+ =begin
173
210
  #
174
211
  if defined?(Rails::Engine)
175
212
  class Engine < Rails::Engine
176
213
  config.before_initialize do
177
214
  ActiveSupport.on_load(:action_controller) do
178
- DefaultUrlOptions.install_before_filter!
215
+ DefaultUrlOptions.install_before_action!
179
216
  end
180
217
  end
181
218
  end
182
219
  else
183
- DefaultUrlOptions.install_before_filter!
220
+ DefaultUrlOptions.install_before_action!
184
221
  end
222
+ =end
223
+
185
224
  end
186
225
 
187
226
  ::Rails_default_url_options = ::DefaultUrlOptions
@@ -3,7 +3,7 @@
3
3
 
4
4
  Gem::Specification::new do |spec|
5
5
  spec.name = "rails_default_url_options"
6
- spec.version = "5.0.0"
6
+ spec.version = "6.0.0"
7
7
  spec.platform = Gem::Platform::RUBY
8
8
  spec.summary = "rails_default_url_options"
9
9
  spec.description = "description: rails_default_url_options kicks the ass"
@@ -13,7 +13,6 @@ Gem::Specification::new do |spec|
13
13
  ["README.md",
14
14
  "Rakefile",
15
15
  "lib",
16
- "lib/rails_default_url_options",
17
16
  "lib/rails_default_url_options.rb",
18
17
  "rails_default_url_options.gemspec"]
19
18
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_default_url_options
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 6.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ara T. Howard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-12-19 00:00:00.000000000 Z
11
+ date: 2020-10-24 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: 'description: rails_default_url_options kicks the ass'
14
14
  email: ara.t.howard@gmail.com
@@ -39,8 +39,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  requirements: []
42
- rubyforge_project: codeforpeople
43
- rubygems_version: 2.7.6
42
+ rubygems_version: 3.0.3
44
43
  signing_key:
45
44
  specification_version: 4
46
45
  summary: rails_default_url_options