Class: Rails::Paths::Path
- Inherits:
-
Object
- Object
- Rails::Paths::Path
- Includes:
- Enumerable
- Defined in:
- lib/rails/paths.rb
Instance Attribute Summary collapse
-
#glob ⇒ Object
Returns the value of attribute glob.
Instance Method Summary collapse
- #<<(path) ⇒ Object (also: #push)
-
#absolute_current ⇒ Object
:nodoc:.
- #children ⇒ Object
- #concat(paths) ⇒ Object
- #each(&block) ⇒ Object
-
#existent ⇒ Object
Returns all expanded paths but only if they exist in the filesystem.
- #existent_directories ⇒ Object
-
#expanded ⇒ Object
(also: #to_a)
Expands all paths against the root and return all unique values.
-
#extensions ⇒ Object
:nodoc:.
- #first ⇒ Object
-
#initialize(root, current, paths, options = {}) ⇒ Path
constructor
A new instance of Path.
- #last ⇒ Object
- #paths ⇒ Object
- #to_ary ⇒ Object
- #unshift(*paths) ⇒ Object
Constructor Details
#initialize(root, current, paths, options = {}) ⇒ Path
Returns a new instance of Path.
119 120 121 122 123 124 125 126 127 128 129 130 |
# File 'lib/rails/paths.rb', line 119 def initialize(root, current, paths, = {}) @paths = paths @current = current @root = root @glob = [:glob] @exclude = [:exclude] [:autoload_once] ? autoload_once! : skip_autoload_once! [:eager_load] ? eager_load! : skip_eager_load! [:autoload] ? autoload! : skip_autoload! [:load_path] ? load_path! : skip_load_path! end |
Instance Attribute Details
#glob ⇒ Object
Returns the value of attribute glob.
117 118 119 |
# File 'lib/rails/paths.rb', line 117 def glob @glob end |
Instance Method Details
#<<(path) ⇒ Object Also known as: push
171 172 173 |
# File 'lib/rails/paths.rb', line 171 def <<(path) @paths << path end |
#absolute_current ⇒ Object
:nodoc:
132 133 134 |
# File 'lib/rails/paths.rb', line 132 def absolute_current # :nodoc: File.(@current, @root.path) end |
#children ⇒ Object
136 137 138 139 140 141 |
# File 'lib/rails/paths.rb', line 136 def children keys = @root.keys.find_all { |k| k.start_with?(@current) && k != @current } @root.values_at(*keys.sort) end |
#concat(paths) ⇒ Object
176 177 178 |
# File 'lib/rails/paths.rb', line 176 def concat(paths) @paths.concat paths end |
#each(&block) ⇒ Object
167 168 169 |
# File 'lib/rails/paths.rb', line 167 def each(&block) @paths.each(&block) end |
#existent ⇒ Object
Returns all expanded paths but only if they exist in the filesystem.
220 221 222 223 224 225 226 227 228 229 |
# File 'lib/rails/paths.rb', line 220 def existent .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
231 232 233 |
# File 'lib/rails/paths.rb', line 231 def existent_directories .select { |d| File.directory?(d) } end |
#expanded ⇒ Object Also known as: to_a
Expands all paths against the root and return all unique values.
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 |
# File 'lib/rails/paths.rb', line 201 def raise "You need to set a path root" unless @root.path result = [] each do |path| path = File.(path, @root.path) if @glob && File.directory?(path) result.concat files_in(path) else result << path end end result.uniq! result end |
#extensions ⇒ Object
:nodoc:
196 197 198 |
# File 'lib/rails/paths.rb', line 196 def extensions # :nodoc: $1.split(",") if @glob =~ /\{([\S]+)\}/ end |
#first ⇒ Object
143 144 145 |
# File 'lib/rails/paths.rb', line 143 def first .first end |
#last ⇒ Object
147 148 149 |
# File 'lib/rails/paths.rb', line 147 def last .last end |
#paths ⇒ Object
188 189 190 191 192 193 194 |
# File 'lib/rails/paths.rb', line 188 def paths raise "You need to set a path root" unless @root.path map do |p| Pathname.new(@root.path).join(p) end end |
#to_ary ⇒ Object
184 185 186 |
# File 'lib/rails/paths.rb', line 184 def to_ary @paths end |
#unshift(*paths) ⇒ Object
180 181 182 |
# File 'lib/rails/paths.rb', line 180 def unshift(*paths) @paths.unshift(*paths) end |