haml-more 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +1 -1
- data/lib/haml/more.rb +10 -2
- data/lib/haml/more/coffee_script.rb +1 -1
- data/lib/haml/more/javascript.rb +102 -0
- metadata +18 -6
    
        data/README.md
    CHANGED
    
    
    
        data/lib/haml/more.rb
    CHANGED
    
    | @@ -1,6 +1,14 @@ | |
| 1 1 | 
             
            require "haml"
         | 
| 2 2 | 
             
            require "sass/more"
         | 
| 3 | 
            -
            require "monkey"
         | 
| 3 | 
            +
            require "monkey-lib"
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            begin
         | 
| 6 | 
            +
              require 'escape_utils/html/haml'
         | 
| 7 | 
            +
            rescue LoadError
         | 
| 8 | 
            +
              if Monkey::Engine.mri? or Monkey::Engine.rbx?
         | 
| 9 | 
            +
                warn "Please run 'gem install escape_utils' to speed up Haml!"
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
            end
         | 
| 4 12 |  | 
| 5 13 | 
             
            module Haml
         | 
| 6 14 | 
             
              module More
         | 
| @@ -35,7 +43,7 @@ module Haml | |
| 35 43 |  | 
| 36 44 | 
             
                def self.included(klass)
         | 
| 37 45 | 
             
                  Haml::More::CoffeeScript.activate
         | 
| 38 | 
            -
                  klass.send :include, Haml::More::ContentFor
         | 
| 46 | 
            +
                  klass.send :include, Haml::More::ContentFor, Haml::More::Javascript
         | 
| 39 47 | 
             
                  super
         | 
| 40 48 | 
             
                end
         | 
| 41 49 |  | 
| @@ -0,0 +1,102 @@ | |
| 1 | 
            +
            require 'haml/more'
         | 
| 2 | 
            +
            require 'forwardable'
         | 
| 3 | 
            +
             | 
| 4 | 
            +
            module Haml::More::JavaScript
         | 
| 5 | 
            +
              class Pattern
         | 
| 6 | 
            +
                attr_accessor :pattern, :default_version
         | 
| 7 | 
            +
             | 
| 8 | 
            +
                def self.google(default_version = 1, minified = false)
         | 
| 9 | 
            +
                  new "http://ajax.googleapis.com/ajax/libs/%1$s/%2$s/%1$s#{'.min' if minified}.js",
         | 
| 10 | 
            +
                  default_version
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                def new(pattern, default_version = 1)
         | 
| 14 | 
            +
                  return super if pattern.respond_to? :to_str
         | 
| 15 | 
            +
                  send(pattern, default_version)
         | 
| 16 | 
            +
                end
         | 
| 17 | 
            +
             | 
| 18 | 
            +
                def initialize(pattern, default_version = 1)
         | 
| 19 | 
            +
                  @pattern, @default_version = pattern, default_version
         | 
| 20 | 
            +
                end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
                def %(values)
         | 
| 23 | 
            +
                  pattern.gsub("%V", "%2$s") % [values[0], values[1] || default_version, *values[2..-1]]
         | 
| 24 | 
            +
                end
         | 
| 25 | 
            +
              end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
              module ClassMethods
         | 
| 28 | 
            +
                # here is an idea: map to hash, store in haml file
         | 
| 29 | 
            +
                DEFAULTS = [
         | 
| 30 | 
            +
                  # http://code.google.com/apis/ajaxlibs/documentation/
         | 
| 31 | 
            +
                  # lib,            pattern,  v,  min
         | 
| 32 | 
            +
                  [ :jquery,        :google,  1,  true  ],
         | 
| 33 | 
            +
                  [ :jqueryui,      :google,  1,  true  ],
         | 
| 34 | 
            +
                  [ :prototype,     :google,  1         ],
         | 
| 35 | 
            +
                  [ :scriptaculous, :google,  1         ],
         | 
| 36 | 
            +
                  [ :mootools,      :google,  1,  true  ],
         | 
| 37 | 
            +
                  [ :dojo,          :google,  1,  true  ],
         | 
| 38 | 
            +
                  [ :swfobject,     :google,  2,  true  ],
         | 
| 39 | 
            +
                  [ :yui,           :google,  2,  true  ], # for 3.x, see below
         | 
| 40 | 
            +
                  [ "ext-core",     :google,  3         ],
         | 
| 41 | 
            +
                  [ :webfont,       :google,  1         ],
         | 
| 42 | 
            +
             | 
| 43 | 
            +
                  # others
         | 
| 44 | 
            +
                  [ "chrome-frame",   "http://ajax.googleapis.com/ajax/libs/chrome-frame/%V/CFInstall.min.js"             ],
         | 
| 45 | 
            +
                  [ :modernizr,       "http://github.com/Modernizr/Modernizr/raw/v%V/modernizr.js",               '1.1'   ],
         | 
| 46 | 
            +
                  [ :hyphenator,      "http://hyphenator.googlecode.com/svn/tags/Version%%20%V/Hyphenator.js",    '3.0.0' ],
         | 
| 47 | 
            +
                  [ :yui3,            "http://yui.yahooapis.com/combo?%V/build/yui/yui-min.js",                   '3.1.1' ],
         | 
| 48 | 
            +
                  [ :sizzle,          "http://github.com/jeresig/sizzle/raw/master/sizzle.js"                             ],
         | 
| 49 | 
            +
                  [ :underscore,      "http://github.com/documentcloud/underscore/raw/%V/underscore-min.js",      '1.0.2' ],
         | 
| 50 | 
            +
                  [ :raphael,         "http://github.com/DmitryBaranovskiy/raphael/raw/v%V/raphael-min.js",       '1.4.3' ],
         | 
| 51 | 
            +
                  [ :cufon,           "http://cufon.shoqolate.com/js/cufon-yui.js"                                        ],
         | 
| 52 | 
            +
                  [ "coffee-script",  "http://github.com/jashkenas/coffee-script/raw/%V/extras/coffee-script.js", '0.6.2' ],
         | 
| 53 | 
            +
                  [ :sammy,           "http://github.com/quirkey/sammy/raw/v%V/lib/min/sammy-%V.min.js",          '0.5.4' ]
         | 
| 54 | 
            +
                ]
         | 
