Class: Rails::Paths::Path
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Enumerable
#as_json, #exclude?, #index_by, #many?, #sum
Constructor Details
#initialize(root, current, paths, options = {}) ⇒ Path
Returns a new instance of Path.
120
121
122
123
124
125
126
127
128
129
130
|
# File 'railties/lib/rails/paths.rb', line 120
def initialize(root, current, paths, options = {})
@paths = paths
@current = current
@root = root
@glob = options[:glob]
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
118
119
120
|
# File 'railties/lib/rails/paths.rb', line 118
def glob
@glob
end
|
Instance Method Details
#<<(path) ⇒ Object
Also known as:
push
166
167
168
|
# File 'railties/lib/rails/paths.rb', line 166
def <<(path)
@paths << path
end
|
132
133
134
135
136
|
# File 'railties/lib/rails/paths.rb', line 132
def children
keys = @root.keys.select { |k| k.include?(@current) }
keys.delete(@current)
@root.values_at(*keys.sort)
end
|
#concat(paths) ⇒ Object
171
172
173
|
# File 'railties/lib/rails/paths.rb', line 171
def concat(paths)
@paths.concat paths
end
|
#each(&block) ⇒ Object
162
163
164
|
# File 'railties/lib/rails/paths.rb', line 162
def each(&block)
@paths.each(&block)
end
|
Returns all expanded paths but only if they exist in the filesystem.
205
206
207
|
# File 'railties/lib/rails/paths.rb', line 205
def existent
expanded.select { |f| File.exists?(f) }
end
|
#existent_directories ⇒ Object
209
210
211
|
# File 'railties/lib/rails/paths.rb', line 209
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.
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
|
# File 'railties/lib/rails/paths.rb', line 184
def expanded
raise "You need to set a path root" unless @root.path
result = []
each do |p|
path = File.expand_path(p, @root.path)
if @glob && File.directory?(path)
Dir.chdir(path) do
result.concat(Dir.glob(@glob).map { |file| File.join path, file }.sort)
end
else
result << path
end
end
result.uniq!
result
end
|
138
139
140
|
# File 'railties/lib/rails/paths.rb', line 138
def first
expanded.first
end
|
142
143
144
|
# File 'railties/lib/rails/paths.rb', line 142
def last
expanded.last
end
|
179
180
181
|
# File 'railties/lib/rails/paths.rb', line 179
def to_ary
@paths
end
|
#unshift(path) ⇒ Object
175
176
177
|
# File 'railties/lib/rails/paths.rb', line 175
def unshift(path)
@paths.unshift path
end
|