buildr-html5 0.0.1.pre

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile ADDED
@@ -0,0 +1,17 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+ gem "buildr", "~> 1.4.6"
6
+ # Add dependencies to develop your gem here.
7
+ # Include everything needed to run rake, tests, features, etc.
8
+ group :development do
9
+ gem "buildr", "~> 1.4.6"
10
+ gem "shoulda", ">= 0"
11
+ gem "bundler", "~> 1.0.0"
12
+ gem "jeweler", "~> 1.5.2"
13
+ gem "simplecov", :require => false
14
+ gem "simplecov-rcov", :require => false
15
+ gem "rspec", "~> 2.1.0"
16
+ gem "ci_reporter", "~> 1.6.5"
17
+ end
@@ -0,0 +1,77 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ atoulme-Antwrap (0.7.1)
5
+ rjb (>= 1.0.3)
6
+ builder (2.1.2)
7
+ buildr (1.4.6)
8
+ atoulme-Antwrap (= 0.7.1)
9
+ builder (= 2.1.2)
10
+ diff-lcs (= 1.1.2)
11
+ highline (= 1.5.1)
12
+ hoe (= 2.3.3)
13
+ json_pure (= 1.4.3)
14
+ minitar (= 0.5.3)
15
+ net-sftp (= 2.0.4)
16
+ net-ssh (= 2.0.23)
17
+ rake (= 0.8.7)
18
+ rjb (= 1.3.3)
19
+ rspec (= 2.1.0)
20
+ rspec-core (= 2.1.0)
21
+ rspec-expectations (= 2.1.0)
22
+ rspec-mocks (= 2.1.0)
23
+ rubyforge (= 2.0.3)
24
+ rubyzip (= 0.9.4)
25
+ xml-simple (= 1.0.12)
26
+ ci_reporter (1.6.5)
27
+ builder (>= 2.1.2)
28
+ diff-lcs (1.1.2)
29
+ git (1.2.5)
30
+ highline (1.5.1)
31
+ hoe (2.3.3)
32
+ rake (>= 0.8.7)
33
+ rubyforge (>= 1.0.4)
34
+ jeweler (1.5.2)
35
+ bundler (~> 1.0.0)
36
+ git (>= 1.2.5)
37
+ rake
38
+ json_pure (1.4.3)
39
+ minitar (0.5.3)
40
+ multi_json (1.0.3)
41
+ net-sftp (2.0.4)
42
+ net-ssh (>= 2.0.9)
43
+ net-ssh (2.0.23)
44
+ rake (0.8.7)
45
+ rjb (1.3.3)
46
+ rspec (2.1.0)
47
+ rspec-core (~> 2.1.0)
48
+ rspec-expectations (~> 2.1.0)
49
+ rspec-mocks (~> 2.1.0)
50
+ rspec-core (2.1.0)
51
+ rspec-expectations (2.1.0)
52
+ diff-lcs (~> 1.1.2)
53
+ rspec-mocks (2.1.0)
54
+ rubyforge (2.0.3)
55
+ json_pure (>= 1.1.7)
56
+ rubyzip (0.9.4)
57
+ shoulda (2.11.3)
58
+ simplecov (0.5.4)
59
+ multi_json (~> 1.0.3)
60
+ simplecov-html (~> 0.5.3)
61
+ simplecov-html (0.5.3)
62
+ simplecov-rcov (0.2.3)
63
+ simplecov (>= 0.4.1)
64
+ xml-simple (1.0.12)
65
+
66
+ PLATFORMS
67
+ ruby
68
+
69
+ DEPENDENCIES
70
+ buildr (~> 1.4.6)
71
+ bundler (~> 1.0.0)
72
+ ci_reporter (~> 1.6.5)
73
+ jeweler (~> 1.5.2)
74
+ rspec (~> 2.1.0)
75
+ shoulda
76
+ simplecov
77
+ simplecov-rcov
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 devboy & base42
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,19 @@
1
+ = buildr-html5
2
+
3
+ Description goes here.
4
+
5
+ == Contributing to buildr-html5
6
+
7
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
8
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
9
+ * Fork the project
10
+ * Start a feature/bugfix branch
11
+ * Commit and push until you are happy with your contribution
12
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
13
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
14
+
15
+ == Copyright
16
+
17
+ Copyright (c) 2011 devboy. See LICENSE.txt for
18
+ further details.
19
+
@@ -0,0 +1,57 @@
1
+ # encoding: utf-8
2
+
3
+ require 'rubygems'
4
+ require 'bundler'
5
+ begin
6
+ Bundler.setup(:default, :development)
7
+ rescue Bundler::BundlerError => e
8
+ $stderr.puts e.message
9
+ $stderr.puts "Run `bundle install` to install missing gems"
10
+ exit e.status_code
11
+ end
12
+ require 'rake'
13
+
14
+ require 'jeweler'
15
+ require File.dirname(__FILE__)+"/rake/jeweler_prerelease_tasks"
16
+ Jeweler::Tasks.new do |gem|
17
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
18
+ gem.name = "buildr-html5"
19
+ gem.homepage = "http://github.com/base42/buildr-html5"
20
+ gem.license = "MIT"
21
+ gem.summary = %Q{Build like you code - now supporting HTML, JS and CSS}
22
+ gem.description = %Q{Build like you code - now supporting HTML, JS and CSS}
23
+ gem.email = "jankees@base42.nl"
24
+ gem.authors = ["jankeesvw","devboy"]
25
+ # dependencies defined in Gemfile
26
+ end
27
+ Jeweler::RubygemsDotOrgTasks.new
28
+ Jeweler::PrereleaseTasks.new
29
+
30
+ require 'rspec/core'
31
+ require 'rspec/core/rake_task'
32
+ require 'ci/reporter/rake/rspec'
33
+
34
+ ENV["CI_REPORTS"] ||= File.expand_path( File.join( File.dirname(__FILE__), "test", "report" ) )
35
+ RSpec::Core::RakeTask.new(:spec) do |spec|
36
+ spec.pattern = FileList['spec/**/*_spec.rb']
37
+ end
38
+
39
+ task :spec => "ci:setup:rspec"
40
+
41
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
42
+ spec.pattern = 'spec/**/*_spec.rb'
43
+ spec.rcov = true
44
+ end
45
+
46
+ task :test => :spec
47
+ task :default => :spec
48
+
49
+ require 'rake/rdoctask'
50
+ Rake::RDocTask.new do |rdoc|
51
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
52
+
53
+ rdoc.rdoc_dir = 'rdoc'
54
+ rdoc.title = "buildr-html5 #{version}"
55
+ rdoc.rdoc_files.include('README*')
56
+ rdoc.rdoc_files.include('lib/**/*.rb')
57
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.0.1.pre
@@ -0,0 +1,85 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "buildr-html5"
8
+ s.version = "0.0.1.pre"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["jankeesvw", "devboy"]
12
+ s.date = "2011-11-21"
13
+ s.description = "Build like you code - now supporting HTML, JS and CSS"
14
+ s.email = "jankees@base42.nl"
15
+ s.extra_rdoc_files = [
16
+ "LICENSE.txt",
17
+ "README.rdoc"
18
+ ]
19
+ s.files = [
20
+ "Gemfile",
21
+ "Gemfile.lock",
22
+ "LICENSE.txt",
23
+ "README.rdoc",
24
+ "Rakefile",
25
+ "VERSION",
26
+ "buildr-html5.gemspec",
27
+ "lib/buildr/html5.rb",
28
+ "lib/buildr/html5/compiler.rb",
29
+ "lib/buildr/html5/compiler/closure.rb",
30
+ "rake/jeweler.rb",
31
+ "rake/jeweler_prerelease_tasks.rb",
32
+ "rake/pre_release_gemspec.rb",
33
+ "rake/pre_release_to_git.rb",
34
+ "spec/html5/compiler/closure_spec.rb",
35
+ "spec/sandbox.rb",
36
+ "spec/spec_helper.rb"
37
+ ]
38
+ s.homepage = "http://github.com/base42/buildr-html5"
39
+ s.licenses = ["MIT"]
40
+ s.require_paths = ["lib"]
41
+ s.rubygems_version = "1.8.11"
42
+ s.summary = "Build like you code - now supporting HTML, JS and CSS"
43
+ s.test_files = [
44
+ "spec/html5/compiler/closure_spec.rb",
45
+ "spec/sandbox.rb",
46
+ "spec/spec_helper.rb"
47
+ ]
48
+
49
+ if s.respond_to? :specification_version then
50
+ s.specification_version = 3
51
+
52
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
53
+ s.add_runtime_dependency(%q<buildr>, ["~> 1.4.6"])
54
+ s.add_development_dependency(%q<buildr>, ["~> 1.4.6"])
55
+ s.add_development_dependency(%q<shoulda>, [">= 0"])
56
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
57
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
58
+ s.add_development_dependency(%q<simplecov>, [">= 0"])
59
+ s.add_development_dependency(%q<simplecov-rcov>, [">= 0"])
60
+ s.add_development_dependency(%q<rspec>, ["~> 2.1.0"])
61
+ s.add_development_dependency(%q<ci_reporter>, ["~> 1.6.5"])
62
+ else
63
+ s.add_dependency(%q<buildr>, ["~> 1.4.6"])
64
+ s.add_dependency(%q<buildr>, ["~> 1.4.6"])
65
+ s.add_dependency(%q<shoulda>, [">= 0"])
66
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
67
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
68
+ s.add_dependency(%q<simplecov>, [">= 0"])
69
+ s.add_dependency(%q<simplecov-rcov>, [">= 0"])
70
+ s.add_dependency(%q<rspec>, ["~> 2.1.0"])
71
+ s.add_dependency(%q<ci_reporter>, ["~> 1.6.5"])
72
+ end
73
+ else
74
+ s.add_dependency(%q<buildr>, ["~> 1.4.6"])
75
+ s.add_dependency(%q<buildr>, ["~> 1.4.6"])
76
+ s.add_dependency(%q<shoulda>, [">= 0"])
77
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
78
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
79
+ s.add_dependency(%q<simplecov>, [">= 0"])
80
+ s.add_dependency(%q<simplecov-rcov>, [">= 0"])
81
+ s.add_dependency(%q<rspec>, ["~> 2.1.0"])
82
+ s.add_dependency(%q<ci_reporter>, ["~> 1.6.5"])
83
+ end
84
+ end
85
+
@@ -0,0 +1,4 @@
1
+ #entry point for the plugin as it will be required like "require 'buildr/html5' in the buildfile"
2
+
3
+ require 'buildr'
4
+ require File.dirname(__FILE__)+'/html5/compiler'
@@ -0,0 +1,3 @@
1
+ require File.dirname(__FILE__)+'/compiler/closure'
2
+
3
+ Buildr::Compiler << Buildr::Html5::Compiler::Closure
@@ -0,0 +1,21 @@
1
+ module Buildr
2
+ module Html5
3
+ module Compiler
4
+ class Closure < Buildr::Compiler::Base
5
+ specify :language => :javascript,
6
+ :sources => :js, :source_ext => :js,
7
+ :target_ext => "js",
8
+ :packaging => :js
9
+
10
+ def compile(sources, target, dependencies)
11
+ super
12
+ end
13
+
14
+ def needed?
15
+ true
16
+ end
17
+
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,17 @@
1
+ class Jeweler
2
+ require File.dirname(__FILE__)+'/pre_release_to_git'
3
+ require File.dirname(__FILE__)+'/pre_release_gemspec'
4
+
5
+ def prerelease_to_git
6
+ Jeweler::Commands::PreReleaseToGit.build_for(self).run
7
+ end
8
+
9
+ def prerelease_gemspec
10
+ Jeweler::Commands::PreReleaseGemspec.build_for(self).run
11
+ end
12
+
13
+ def is_prerelease_version?
14
+ version.end_with? ".pre"
15
+ end
16
+
17
+ end
@@ -0,0 +1,50 @@
1
+ require 'rake'
2
+ require 'rake/tasklib'
3
+ require File.dirname(__FILE__)+"/jeweler"
4
+
5
+ class Jeweler
6
+ class PrereleaseTasks < Rake::TaskLib
7
+ attr_accessor :jeweler
8
+
9
+ def initialize
10
+ yield self if block_given?
11
+
12
+ define
13
+ end
14
+
15
+ def jeweler
16
+ @jeweler ||= Rake.application.jeweler
17
+ end
18
+
19
+ def define
20
+ namespace :git do
21
+ desc "Tag and push prerelease to git. (happens by default with `rake prerelease`)"
22
+ task :prerelease do
23
+ jeweler.prerelease_to_git
24
+ end
25
+ end
26
+
27
+ namespace :gemspec do
28
+ desc "Regenerate and validate gemspec, and then commits and pushes to git on develop branch"
29
+ task :prerelease do
30
+ jeweler.prerelease_gemspec
31
+ end
32
+ end
33
+
34
+ desc "Verifies that it is a prerelease version."
35
+ task :is_prerelease_version => :version_required do
36
+ abort "it's not a prerelease version" unless jeweler.is_prerelease_version?
37
+ end
38
+
39
+ namespace :rubygems do
40
+ desc "Release gem to Gemcutter"
41
+ task :release => [:gemspec, :build] do
42
+ jeweler.release_gem_to_rubygems
43
+ end
44
+ end
45
+
46
+ desc "Make a prerelease to rubygems."
47
+ task :prerelease => [:is_prerelease_version, 'gemspec:prerelease', 'git:prerelease', 'rubygems:release']
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,80 @@
1
+ class Jeweler
2
+ module Commands
3
+ class PreReleaseGemspec
4
+ attr_accessor :gemspec, :version, :repo, :output, :gemspec_helper, :base_dir
5
+
6
+ def initialize(attributes = {})
7
+ self.output = $stdout
8
+
9
+ attributes.each_pair do |key, value|
10
+ send("#{key}=", value)
11
+ end
12
+ end
13
+
14
+ def run
15
+ unless clean_staging_area?
16
+ system "git status"
17
+ raise "Unclean staging area! Be sure to commit or .gitignore everything first. See `git status` above."
18
+ end
19
+
20
+ repo.checkout('develop')
21
+
22
+ regenerate_gemspec!
23
+ commit_gemspec! if gemspec_changed?
24
+
25
+ output.puts "Pushing develop to origin"
26
+ repo.push
27
+ end
28
+
29
+ def clean_staging_area?
30
+ # surprisingly simpler than ruby-git
31
+ `git ls-files --deleted --modified --others --exclude-standard` == ""
32
+ end
33
+
34
+ def commit_gemspec!
35
+ gemspec_gitpath = working_subdir.join(gemspec_helper.path)
36
+ repo.add(gemspec_gitpath.to_s)
37
+ output.puts "Committing #{gemspec_gitpath}"
38
+ repo.commit "Regenerate gemspec for version #{version}"
39
+ end
40
+
41
+ def regenerate_gemspec!
42
+ gemspec_helper.update_version(version)
43
+ gemspec_helper.write
44
+ end
45
+
46
+ def gemspec_changed?
47
+ # OMGHAX. ruby-git status always ends up being 'M', so let's do it a crazy way
48
+ system "git status -s #{working_subdir.join(gemspec_helper.path)} | grep #{working_subdir.join(gemspec_helper.path)} > /dev/null 2>/dev/null"
49
+ end
50
+
51
+ def gemspec_helper
52
+ @gemspec_helper ||= Jeweler::GemSpecHelper.new(self.gemspec, self.base_dir)
53
+ end
54
+
55
+ def working_subdir
56
+ return @working_subdir if @working_subdir
57
+ cwd = base_dir_path
58
+ @working_subdir = cwd.relative_path_from(Pathname.new(repo.dir.path))
59
+ @working_subdir
60
+ end
61
+
62
+ def base_dir_path
63
+ Pathname.new(base_dir).realpath
64
+ end
65
+
66
+ def self.build_for(jeweler)
67
+ command = self.new
68
+
69
+ command.base_dir = jeweler.base_dir
70
+ command.gemspec = jeweler.gemspec
71
+ command.version = jeweler.version
72
+ command.repo = jeweler.repo
73
+ command.output = jeweler.output
74
+ command.gemspec_helper = jeweler.gemspec_helper
75
+
76
+ command
77
+ end
78
+ end
79
+ end
80
+ end