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