Class: Rails::Paths::Path
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Enumerable
#as_json, #compact_blank, #exclude?, #excluding, #including, #index_by, #index_with, #many?, #pluck, #sum, #without
Constructor Details
#initialize(root, current, paths, options = {}) ⇒ Path
Returns a new instance of Path.
116
117
118
119
120
121
122
123
124
125
126
127
|
# File 'railties/lib/rails/paths.rb', line 116
def initialize(root, current, paths, options = {})
@paths = paths
@current = current
@root = root
@glob = options[:glob]
@exclude = options[:exclude]
options[:autoload_once] ? autoload_once! : skip_autoload_once!
options[:eager_load] ? eager_load! : skip_eager_load!
options[:autoload] ? autoload! : skip_autoload!
options[:load_path] ? load_path! : skip_load_path!
end
|
Instance Attribute Details
Returns the value of attribute glob
114
115
116
|
# File 'railties/lib/rails/paths.rb', line 114
def glob
@glob
end
|
Instance Method Details
#<<(path) ⇒ Object
Also known as:
push
168
169
170
|
# File 'railties/lib/rails/paths.rb', line 168
def <<(path)
@paths << path
end
|
#absolute_current ⇒ Object
129
130
131
|
# File 'railties/lib/rails/paths.rb', line 129
def absolute_current File.expand_path(@current, @root.path)
end
|
133
134
135
136
137
138
|
# File 'railties/lib/rails/paths.rb', line 133
def children
keys = @root.keys.find_all { |k|
k.start_with?(@current) && k != @current
}
@root.values_at(*keys.sort)
end
|
#concat(paths) ⇒ Object
173
174
175
|
# File 'railties/lib/rails/paths.rb', line 173
def concat(paths)
@paths.concat paths
end
|
#each(&block) ⇒ Object
164
165
166
|
# File 'railties/lib/rails/paths.rb', line 164
def each(&block)
@paths.each(&block)
end
|
Returns all expanded paths but only if they exist in the filesystem.
217
218
219
220
221
222
223
224
225
226
|
# File 'railties/lib/rails/paths.rb', line 217
def existent
expanded.select do |f|
does_exist = File.exist?(f)
if !does_exist && File.symlink?(f)
raise "File #{f.inspect} is a symlink that does not point to a valid file"
end
does_exist
end
end
|
#existent_directories ⇒ Object
228
229
230
|
# File 'railties/lib/rails/paths.rb', line 228
def existent_directories
expanded.select { |d| File.directory?(d) }
end
|
#expanded ⇒ Object
Also known as:
to_a
Expands all paths against the root and return all unique values.
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
|
# File 'railties/lib/rails/paths.rb', line 198
def expanded
raise "You need to set a path root" unless @root.path
result = []
each do |path|
path = File.expand_path(path, @root.path)
if @glob && File.directory?(path)
result.concat files_in(path)
else
result << path
end
end
result.uniq!
result
end
|
#extensions ⇒ Object
193
194
195
|
# File 'railties/lib/rails/paths.rb', line 193
def extensions $1.split(",") if @glob =~ /\{([\S]+)\}/
end
|
140
141
142
|
# File 'railties/lib/rails/paths.rb', line 140
def first
expanded.first
end
|
144
145
146
|
# File 'railties/lib/rails/paths.rb', line 144
def last
expanded.last
end
|
185
186
187
188
189
190
191
|
# File 'railties/lib/rails/paths.rb', line 185
def paths
raise "You need to set a path root" unless @root.path
map do |p|
Pathname.new(@root.path).join(p)
end
end
|
181
182
183
|
# File 'railties/lib/rails/paths.rb', line 181
def to_ary
@paths
end
|
#unshift(*paths) ⇒ Object
177
178
179
|
# File 'railties/lib/rails/paths.rb', line 177
def unshift(*paths)
@paths.unshift(*paths)
end
|