| 55 | 
            +
             | 
| 56 | 
            +
                def included(klass)
         | 
| 57 | 
            +
                  klass.send :include, Haml::More::JavaScript::InstanceMethods
         | 
| 58 | 
            +
                  super
         | 
| 59 | 
            +
                end
         | 
| 60 | 
            +
             | 
| 61 | 
            +
                def javascript_default_pattern
         | 
| 62 | 
            +
                  @javascript_default_pattern ||= Haml::More::JavaScript::Pattern.google
         | 
| 63 | 
            +
                end
         | 
| 64 | 
            +
             | 
| 65 | 
            +
                def javascript_guessing?
         | 
| 66 | 
            +
                  true
         | 
| 67 | 
            +
                end
         | 
| 68 | 
            +
             | 
| 69 | 
            +
                def javascript_url_for(name, version = nil, *args)
         | 
| 70 | 
            +
                  return javascript_url_map[name] % [name, version, *args] if javascript_url_map.includes? name
         | 
| 71 | 
            +
                  javascript_default_pattern % [name, version, *args] if javascript_guessing?
         | 
| 72 | 
            +
                end
         | 
| 73 | 
            +
             | 
| 74 | 
            +
                def set_javascript(name, *args)
         | 
| 75 | 
            +
                  javascript_url_map[name.to_s] = Haml::More::JavaScript::Pattern.new(*args)
         | 
| 76 | 
            +
                end
         | 
| 77 | 
            +
             | 
| 78 | 
            +
                def javascript_url_map
         | 
| 79 | 
            +
                  return @javascript_url_map if @javascript_url_map
         | 
| 80 | 
            +
                  @javascript_url_map = Hash.new { |h,k| h[k.to_s] unless k.respond_to? :to_str }
         | 
| 81 | 
            +
                  DEFAULTS.each { |args| set_javascript(*args) }
         | 
| 82 | 
            +
                end
         | 
| 83 | 
            +
              end
         | 
| 84 | 
            +
             | 
| 85 | 
            +
              module InstanceMethods
         | 
| 86 | 
            +
                include Haml::More::AbstractHelper
         | 
| 87 | 
            +
             | 
| 88 | 
            +
                def javascript(*list)
         | 
| 89 | 
            +
                  return javascript(list) if list.size == 2 and list.last.to_s =~ /^\d[\.\d]*$/
         | 
| 90 | 
            +
                  haml_helper do
         | 
| 91 | 
            +
                    list.each do |entry|
         | 
| 92 | 
            +
                      entry = entry.to_a if entry.respond_to? to_a
         | 
| 93 | 
            +
                      haml_tag :script, :type => "text/javascript", :src => self.class.javascript_url_for(*entry)
         | 
| 94 | 
            +
                    end
         | 
| 95 | 
            +
                  end
         | 
| 96 | 
            +
                end
         | 
| 97 | 
            +
              end
         | 
| 98 | 
            +
             | 
| 99 | 
            +
              def self.append_features(klass)
         | 
| 100 | 
            +
                klass.extend ClassMethods
         | 
| 101 | 
            +
              end
         | 
| 102 | 
            +
            end
         | 
    
        metadata
    CHANGED
    
    | @@ -1,12 +1,13 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification 
         | 
| 2 2 | 
             
            name: haml-more
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 | 
            +
              hash: 11
         | 
| 4 5 | 
             
              prerelease: false
         | 
| 5 6 | 
             
              segments: 
         | 
| 6 7 | 
             
              - 0
         | 
| 7 | 
            -
              -  | 
| 8 | 
            +
              - 5
         | 
| 8 9 | 
             
              - 0
         | 
| 9 | 
            -
              version: 0. | 
| 10 | 
            +
              version: 0.5.0
         | 
| 10 11 | 
             
            platform: ruby
         | 
| 11 12 | 
             
            authors: 
         | 
| 12 13 | 
             
            - Konstantin Haase
         | 
