Sha256: 6de744f48faf50c514e1ba75a16a6e10593cab10c630431351a6d445b09e00fa

Contents?: true

Size: 1.37 KB

Versions: 2

Compression:

Stored size: 1.37 KB

Contents

module WLang
  class EncoderSet
    
    # Encoders for ruby
    module Ruby
  
      # Default encoders  
      DEFAULT_ENCODERS = {"main-encoding"  =>  :main_encoding,
                          "single-quoting" => :single_quoting, 
                          "double-quoting" => :double_quoting, 
                          "regex-escaping" => :regex_escaping,
                          "method-case"    => :method_case}
  
      # No-op encoding here
      def self.main_encoding(src, options); src; end
  
      # Single-quoting encoding
      def self.single_quoting(src, options); src.gsub(/([^\\])'/,%q{\1\\\'}); end
  
      # Double-quoting encoding
      def self.double_quoting(src, options); src.gsub('"','\"'); end
  
      # Regexp-escaping encoding
      def self.regex_escaping(src, options); Regexp.escape(src); end
      
      # Converts any source to a typical ruby method name
      def self.method_case(src, options)
        src.strip.gsub(/[^a-zA-Z0-9\s]/," ").
                  gsub(/([A-Z])/){ " " + $1.downcase}.
                  strip.
                  gsub(/^([^a-z])/){ "_" + $1 }.
                  gsub(/\s+/){"_"}
      end
  
    end # module Ruby  
  
  end
  class RuleSet

    # Defines rulset of the wlang/ruby dialect
    module Ruby
    
        # Default mapping between tag symbols and methods
        DEFAULT_RULESET = {}
    
    end # module Ruby
    
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
wlang-0.9.2 lib/wlang/dialects/ruby_dialect.rb
wlang-0.9.1 lib/wlang/dialects/ruby_dialect.rb