module Parcels::Fortitude::Assets::ClassMethods
Public Instance Methods
_parcels_add_wrapper_css_classes_to(attributes, wrapper_classes)
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 97 def _parcels_add_wrapper_css_classes_to(attributes, wrapper_classes) out = attributes || { } key = out.key?('class') ? 'class' : :class out[key] = Array(out[key]) + wrapper_classes out end
_parcels_alongside_css_fragments()
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 77 def _parcels_alongside_css_fragments options = { :prefix => _parcels_get_css_prefix }.merge(_parcels_css_options) _parcels_alongside_filenames.map do |filename| if File.exist?(filename) ::Parcels::Fragments::CssFragment.new(File.read(filename), self, filename, 1, options) end end.compact end
_parcels_alongside_filenames()
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 86 def _parcels_alongside_filenames out = [ ] _parcels_class_definition_files.each do |filename| filename = $1 if filename =~ /^(.*)\.rb$/i out << "#{filename}.pcss" end out.select { |f| File.file?(f) } end
_parcels_class_definition_files()
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 36 def _parcels_class_definition_files @_parcels_class_definition_files ||= [ ] end
_parcels_css_fragments()
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 49 def _parcels_css_fragments _parcels_alongside_css_fragments + _parcels_inline_css_fragments end
_parcels_css_options()
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 115 def _parcels_css_options out = @_parcels_css_options out ||= superclass._parcels_css_options if superclass.respond_to?(:_parcels_css_options) out || { } end
_parcels_get_css_prefix()
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 197 def _parcels_get_css_prefix _parcels_get_css_prefix_for_class(self) end
_parcels_get_css_prefix_for_class(klass)
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 201 def _parcels_get_css_prefix_for_class(klass) if @_parcels_css_prefix out = @_parcels_css_prefix out = out.call(klass) if out.respond_to?(:call) out elsif superclass.respond_to?(:_parcels_get_css_prefix_for_class) superclass._parcels_get_css_prefix_for_class(klass) else nil end end
_parcels_get_sets(defining_file_path)
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 180 def _parcels_get_sets(defining_file_path) _parcels_get_sets_for_class(self, defining_file_path) end
_parcels_get_sets_for_class(klass, defining_file_path)
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 184 def _parcels_get_sets_for_class(klass, defining_file_path) if @_parcels_sets out = @_parcels_sets out = out.call(klass, defining_file_path) if out.respond_to?(:call) out = Array(out).map(&:to_sym) out elsif superclass.respond_to?(:_parcels_get_sets_for_class) superclass._parcels_get_sets_for_class(klass, defining_file_path) else [ ] end end
_parcels_inherited_called_from(filename)
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 31 def _parcels_inherited_called_from(filename) @_parcels_class_definition_files ||= [ ] @_parcels_class_definition_files << filename end
_parcels_inline_css_fragments()
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 104 def _parcels_inline_css_fragments @_parcels_inline_css_fragments ||= [ ] end
_parcels_widget_class_alongside_css(parcels_environment, context)
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 69 def _parcels_widget_class_alongside_css(parcels_environment, context) ::Parcels::Fragments::CssFragment.to_css(parcels_environment, context, _parcels_alongside_css_fragments) end
_parcels_widget_class_css(parcels_environment, context)
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 61 def _parcels_widget_class_css(parcels_environment, context) ::Parcels::Fragments::CssFragment.to_css(parcels_environment, context, _parcels_css_fragments) end
_parcels_widget_class_inline_css(parcels_environment, context)
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 65 def _parcels_widget_class_inline_css(parcels_environment, context) ::Parcels::Fragments::CssFragment.to_css(parcels_environment, context, _parcels_inline_css_fragments) end
_parcels_widget_outer_element_class()
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 53 def _parcels_widget_outer_element_class @_parcels_widget_outer_element_class ||= begin class_suffix = self.name.gsub('::', '__').underscore.gsub(/[^A-Za-z0-9_]/, '_') "parcels_class__#{class_suffix}" end end
_parcels_widget_outer_element_classes()
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 40 def _parcels_widget_outer_element_classes @_parcels_widget_outer_element_classes ||= begin out = [ ] out << _parcels_widget_outer_element_class if _parcels_wrapping_css_class_required? out += superclass._parcels_widget_outer_element_classes if superclass.respond_to?(:parcels_enabled?) && superclass.parcels_enabled? out end end
_parcels_wrapping_css_class_required?()
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 73 def _parcels_wrapping_css_class_required? _parcels_css_fragments.detect { |f| f.wrapping_css_class_required? } end
css(*css_strings)
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 121 def css(*css_strings) unless parcels_enabled? klass = self superclasses = all_fortitude_superclasses raise %{Before using this Parcels method, you must first enable Parcels on this class. Simply call 'enable_parcels!', a class method, on the base widget class you want to enable -- typically, this is your base Fortitude widget class. This class is #{klass.name}; you may want to enable Parcels on any of its Fortitude superclasses, which are: #{superclasses.map(&:name).join("\n")}} end options = { :prefix => _parcels_get_css_prefix } options.merge!(css_strings.extract_options!) caller_line = caller[0] if caller_line =~ /^(.*)\s*:\s*(\d+)\s*:\s*in\s+/i caller_file = $1 caller_line = Integer($2) else caller_file = caller_line caller_line = nil end @_parcels_inline_css_fragments ||= [ ] @_parcels_inline_css_fragments.delete_if do |fragment| fragment.file == caller_file && fragment.line >= caller_line end @_parcels_inline_css_fragments += css_strings.map do |css_string| ::Parcels::Fragments::CssFragment.new(css_string, self, caller_file, caller_line, _parcels_css_options.merge(options)) end end
css_options(options)
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 108 def css_options(options) raise ArgumentError, "You must pass a Hash to css_options, not: #{options.inspect}" unless options.kind_of?(Hash) options.assert_valid_keys(:engines) @_parcels_css_options = options end
css_prefix(prefix = nil, &block)
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 156 def css_prefix(prefix = nil, &block) if (prefix && block) raise ArgumentError, "You can supply either a String or a block, but not both; you passed: #{prefix.inspect} and #{block.inspect}" end if (prefix != nil) && (! prefix.kind_of?(String)) raise ArgumentError, "Invalid prefix (must be a String, or nil): #{prefix.inspect}" end @_parcels_css_prefix = prefix || block end
inherited(new_class)
click to toggle source
Calls superclass method
# File lib/parcels/fortitude/assets.rb, line 14 def inherited(new_class) super(new_class) if respond_to?(:caller_locations, true) && false locations = caller_locations(1, 1) filename = locations.first.absolute_path new_class._parcels_inherited_called_from(filename) else string = caller[0] if string =~ /^([^:]+):\d+/ new_class._parcels_inherited_called_from($1) else raise "Parcels: #{new_class} inherited from #{self.name}, but caller string was unparseable: '#{string}'" end end end
parcels_sets(*set_names, &block)
click to toggle source
# File lib/parcels/fortitude/assets.rb, line 168 def parcels_sets(*set_names, &block) if set_names.length > 0 && block raise ArgumentError, "You can specify either a set name or a block, but not both; you passed: #{set_names.inspect} and #{block.inspect}" end if set_names == [ nil ] @_parcels_sets = [ ] else @_parcels_sets = block || set_names.map(&:to_sym) end end