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
- #to_ary ⇒ Object
- #unshift(*paths) ⇒ Object
Constructor Details
#initialize(root, current, paths, options = {}) ⇒ Path
Returns a new instance of Path.
114 115 116 117 118 119 120 121 122 123 124 125 |
# File 'lib/rails/paths.rb', line 114 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.
112 113 114 |
# File 'lib/rails/paths.rb', line 112 def glob @glob end |
Instance Method Details
#<<(path) ⇒ Object Also known as: push
166 167 168 |
# File 'lib/rails/paths.rb', line 166 def <<(path) @paths << path end |
#absolute_current ⇒ Object
:nodoc:
127 128 129 |
# File 'lib/rails/paths.rb', line 127 def absolute_current # :nodoc: File.(@current, @root.path) end |
#children ⇒ Object
131 132 133 134 135 136 |
# File 'lib/rails/paths.rb', line 131 def children keys = @root.keys.find_all { |k| k.start_with?(@current) && k != @current } @root.values_at(*keys.sort) end |
#concat(paths) ⇒ Object
171 172 173 |
# File 'lib/rails/paths.rb', line 171 def concat(paths) @paths.concat paths end |
#each(&block) ⇒ Object
162 163 164 |
# File 'lib/rails/paths.rb', line 162 def each(&block) @paths.each(&block) end |
#existent ⇒ Object
Returns all expanded paths but only if they exist in the filesystem.
207 208 209 210 211 212 213 214 215 216 |
# File 'lib/rails/paths.rb', line 207 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
218 219 220 |
# File 'lib/rails/paths.rb', line 218 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.
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 |
# File 'lib/rails/paths.rb', line 188 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:
183 184 185 |
# File 'lib/rails/paths.rb', line 183 def extensions # :nodoc: $1.split(",") if @glob =~ /\{([\S]+)\}/ end |
#first ⇒ Object
138 139 140 |
# File 'lib/rails/paths.rb', line 138 def first .first end |
#last ⇒ Object
142 143 144 |
# File 'lib/rails/paths.rb', line 142 def last .last end |
#to_ary ⇒ Object
179 180 181 |
# File 'lib/rails/paths.rb', line 179 def to_ary @paths end |
#unshift(*paths) ⇒ Object
175 176 177 |
# File 'lib/rails/paths.rb', line 175 def unshift(*paths) @paths.unshift(*paths) end |