Sha256: 634e05fd6eff474d660f33fd5ddfca1dd17da3da4e4fd65ec1f26d5647405a14

Contents?: true

Size: 1.38 KB

Versions: 1

Compression:

Stored size: 1.38 KB

Contents

module RXaal
  module StyleMod
    def self.included(base)
      base.extend(ClassMethods)
    end
    
    module ClassMethods
      def style_attr_accessor(*symbols)
        symbols.each { |s|
          
          style_get(s)
          
          define_method("#{s}=") do |val|
            instance_variable_set("@#{s}", val)
          end
        }
      end
      
      def style_attr_accessor_of_class(klass, *symbols)
        symbols.each { |s|
          style_get(s)
          
          define_method("#{s}=") do |val|
            if val.class == klass
              instance_variable_set("@#{s}", val)
            end
          end
        }
        
        
      end
      def style_attr_accessor_of_bool( *symbols)
        symbols.each { |s|
          style_get(s)
          
          define_method("#{s}=") do |val|
            if val.class == TrueClass || val.class == FalseClass
              instance_variable_set("@#{s}", val)
            end
          end
        }
        
        
      end
      
      def style_get(s)
        define_method(s) do
          symb = instance_variable_get("@#{s}")
          if symb != nil
            symb
          else
            if self.uses != nil
              self.uses.send(s)
            else
              nil
            end
          end
        end
      end
      
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
RXAAL-0.0.1 lib/style_mod.rb