motion-prime/views/styles.rb in motion-prime-0.4.1 vs motion-prime/views/styles.rb in motion-prime-0.4.2
- old
+ new
@@ -9,30 +9,31 @@
def style(*args, &block)
names = Array.wrap(args)
options = names.pop if args.last.is_a?(Hash)
- if block_given?
- raise "Only style names are available for nested styles, received: `#{args.inspect}`. Namespace: `#{@namespace}`" if options.present?
- names.each do |name|
- namespace = [@namespace, name].compact.join('_')
- self.class.new(namespace).instance_eval(&block)
- end
- else
- raise "No style rules specified for `#{names.join(', ')}`. Namespace: `#{@namespace}`" unless options
+ if options.present?
parent = options.delete(:parent)
- namespace = options.delete(:parent_namspace) || @namespace
- parent ="#{namespace}_#{parent}".to_sym if namespace
+ if parent_namespace = options.delete(:parent_namespace) || @namespace
+ parent ="#{parent_namespace}_#{parent}".to_sym
+ end
mixins = Array.wrap(options.delete(:mixins)).map { |mixin_name| :"_mixin_#{mixin_name}" }
names.each do |name|
name = "#{@namespace}_#{name}".to_sym if @namespace
@@repo[name] ||= {}
@@repo[name].deep_merge!(self.class.for(parent)) if parent
@@repo[name].deep_merge!(self.class.for(mixins)) if mixins.present?
@@repo[name].deep_merge! options
end
+ elsif !block_given?
+ raise "No style rules specified for `#{names.join(', ')}`. Namespace: `#{@namespace}`"
end
+
+ names.each do |name|
+ namespace = [@namespace, name].compact.join('_')
+ self.class.new(namespace).instance_eval(&block)
+ end if block_given?
end
class << self
include HasNormalizer
\ No newline at end of file