Class: Roadie::ProviderList
- Inherits:
-
Object
- Object
- Roadie::ProviderList
- Extended by:
- Forwardable
- Includes:
- Enumerable, AssetProvider
- Defined in:
- lib/roadie/provider_list.rb
Overview
An asset provider that just composes a list of other asset providers.
Give it a list of providers and they will all be tried in order.
ProviderList behaves like an Array, and an asset provider, and can be coerced into an array.
Class Method Summary collapse
-
.wrap(*providers) ⇒ Object
Wrap a single provider, or a list of providers into a ProviderList.
Instance Method Summary collapse
- #<< ⇒ Object
- #each ⇒ Object
- #empty? ⇒ Object
- #find_stylesheet(name) ⇒ Stylesheet?
-
#initialize(providers) ⇒ ProviderList
constructor
A new instance of ProviderList.
- #last ⇒ Object
- #pop ⇒ Object
- #push ⇒ Object
- #shift ⇒ Object
- #size ⇒ Object
-
#to_ary ⇒ Object
ProviderList can be coerced to an array.
- #to_s ⇒ Object
- #unshift ⇒ Object
Methods included from AssetProvider
Constructor Details
#initialize(providers) ⇒ ProviderList
Returns a new instance of ProviderList.
34 35 36 |
# File 'lib/roadie/provider_list.rb', line 34 def initialize(providers) @providers = providers end |
Class Method Details
.wrap(provider_list) ⇒ Object .wrap(provider) ⇒ Object .wrap(provider1, provider2, ...) ⇒ Object
Wrap a single provider, or a list of providers into a Roadie::ProviderList.
26 27 28 29 30 31 32 |
# File 'lib/roadie/provider_list.rb', line 26 def self.wrap(*providers) if providers.size == 1 && providers.first.class == self providers.first else new(providers.flatten) end end |
Instance Method Details
#<< ⇒ Object
77 |
# File 'lib/roadie/provider_list.rb', line 77 def_delegators :@providers, :each, :size, :empty?, :push, :<<, :pop, :unshift, :shift, :last |
#each ⇒ Object
77 |
# File 'lib/roadie/provider_list.rb', line 77 def_delegators :@providers, :each, :size, :empty?, :push, :<<, :pop, :unshift, :shift, :last |
#empty? ⇒ Object
77 |
# File 'lib/roadie/provider_list.rb', line 77 def_delegators :@providers, :each, :size, :empty?, :push, :<<, :pop, :unshift, :shift, :last |
#find_stylesheet(name) ⇒ Stylesheet?
39 40 41 42 43 44 45 |
# File 'lib/roadie/provider_list.rb', line 39 def find_stylesheet(name) @providers.each do |provider| css = provider.find_stylesheet(name) return css if css end nil end |
#last ⇒ Object
77 |
# File 'lib/roadie/provider_list.rb', line 77 def_delegators :@providers, :each, :size, :empty?, :push, :<<, :pop, :unshift, :shift, :last |
#pop ⇒ Object
77 |
# File 'lib/roadie/provider_list.rb', line 77 def_delegators :@providers, :each, :size, :empty?, :push, :<<, :pop, :unshift, :shift, :last |
#push ⇒ Object
77 |
# File 'lib/roadie/provider_list.rb', line 77 def_delegators :@providers, :each, :size, :empty?, :push, :<<, :pop, :unshift, :shift, :last |
#shift ⇒ Object
77 |
# File 'lib/roadie/provider_list.rb', line 77 def_delegators :@providers, :each, :size, :empty?, :push, :<<, :pop, :unshift, :shift, :last |
#size ⇒ Object
77 |
# File 'lib/roadie/provider_list.rb', line 77 def_delegators :@providers, :each, :size, :empty?, :push, :<<, :pop, :unshift, :shift, :last |
#to_ary ⇒ Object
ProviderList can be coerced to an array. This makes Array#flatten work with it, among other things.
57 |
# File 'lib/roadie/provider_list.rb', line 57 def to_ary() to_a end |
#to_s ⇒ Object
47 48 49 50 51 52 53 |
# File 'lib/roadie/provider_list.rb', line 47 def to_s list = @providers.map { |provider| # Indent every line one level provider.to_s.split("\n").join("\n\t") } "ProviderList: [\n\t#{list.join(",\n\t")}\n]" end |
#unshift ⇒ Object
77 |
# File 'lib/roadie/provider_list.rb', line 77 def_delegators :@providers, :each, :size, :empty?, :push, :<<, :pop, :unshift, :shift, :last |