duty_free 1.0.9 → 1.0.10
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 +4 -4
- data/lib/duty_free/extensions.rb +0 -1
- data/lib/duty_free/util.rb +26 -12
- data/lib/duty_free/version_number.rb +1 -1
- data/lib/duty_free.rb +4 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa24c207ea3302cdd1cb04bf479c8140c63b4854a3ca628cb9a9f2b02ca9db19
|
4
|
+
data.tar.gz: 2d01e88512109b271209cb95f5b2b3e8f3b4222fda500e0d5f7b8ab06f6a0c11
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 025a2518dd7b88156e77be76697eeb0480b0a3fe7930fda9d4f2509b4d718e9d17744a6f5fb4ffdf8709ea7a80a0056fdb525d19ade89e3da1af084a9feb7a54
|
7
|
+
data.tar.gz: c1fd873299cb7bfca3f265d949c9e7bcc2788b5d2854a92c409ac4c5d7248827f07c4e21c2b353c10115d97201103b3e78dbbd119b2b61ae3b1a2f1659533649
|
data/lib/duty_free/extensions.rb
CHANGED
@@ -627,7 +627,6 @@ module DutyFree
|
|
627
627
|
start = 0
|
628
628
|
trim_prefix = v.titleize[start..-(v.name.length + 2)]
|
629
629
|
trim_prefix << ' ' unless trim_prefix.blank?
|
630
|
-
binding.pry unless assoc
|
631
630
|
if assoc.belongs_to?
|
632
631
|
klass = Object.const_get(assoc&.class_name)
|
633
632
|
# Try to find a unique item if one is referenced
|
data/lib/duty_free/util.rb
CHANGED
@@ -97,7 +97,7 @@ module DutyFree
|
|
97
97
|
|
98
98
|
# ===================================
|
99
99
|
# Epic require patch
|
100
|
-
def self._patch_require(module_filename, folder_matcher,
|
100
|
+
def self._patch_require(module_filename, folder_matcher, replacements, autoload_symbol = nil, is_bundler = false)
|
101
101
|
mod_name_parts = module_filename.split('.')
|
102
102
|
extension = case mod_name_parts.last
|
103
103
|
when 'rb', 'so', 'o'
|
@@ -120,10 +120,17 @@ module DutyFree
|
|
120
120
|
Dir.mkdir(new_part) unless Dir.exist?(new_part)
|
121
121
|
new_part
|
122
122
|
end
|
123
|
-
if ::DutyFree::Util._write_patched(folder_matcher, module_filename, extension, custom_require_dir, nil,
|
123
|
+
if ::DutyFree::Util._write_patched(folder_matcher, module_filename, extension, custom_require_dir, nil, replacements) &&
|
124
124
|
!alp.include?(custom_require_dir)
|
125
125
|
alp.unshift(custom_require_dir)
|
126
126
|
end
|
127
|
+
elsif is_bundler
|
128
|
+
puts "Bundler hack"
|
129
|
+
require 'pry-byebug'
|
130
|
+
binding.pry
|
131
|
+
x = 5
|
132
|
+
# bin_path
|
133
|
+
# puts Bundler.require.inspect
|
127
134
|
else
|
128
135
|
unless (require_overrides = ::DutyFree::Util.instance_variable_get(:@_require_overrides))
|
129
136
|
::DutyFree::Util.instance_variable_set(:@_require_overrides, (require_overrides = {}))
|
@@ -134,19 +141,19 @@ module DutyFree
|
|
134
141
|
# then required in place of the original.
|
135
142
|
|
136
143
|
Kernel.module_exec do
|
137
|
-
# class << self
|
138
144
|
alias_method :orig_require, :require
|
139
|
-
# end
|
140
145
|
# To be most faithful to Ruby's normal behaviour, this should look like a public singleton
|
141
146
|
define_method(:require) do |name|
|
147
|
+
# %%% Can get a message such as "ActionDispatch::Routing is not missing constant RouteSet! (NameError)"
|
148
|
+
# binding.pry if name.start_with?('action_dispatch/routing/route_') # || name == 'active_support/values/time_zone'
|
142
149
|
if (require_override = ::DutyFree::Util.instance_variable_get(:@_require_overrides)[name])
|
143
|
-
extension, folder_matcher,
|
150
|
+
extension, folder_matcher, replacements, autoload_symbol = require_override
|
144
151
|
patched_filename = "/patched_#{name.tr('/', '_')}#{extension}"
|
145
152
|
if $LOADED_FEATURES.find { |f| f.end_with?(patched_filename) }
|
146
153
|
false
|
147
154
|
else
|
148
155
|
is_replaced = false
|
149
|
-
if (replacement_path = ::DutyFree::Util._write_patched(folder_matcher, name, extension, ::DutyFree::Util._custom_require_dir, patched_filename,
|
156
|
+
if (replacement_path = ::DutyFree::Util._write_patched(folder_matcher, name, extension, ::DutyFree::Util._custom_require_dir, patched_filename, replacements))
|
150
157
|
is_replaced = Kernel.send(:orig_require, replacement_path)
|
151
158
|
elsif replacement_path.nil?
|
152
159
|
puts "Couldn't find #{name} to require it!"
|
@@ -159,12 +166,13 @@ module DutyFree
|
|
159
166
|
end
|
160
167
|
end
|
161
168
|
end
|
162
|
-
require_overrides[module_filename] = [extension, folder_matcher,
|
169
|
+
require_overrides[module_filename] = [extension, folder_matcher, replacements, autoload_symbol]
|
163
170
|
end
|
164
171
|
end
|
165
172
|
|
166
173
|
def self._custom_require_dir
|
167
174
|
unless (custom_require_dir = ::DutyFree::Util.instance_variable_get(:@_custom_require_dir))
|
175
|
+
require 'tmpdir'
|
168
176
|
::DutyFree::Util.instance_variable_set(:@_custom_require_dir, (custom_require_dir = Dir.mktmpdir))
|
169
177
|
# So normal Ruby require will now pick this one up
|
170
178
|
$LOAD_PATH.unshift(custom_require_dir)
|
@@ -178,11 +186,12 @@ module DutyFree
|
|
178
186
|
|
179
187
|
# Returns the full path to the replaced filename, or
|
180
188
|
# false if the file already exists, and nil if it was unable to write anything.
|
181
|
-
def self._write_patched(folder_matcher, name, extension, dir, patched_filename,
|
189
|
+
def self._write_patched(folder_matcher, name, extension, dir, patched_filename, replacements)
|
182
190
|
# See if our replacement file might already exist for some reason
|
183
191
|
name = +"/#{name}" unless name.start_with?('/')
|
184
192
|
name << extension unless name.end_with?(extension)
|
185
|
-
|
193
|
+
puts (replacement_path = "#{dir}#{patched_filename || name}")
|
194
|
+
return false if File.exist?(replacement_path)
|
186
195
|
|
187
196
|
# Dredge up the original .rb file, doctor it, and then require it instead
|
188
197
|
num_written = nil
|
@@ -193,9 +202,14 @@ module DutyFree
|
|
193
202
|
orig_path = "#{path}#{name}"
|
194
203
|
break if path.include?(folder_matcher) && (orig_as = File.open(orig_path))
|
195
204
|
end
|
196
|
-
|
197
|
-
|
198
|
-
|
205
|
+
puts [folder_matcher, name].inspect
|
206
|
+
if (updated_text = orig_as&.read)
|
207
|
+
File.open(replacement_path, 'w') do |replaced_file|
|
208
|
+
replacements = [replacements] unless replacements.first.is_a?(Array)
|
209
|
+
replacements.each do |search_text, replacement_text|
|
210
|
+
updated_text.gsub!(search_text, replacement_text)
|
211
|
+
end
|
212
|
+
num_written = replaced_file.write(updated_text)
|
199
213
|
end
|
200
214
|
orig_as.close
|
201
215
|
end
|
data/lib/duty_free.rb
CHANGED
@@ -50,15 +50,15 @@ if ActiveRecord.version < ::Gem::Version.new('3.2') &&
|
|
50
50
|
# Remove circular reference for "now"
|
51
51
|
::DutyFree::Util._patch_require(
|
52
52
|
'active_support/values/time_zone.rb', '/activesupport',
|
53
|
-
' def parse(str, now=now)',
|
54
|
-
' def parse(str, now=now())'
|
53
|
+
[' def parse(str, now=now)',
|
54
|
+
' def parse(str, now=now())']
|
55
55
|
)
|
56
56
|
# Remove circular reference for "reflection" for ActiveRecord 3.1
|
57
57
|
if ActiveRecord.version >= ::Gem::Version.new('3.1')
|
58
58
|
::DutyFree::Util._patch_require(
|
59
59
|
'active_record/associations/has_many_association.rb', '/activerecord',
|
60
|
-
'reflection = reflection)',
|
61
|
-
'reflection = reflection())',
|
60
|
+
['reflection = reflection)',
|
61
|
+
'reflection = reflection())'],
|
62
62
|
:HasManyAssociation # Make sure the path for this guy is available to be autoloaded
|
63
63
|
)
|
64
64
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: duty_free
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lorin Thwaits
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|