middleman-jammit 0.0.1
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/.gitignore +5 -0
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/README.rdoc +41 -0
- data/Rakefile +2 -0
- data/assets.yml.tt +12 -0
- data/bin/mm-jammit-install +33 -0
- data/lib/middleman-jammit.rb +90 -0
- data/lib/middleman-jammit/version.rb +5 -0
- data/middleman-jammit.gemspec +24 -0
- metadata +87 -0
data/.gitignore
ADDED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm ruby-1.9.2-p180@middleman-jammit --create
|
data/Gemfile
ADDED
data/README.rdoc
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
= middleman-jammit
|
2
|
+
|
3
|
+
Use Jammit in Middleman - merge multiple javascripts/stylesheets into one
|
4
|
+
|
5
|
+
== Usage
|
6
|
+
|
7
|
+
1. Install
|
8
|
+
|
9
|
+
gem install middleman-jammit
|
10
|
+
|
11
|
+
2. Create your project
|
12
|
+
|
13
|
+
mm-init your-middleman-project
|
14
|
+
|
15
|
+
3. Create config/assets.yml and activate feature in config.rb
|
16
|
+
|
17
|
+
cd your-middleman-project; mm-jammit-install
|
18
|
+
|
19
|
+
Run with <tt>--help</tt> for options.
|
20
|
+
|
21
|
+
4. Add this to your views/layout.haml:
|
22
|
+
|
23
|
+
= include_stylesheets :all
|
24
|
+
= include_javascripts :all
|
25
|
+
|
26
|
+
5. Run server/builder
|
27
|
+
|
28
|
+
mm-server
|
29
|
+
|
30
|
+
individual files are used (/javascripts/site.js, /stylesheets/site.css ...)
|
31
|
+
|
32
|
+
mm-build
|
33
|
+
|
34
|
+
packages are used (/assets/all.js and /assets/all.css)
|
35
|
+
|
36
|
+
5. Enjoy!
|
37
|
+
|
38
|
+
== Links
|
39
|
+
|
40
|
+
* https://github.com/tdreyno/middleman
|
41
|
+
* http://documentcloud.github.com/jammit/
|
data/Rakefile
ADDED
data/assets.yml.tt
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
package_path: <%= options[:package_path] %>
|
2
|
+
gzip_assets: off
|
3
|
+
javascript_compressor: yui
|
4
|
+
|
5
|
+
javascripts:
|
6
|
+
all:
|
7
|
+
- <%= options[:build_dir] -%>/<%= options[:js_dir] -%>/jquery-1.6.js
|
8
|
+
- <%= options[:build_dir] -%>/<%= options[:js_dir] -%>/site.js
|
9
|
+
|
10
|
+
stylesheets:
|
11
|
+
all:
|
12
|
+
- <%= options[:build_dir] -%>/<%= options[:css_dir] -%>/site.css
|
@@ -0,0 +1,33 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require "middleman"
|
3
|
+
require "thor"
|
4
|
+
require "thor/group"
|
5
|
+
|
6
|
+
module Middleman::Jammit
|
7
|
+
class Generator < Thor::Group
|
8
|
+
include Thor::Actions
|
9
|
+
|
10
|
+
class_option :package_path, :default => "assets", :desc => 'The path to the asset files'
|
11
|
+
|
12
|
+
class_option :build_dir, :default => Middleman::Server.build_dir, :desc => 'Your build dir'
|
13
|
+
class_option :css_dir, :default => Middleman::Server.css_dir, :desc => 'The path to the css files'
|
14
|
+
class_option :js_dir, :default => Middleman::Server.js_dir, :desc => 'The path to the javascript files'
|
15
|
+
|
16
|
+
|
17
|
+
def self.source_root
|
18
|
+
File.join(File.dirname(__FILE__), ".." )
|
19
|
+
end
|
20
|
+
|
21
|
+
def create_jammit_config
|
22
|
+
config_dir = File.join(Middleman::Server.root, "config")
|
23
|
+
empty_directory config_dir
|
24
|
+
template "assets.yml.tt", File.join(config_dir, "assets.yml")
|
25
|
+
prepend_file File.join(Middleman::Server.root, "config.rb") do
|
26
|
+
['require "middleman-jammit"', 'activate :jammit', "", ""].join("\n")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
Middleman::Jammit::Generator.start
|
@@ -0,0 +1,90 @@
|
|
1
|
+
require "jammit"
|
2
|
+
require "middleman/builder"
|
3
|
+
|
4
|
+
module Middleman
|
5
|
+
module Features
|
6
|
+
module Jammit
|
7
|
+
|
8
|
+
class << self
|
9
|
+
def registered(app)
|
10
|
+
full_build_dir = File.join(Middleman::Server.root, Middleman::Server.build_dir)
|
11
|
+
|
12
|
+
FileUtils.mkdir_p File.join(full_build_dir, Middleman::Server.js_dir)
|
13
|
+
FileUtils.mkdir_p File.join(full_build_dir, Middleman::Server.css_dir)
|
14
|
+
|
15
|
+
jammit_config_file = File.join(Middleman::Server.root, 'config', 'assets.yml')
|
16
|
+
raise ConfigurationNotFound, "could not find \"#{jammit_config_file}\" " unless File.exists?(jammit_config_file)
|
17
|
+
jammit_conf = YAML.load(ERB.new(File.read(jammit_config_file)).result)
|
18
|
+
|
19
|
+
touch_asset_files jammit_conf['javascripts']
|
20
|
+
touch_asset_files jammit_conf['stylesheets']
|
21
|
+
|
22
|
+
::Jammit.load_configuration(jammit_config_file)
|
23
|
+
|
24
|
+
Middleman::Builder.after_run "jammit" do
|
25
|
+
full_package_path = File.join(full_build_dir, ::Jammit.package_path)
|
26
|
+
::Jammit.packager.precache_all(full_package_path, Middleman::Server.root)
|
27
|
+
say_status "Jammit", "build/assets"
|
28
|
+
end
|
29
|
+
|
30
|
+
app.helpers Jammit::Helpers
|
31
|
+
|
32
|
+
end
|
33
|
+
alias :included :registered
|
34
|
+
|
35
|
+
protected
|
36
|
+
def touch_asset_files(asset_files)
|
37
|
+
if asset_files.present?
|
38
|
+
asset_files.each do |name, files|
|
39
|
+
files.each do |f|
|
40
|
+
next if f["*"].present?
|
41
|
+
FileUtils.touch File.join(Middleman::Server.root, f)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
|
49
|
+
module Helpers
|
50
|
+
|
51
|
+
def include_javascripts(*packages)
|
52
|
+
generate_asset_tags(packages, :js)
|
53
|
+
end
|
54
|
+
|
55
|
+
def include_stylesheets(*packages)
|
56
|
+
generate_asset_tags(packages, :css)
|
57
|
+
end
|
58
|
+
|
59
|
+
protected
|
60
|
+
def generate_asset_tags(packages, type)
|
61
|
+
packages.map do |pack|
|
62
|
+
if ENV['MM_ENV'] == "build"
|
63
|
+
url = Middleman::Assets.get_url(::Jammit.asset_url(pack, type.to_sym))
|
64
|
+
generate_tag(type, url)
|
65
|
+
else
|
66
|
+
::Jammit.packager.individual_urls(pack.to_sym, type.to_sym).map do |file|
|
67
|
+
url = file.gsub(%r(^.*build/), '/')
|
68
|
+
generate_tag(type, url)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end.join("\n")
|
72
|
+
end
|
73
|
+
|
74
|
+
def generate_tag(type, url)
|
75
|
+
self.method("#{type.to_s}_tag").call(url)
|
76
|
+
end
|
77
|
+
|
78
|
+
def js_tag(url)
|
79
|
+
'<script src="%s"></script>' % url
|
80
|
+
end
|
81
|
+
|
82
|
+
def css_tag(url)
|
83
|
+
'<link rel="stylesheet" href="%s" />' % url
|
84
|
+
end
|
85
|
+
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "middleman-jammit/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "middleman-jammit"
|
7
|
+
s.version = Middleman::Jammit::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Matthias Döring"]
|
10
|
+
s.email = ["matt@foryourcontent.de"]
|
11
|
+
s.homepage = "http://rubygems.org/gems/middleman-jammit"
|
12
|
+
s.summary = %q{Use Jammit in Middleman}
|
13
|
+
s.description = %q{Use Jammit in Middleman - merge multiple javascripts/stylesheets into one}
|
14
|
+
|
15
|
+
s.rubyforge_project = "middleman-jammit"
|
16
|
+
|
17
|
+
s.add_dependency "jammit", "~> 0.6"
|
18
|
+
s.add_dependency "middleman", "~> 1.2.0"
|
19
|
+
|
20
|
+
s.files = `git ls-files`.split("\n")
|
21
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
22
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
23
|
+
s.require_paths = ["lib"]
|
24
|
+
end
|
metadata
ADDED
@@ -0,0 +1,87 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: middleman-jammit
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.1
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- "Matthias D\xC3\xB6ring"
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
|
13
|
+
date: 2011-05-14 00:00:00 +02:00
|
14
|
+
default_executable:
|
15
|
+
dependencies:
|
16
|
+
- !ruby/object:Gem::Dependency
|
17
|
+
name: jammit
|
18
|
+
prerelease: false
|
19
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
20
|
+
none: false
|
21
|
+
requirements:
|
22
|
+
- - ~>
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: "0.6"
|
25
|
+
type: :runtime
|
26
|
+
version_requirements: *id001
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: middleman
|
29
|
+
prerelease: false
|
30
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
31
|
+
none: false
|
32
|
+
requirements:
|
33
|
+
- - ~>
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: 1.2.0
|
36
|
+
type: :runtime
|
37
|
+
version_requirements: *id002
|
38
|
+
description: Use Jammit in Middleman - merge multiple javascripts/stylesheets into one
|
39
|
+
email:
|
40
|
+
- matt@foryourcontent.de
|
41
|
+
executables:
|
42
|
+
- mm-jammit-install
|
43
|
+
extensions: []
|
44
|
+
|
45
|
+
extra_rdoc_files: []
|
46
|
+
|
47
|
+
files:
|
48
|
+
- .gitignore
|
49
|
+
- .rvmrc
|
50
|
+
- Gemfile
|
51
|
+
- README.rdoc
|
52
|
+
- Rakefile
|
53
|
+
- assets.yml.tt
|
54
|
+
- bin/mm-jammit-install
|
55
|
+
- lib/middleman-jammit.rb
|
56
|
+
- lib/middleman-jammit/version.rb
|
57
|
+
- middleman-jammit.gemspec
|
58
|
+
has_rdoc: true
|
59
|
+
homepage: http://rubygems.org/gems/middleman-jammit
|
60
|
+
licenses: []
|
61
|
+
|
62
|
+
post_install_message:
|
63
|
+
rdoc_options: []
|
64
|
+
|
65
|
+
require_paths:
|
66
|
+
- lib
|
67
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
68
|
+
none: false
|
69
|
+
requirements:
|
70
|
+
- - ">="
|
71
|
+
- !ruby/object:Gem::Version
|
72
|
+
version: "0"
|
73
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: "0"
|
79
|
+
requirements: []
|
80
|
+
|
81
|
+
rubyforge_project: middleman-jammit
|
82
|
+
rubygems_version: 1.6.2
|
83
|
+
signing_key:
|
84
|
+
specification_version: 3
|
85
|
+
summary: Use Jammit in Middleman
|
86
|
+
test_files: []
|
87
|
+
|