| @@ -14,30 +15,34 @@ autorequire: | |
| 14 15 | 
             
            bindir: bin
         | 
| 15 16 | 
             
            cert_chain: []
         | 
| 16 17 |  | 
| 17 | 
            -
            date: 2010- | 
| 18 | 
            +
            date: 2010-07-09 00:00:00 +02:00
         | 
| 18 19 | 
             
            default_executable: 
         | 
| 19 20 | 
             
            dependencies: 
         | 
| 20 21 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 21 22 | 
             
              name: monkey-lib
         | 
| 22 23 | 
             
              prerelease: false
         | 
| 23 24 | 
             
              requirement: &id001 !ruby/object:Gem::Requirement 
         | 
| 25 | 
            +
                none: false
         | 
| 24 26 | 
             
                requirements: 
         | 
| 25 27 | 
             
                - - ~>
         | 
| 26 28 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 29 | 
            +
                    hash: 11
         | 
| 27 30 | 
             
                    segments: 
         | 
| 28 31 | 
             
                    - 0
         | 
| 29 | 
            -
                    -  | 
| 32 | 
            +
                    - 5
         | 
| 30 33 | 
             
                    - 0
         | 
| 31 | 
            -
                    version: 0. | 
| 34 | 
            +
                    version: 0.5.0
         | 
| 32 35 | 
             
              type: :runtime
         | 
| 33 36 | 
             
              version_requirements: *id001
         | 
| 34 37 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 35 38 | 
             
              name: haml
         | 
| 36 39 | 
             
              prerelease: false
         | 
| 37 40 | 
             
              requirement: &id002 !ruby/object:Gem::Requirement 
         | 
| 41 | 
            +
                none: false
         | 
| 38 42 | 
             
                requirements: 
         | 
| 39 43 | 
             
                - - ">="
         | 
| 40 44 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 45 | 
            +
                    hash: 47
         | 
| 41 46 | 
             
                    segments: 
         | 
| 42 47 | 
             
                    - 2
         | 
| 43 48 | 
             
                    - 2
         | 
| @@ -49,9 +54,11 @@ dependencies: | |
| 49 54 | 
             
              name: rspec
         | 
| 50 55 | 
             
              prerelease: false
         | 
| 51 56 | 
             
              requirement: &id003 !ruby/object:Gem::Requirement 
         | 
| 57 | 
            +
                none: false
         | 
| 52 58 | 
             
                requirements: 
         | 
| 53 59 | 
             
                - - ">="
         | 
| 54 60 | 
             
                  - !ruby/object:Gem::Version 
         | 
| 61 | 
            +
                    hash: 27
         | 
| 55 62 | 
             
                    segments: 
         | 
| 56 63 | 
             
                    - 1
         | 
| 57 64 | 
             
                    - 3
         | 
| @@ -70,6 +77,7 @@ extra_rdoc_files: [] | |
| 70 77 | 
             
            files: 
         | 
| 71 78 | 
             
            - lib/haml/more/coffee_script.rb
         | 
| 72 79 | 
             
            - lib/haml/more/content_for.rb
         | 
| 80 | 
            +
            - lib/haml/more/javascript.rb
         | 
| 73 81 | 
             
            - lib/haml/more.rb
         | 
| 74 82 | 
             
            - lib/haml-more.rb
         | 
| 75 83 | 
             
            - lib/sass/more.rb
         | 
| @@ -304,23 +312,27 @@ rdoc_options: [] | |
| 304 312 | 
             
            require_paths: 
         | 
| 305 313 | 
             
            - lib
         | 
| 306 314 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement 
         | 
| 315 | 
            +
              none: false
         | 
| 307 316 | 
             
              requirements: 
         | 
| 308 317 | 
             
              - - ">="
         | 
| 309 318 | 
             
                - !ruby/object:Gem::Version 
         | 
| 319 | 
            +
                  hash: 3
         | 
| 310 320 | 
             
                  segments: 
         | 
| 311 321 | 
             
                  - 0
         | 
| 312 322 | 
             
                  version: "0"
         | 
| 313 323 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement 
         | 
| 324 | 
            +
              none: false
         | 
| 314 325 | 
             
              requirements: 
         | 
| 315 326 | 
             
              - - ">="
         | 
| 316 327 | 
             
                - !ruby/object:Gem::Version 
         | 
| 328 | 
            +
                  hash: 3
         | 
| 317 329 | 
             
                  segments: 
         | 
| 318 330 | 
             
                  - 0
         | 
| 319 331 | 
             
                  version: "0"
         | 
| 320 332 | 
             
            requirements: []
         | 
| 321 333 |  | 
| 322 334 | 
             
            rubyforge_project: 
         | 
| 323 | 
            -
            rubygems_version: 1.3. | 
| 335 | 
            +
            rubygems_version: 1.3.7
         | 
| 324 336 | 
             
            signing_key: 
         | 
| 325 337 | 
             
            specification_version: 3
         | 
| 326 338 | 
             
            summary: Adds more functionality to Haml and Sass (part of BigBand).
         |