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.
116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/rails/paths.rb', line 116 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.
114 115 116 |
# File 'lib/rails/paths.rb', line 114 def glob @glob end |
Instance Method Details
#<<(path) ⇒ Object Also known as: push
168 169 170 |
# File 'lib/rails/paths.rb', line 168 def <<(path) @paths << path end |
#absolute_current ⇒ Object
:nodoc:
129 130 131 |
# File 'lib/rails/paths.rb', line 129 def absolute_current # :nodoc: File.(@current, @root.path) end |
#children ⇒ Object
133 134 135 136 137 138 |
# File '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 'lib/rails/paths.rb', line 173 def concat(paths) @paths.concat paths end |
#each(&block) ⇒ Object
164 165 166 |
# File 'lib/rails/paths.rb', line 164 def each(&block) @paths.each(&block) end |
#existent ⇒ Object
Returns all expanded paths but only if they exist in the filesystem.
217 218 219 220 221 222 223 224 225 226 |
# File 'lib/rails/paths.rb', line 217 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
228 229 230 |
# File 'lib/rails/paths.rb', line 228 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.
198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 |
# File 'lib/rails/paths.rb', line 198 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:
193 194 195 |
# File 'lib/rails/paths.rb', line 193 def extensions # :nodoc: $1.split(",") if @glob =~ /\{([\S]+)\}/ end |
#first ⇒ Object
140 141 142 |
# File 'lib/rails/paths.rb', line 140 def first .first end |
#last ⇒ Object
144 145 146 |
# File 'lib/rails/paths.rb', line 144 def last .last end |
#paths ⇒ Object
185 186 187 188 189 190 191 |
# File '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 |
#to_ary ⇒ Object
181 182 183 |
# File 'lib/rails/paths.rb', line 181 def to_ary @paths end |
#unshift(*paths) ⇒ Object
177 178 179 |
# File 'lib/rails/paths.rb', line 177 def unshift(*paths) @paths.unshift(*paths) end |