rab 0.0.1 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +10 -15
- data/lib/rab.rb +14 -0
- data/lib/rab/bower/project.rb +13 -4
- data/lib/rab/gem/packer.rb +17 -40
- data/lib/rab/gem/templates/{css.css.erb → css_manifest.css.erb} +0 -0
- data/lib/rab/gem/templates/{lib.rb.erb → engine.rb.erb} +0 -0
- data/lib/rab/gem/templates/gemspec.gemspec.erb +1 -1
- data/lib/rab/gem/templates/{js.js.erb → js_manifest.js.erb} +0 -0
- data/lib/rab/gem/writer/asset.rb +13 -0
- data/lib/rab/gem/writer/css.rb +15 -0
- data/lib/rab/gem/writer/engine.rb +10 -0
- data/lib/rab/gem/writer/font.rb +12 -0
- data/lib/rab/gem/writer/gemfile.rb +10 -0
- data/lib/rab/gem/writer/gemspec.rb +10 -0
- data/lib/rab/gem/writer/image.rb +12 -0
- data/lib/rab/gem/writer/js.rb +15 -0
- data/lib/rab/gem/writer/rakefile.rb +10 -0
- data/lib/rab/gem/writer/readme.rb +10 -0
- data/lib/rab/gem/writer/template.rb +21 -0
- data/lib/rab/gem/writer/version.rb +10 -0
- data/lib/rab/version.rb +1 -1
- data/rab.gemspec +1 -1
- data/test/bower/test_bower.rb +1 -1
- data/test/fixtures/bower_project/bar/bar.js +0 -0
- data/test/fixtures/bower_project/bar/baz/baz.js +0 -0
- data/test/fixtures/bower_project/bower.json +1 -1
- data/test/fixtures/bower_project/foo.png +0 -0
- data/test/test_builder.rb +22 -10
- metadata +24 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 475c9e38ba1ea4ee44bf74c88e7e56ec975535cd
|
4
|
+
data.tar.gz: bf04191cf1e257484c0ef942075122c23baaff9c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: af164bf2639ae1c6bf3a745903a90bb4cf3ebb89d678c29bc514e011f60038551be65e4e5cd341e75c6e7a57c8a9f43802bd9c6f5f3af359e953a441263f35b3
|
7
|
+
data.tar.gz: 6eeeb6453bbbd558338f34e2a671ff2166252bdc619efbfc759c18abca6d25acc86c02d41a14c443acf87f824bab74a3669be5940e11dc6bfa9d74cbb09fe5ed
|
data/README.md
CHANGED
@@ -1,28 +1,23 @@
|
|
1
|
-
#
|
1
|
+
# Rails Asset Builder (RAB)
|
2
2
|
|
3
|
-
|
3
|
+
Rails Asset Builder (RAB) builds Rails asset as a gem from a [bower](http://bower.io/) project.
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
And then execute:
|
12
|
-
|
13
|
-
$ bundle
|
14
|
-
|
15
|
-
Or install it yourself as:
|
16
|
-
|
17
|
-
$ gem install rab
|
7
|
+
```
|
8
|
+
gem install rab
|
9
|
+
```
|
18
10
|
|
19
11
|
## Usage
|
20
12
|
|
21
|
-
|
13
|
+
```
|
14
|
+
rab build BOWER_PROJECT GEM_FOLDER
|
15
|
+
```
|
16
|
+
|
22
17
|
|
23
18
|
## Contributing
|
24
19
|
|
25
|
-
1. Fork it (
|
20
|
+
1. Fork it (https://github.com/jingweno/rab/fork)
|
26
21
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
27
22
|
3. Commit your changes (`git commit -am 'Add some feature'`)
|
28
23
|
4. Push to the branch (`git push origin my-new-feature`)
|
data/lib/rab.rb
CHANGED
@@ -4,6 +4,20 @@ end
|
|
4
4
|
require "rab/bower/command_error"
|
5
5
|
require "rab/bower/command"
|
6
6
|
require "rab/bower/project"
|
7
|
+
|
8
|
+
require "rab/gem/writer/template"
|
9
|
+
require "rab/gem/writer/asset"
|
10
|
+
require "rab/gem/writer/readme"
|
11
|
+
require "rab/gem/writer/gemspec"
|
12
|
+
require "rab/gem/writer/gemfile"
|
13
|
+
require "rab/gem/writer/rakefile"
|
14
|
+
require "rab/gem/writer/engine"
|
15
|
+
require "rab/gem/writer/version"
|
16
|
+
require "rab/gem/writer/js"
|
17
|
+
require "rab/gem/writer/css"
|
18
|
+
require "rab/gem/writer/font"
|
19
|
+
require "rab/gem/writer/image"
|
7
20
|
require "rab/gem/packer"
|
21
|
+
|
8
22
|
require "rab/builder"
|
9
23
|
require "rab/version"
|
data/lib/rab/bower/project.rb
CHANGED
@@ -34,8 +34,13 @@ module Bower
|
|
34
34
|
|
35
35
|
def build_assets(cwd, paths)
|
36
36
|
Array(paths).map do |p|
|
37
|
-
full_path(cwd, p)
|
38
|
-
|
37
|
+
pp = full_path(cwd, p)
|
38
|
+
if File.directory?(pp)
|
39
|
+
pp = Dir["#{pp}/**/*"].select { |f| !File.directory? f }
|
40
|
+
end
|
41
|
+
|
42
|
+
pp
|
43
|
+
end.flatten
|
39
44
|
end
|
40
45
|
|
41
46
|
def build_dep_assets(cwd, dep_paths)
|
@@ -59,11 +64,11 @@ module Bower
|
|
59
64
|
end
|
60
65
|
|
61
66
|
def rails_assets_dir_name
|
62
|
-
@dir_name ||= "
|
67
|
+
@dir_name ||= "rab-#{dir_name}"
|
63
68
|
end
|
64
69
|
|
65
70
|
def rails_assets_namespace
|
66
|
-
@namespace ||= "
|
71
|
+
@namespace ||= "Rab#{classify(underscore(name))}"
|
67
72
|
end
|
68
73
|
|
69
74
|
def js_assets
|
@@ -78,6 +83,10 @@ module Bower
|
|
78
83
|
@font_assets ||= assets.select { |a| [ ".eot", ".svg", ".ttf", ".woff" ].include?(File.extname(a)) }
|
79
84
|
end
|
80
85
|
|
86
|
+
def image_assets
|
87
|
+
@image_assets ||= assets.select { |a| [ ".png", ".ico", ".jpg", ".jpeg", ".gif" ].include?(File.extname(a)) }
|
88
|
+
end
|
89
|
+
|
81
90
|
def self.create!(src)
|
82
91
|
Creator.new(src).create!
|
83
92
|
end
|
data/lib/rab/gem/packer.rb
CHANGED
@@ -9,84 +9,61 @@ module Gem
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def pack!(dst)
|
12
|
+
dst = File.join(dst, @project.rails_assets_dir_name)
|
13
|
+
FileUtils.mkdir_p(dst)
|
14
|
+
|
12
15
|
write_readme(dst)
|
13
16
|
write_gemspec(dst)
|
14
17
|
write_gemfile(dst)
|
15
18
|
write_rakefile(dst)
|
16
|
-
|
19
|
+
write_engine_file(dst)
|
17
20
|
write_version_file(dst)
|
18
21
|
write_js_assets(dst)
|
19
22
|
write_css_assets(dst)
|
20
23
|
write_font_assets(dst)
|
24
|
+
write_image_assets(dst)
|
21
25
|
end
|
22
26
|
|
23
27
|
private
|
24
28
|
|
25
29
|
def write_readme(dst)
|
26
|
-
|
27
|
-
write_template("README.md.erb", readme)
|
30
|
+
Gem::Writter::Readme.new(@project).write(dst)
|
28
31
|
end
|
29
32
|
|
30
33
|
def write_gemspec(dst)
|
31
|
-
|
32
|
-
write_template("gemspec.gemspec.erb", gemspec)
|
34
|
+
Gem::Writter::Gemspec.new(@project).write(dst)
|
33
35
|
end
|
34
36
|
|
35
37
|
def write_gemfile(dst)
|
36
|
-
|
37
|
-
write_template("Gemfile.erb", gemfile)
|
38
|
+
Gem::Writter::Gemfile.new(@project).write(dst)
|
38
39
|
end
|
39
40
|
|
40
41
|
def write_rakefile(dst)
|
41
|
-
|
42
|
-
write_template("Rakefile.erb", rakefile)
|
42
|
+
Gem::Writter::Rakefile.new(@project).write(dst)
|
43
43
|
end
|
44
44
|
|
45
|
-
def
|
46
|
-
|
47
|
-
write_template("lib.rb.erb", lib_file)
|
45
|
+
def write_engine_file(dst)
|
46
|
+
Gem::Writter::Engine.new(@project).write(dst)
|
48
47
|
end
|
49
48
|
|
50
49
|
def write_version_file(dst)
|
51
|
-
|
52
|
-
write_template("version.rb.erb", version_file)
|
53
|
-
end
|
54
|
-
|
55
|
-
def write_template(name, to_file)
|
56
|
-
FileUtils.mkdir_p File.dirname(to_file)
|
57
|
-
template = ERB.new File.read(template(name)), nil, "-"
|
58
|
-
File.open(to_file, "w") { |f| f.write template.result(binding) }
|
50
|
+
Gem::Writter::Version.new(@project).write(dst)
|
59
51
|
end
|
60
52
|
|
61
53
|
def write_js_assets(dst)
|
62
|
-
|
63
|
-
write_assets(js_dir, @project.js_assets)
|
64
|
-
|
65
|
-
manifest_file = File.join(js_dir, "#{@project.dir_name}.js")
|
66
|
-
write_template("js.js.erb", manifest_file)
|
54
|
+
Gem::Writter::JS.new(@project).write(dst)
|
67
55
|
end
|
68
56
|
|
69
57
|
def write_css_assets(dst)
|
70
|
-
|
71
|
-
write_assets(css_dir, @project.css_assets)
|
72
|
-
|
73
|
-
manifest_file = File.join(css_dir, "#{@project.dir_name}.css")
|
74
|
-
write_template("css.css.erb", manifest_file)
|
58
|
+
Gem::Writter::CSS.new(@project).write(dst)
|
75
59
|
end
|
76
60
|
|
77
61
|
def write_font_assets(dst)
|
78
|
-
|
79
|
-
write_assets(font_dir, @project.font_assets)
|
80
|
-
end
|
81
|
-
|
82
|
-
def write_assets(dir, assets)
|
83
|
-
asset_dir = File.join(dir, @project.dir_name)
|
84
|
-
FileUtils.mkdir_p(asset_dir)
|
85
|
-
assets.each { |a| FileUtils.cp a, File.join(asset_dir, File.basename(a)) }
|
62
|
+
Gem::Writter::Font.new(@project).write(dst)
|
86
63
|
end
|
87
64
|
|
88
|
-
def
|
89
|
-
|
65
|
+
def write_image_assets(dst)
|
66
|
+
Gem::Writter::Image.new(@project).write(dst)
|
90
67
|
end
|
91
68
|
end
|
92
69
|
end
|
File without changes
|
File without changes
|
@@ -6,7 +6,7 @@ require '<%= @project.rails_assets_dir_name %>/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "<%= @project.rails_assets_dir_name %>"
|
8
8
|
spec.version = <%= @project.rails_assets_namespace %>::VERSION
|
9
|
-
spec.authors = ["
|
9
|
+
spec.authors = ["rab"]
|
10
10
|
spec.description = ""
|
11
11
|
spec.summary = ""
|
12
12
|
spec.homepage = "https://github.com/angular/bower-angular"
|
File without changes
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Gem
|
2
|
+
module Writter
|
3
|
+
class Asset < Template
|
4
|
+
protected
|
5
|
+
|
6
|
+
def write_assets(dir, assets)
|
7
|
+
asset_dir = File.join(dir, @project.dir_name)
|
8
|
+
FileUtils.mkdir_p(asset_dir)
|
9
|
+
assets.each { |a| FileUtils.cp a, File.join(asset_dir, File.basename(a)) }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Gem
|
2
|
+
module Writter
|
3
|
+
class CSS < Asset
|
4
|
+
def write(dst)
|
5
|
+
return if @project.css_assets.empty?
|
6
|
+
|
7
|
+
css_dir = File.join(dst, "vendor", "assets", "stylesheets")
|
8
|
+
write_assets(css_dir, @project.css_assets)
|
9
|
+
|
10
|
+
manifest_file = File.join(css_dir, "#{@project.dir_name}.css")
|
11
|
+
write_template("css_manifest.css.erb", manifest_file)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Gem
|
2
|
+
module Writter
|
3
|
+
class JS < Asset
|
4
|
+
def write(dst)
|
5
|
+
return if @project.js_assets.empty?
|
6
|
+
|
7
|
+
js_dir = File.join(dst, "vendor", "assets", "javascripts")
|
8
|
+
write_assets(js_dir, @project.js_assets)
|
9
|
+
|
10
|
+
manifest_file = File.join(js_dir, "#{@project.dir_name}.js")
|
11
|
+
write_template("js_manifest.js.erb", manifest_file)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Gem
|
2
|
+
module Writter
|
3
|
+
class Template
|
4
|
+
def initialize(project)
|
5
|
+
@project = project
|
6
|
+
end
|
7
|
+
|
8
|
+
protected
|
9
|
+
|
10
|
+
def write_template(template_name, to_file)
|
11
|
+
FileUtils.mkdir_p File.dirname(to_file)
|
12
|
+
template = ERB.new File.read(template(template_name)), nil, "-"
|
13
|
+
File.open(to_file, "w") { |f| f.write template.result(binding) }
|
14
|
+
end
|
15
|
+
|
16
|
+
def template(name)
|
17
|
+
File.expand_path File.join(File.dirname(__FILE__), "..", "templates", name)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/lib/rab/version.rb
CHANGED
data/rab.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Rab::VERSION
|
9
9
|
spec.authors = ["Jingwen Owen Ou"]
|
10
10
|
spec.email = ["jingweno@gmail.com"]
|
11
|
-
spec.summary = %q{Rails Assets Buidler (RAB) builds Rails asset from a bower project.}
|
11
|
+
spec.summary = %q{Rails Assets Buidler (RAB) builds Rails asset as a gem from a bower project.}
|
12
12
|
spec.homepage = "https://github.com/jingweno/rab"
|
13
13
|
spec.license = "MIT"
|
14
14
|
|
data/test/bower/test_bower.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
data/test/test_builder.rb
CHANGED
@@ -8,14 +8,16 @@ describe Rab::Builder do
|
|
8
8
|
rab = Rab::Builder.new("test/fixtures/bower_project", dir)
|
9
9
|
rab.build!
|
10
10
|
|
11
|
+
dir = File.join(dir, "rab-test-project")
|
12
|
+
|
11
13
|
readme = File.read File.join(dir, "README.md")
|
12
|
-
readme.must_include "#
|
13
|
-
readme.must_include "gem \"
|
14
|
+
readme.must_include "# rab-test-project"
|
15
|
+
readme.must_include "gem \"rab-test-project\""
|
14
16
|
readme.must_include "//= require \"test-project\""
|
15
17
|
|
16
|
-
gemspec = File.read File.join(dir, "
|
17
|
-
gemspec.must_include "require '
|
18
|
-
gemspec.must_include "
|
18
|
+
gemspec = File.read File.join(dir, "rab-test-project.gemspec")
|
19
|
+
gemspec.must_include "require 'rab-test-project/version'"
|
20
|
+
gemspec.must_include "RabTestProject::VERSION"
|
19
21
|
|
20
22
|
gemfile = File.read File.join(dir, "Gemfile")
|
21
23
|
gemfile.must_include "source 'https://rails-assets.org'"
|
@@ -23,18 +25,21 @@ describe Rab::Builder do
|
|
23
25
|
rakefile = File.read File.join(dir, "Rakefile")
|
24
26
|
rakefile.must_include "require \"bundler/gem_tasks\""
|
25
27
|
|
26
|
-
lib_file = File.read File.join(dir, "lib", "
|
27
|
-
lib_file.must_include "require \"
|
28
|
-
lib_file.must_include "module
|
28
|
+
lib_file = File.read File.join(dir, "lib", "rab-test-project.rb")
|
29
|
+
lib_file.must_include "require \"rab-test-project/version\""
|
30
|
+
lib_file.must_include "module RabTestProject"
|
29
31
|
|
30
|
-
version_file = File.read File.join(dir, "lib", "
|
31
|
-
version_file.must_include "module
|
32
|
+
version_file = File.read File.join(dir, "lib", "rab-test-project", "version.rb")
|
33
|
+
version_file.must_include "module RabTestProject"
|
32
34
|
version_file.must_include "VERSION = \"0.0.0\""
|
33
35
|
|
34
36
|
js_path = File.join(dir, "vendor", "assets", "javascripts", "test-project")
|
35
37
|
js_files = Dir.entries(js_path)
|
38
|
+
js_files.size.must_equal 7 # plus . and ..
|
36
39
|
js_files.must_include "bootstrap.js"
|
37
40
|
js_files.must_include "foo.js"
|
41
|
+
js_files.must_include "bar.js"
|
42
|
+
js_files.must_include "baz.js"
|
38
43
|
js_files.must_include "jquery.js"
|
39
44
|
|
40
45
|
js_manifest = File.read File.join(dir, "vendor", "assets", "javascripts", "test-project.js")
|
@@ -44,6 +49,7 @@ describe Rab::Builder do
|
|
44
49
|
|
45
50
|
css_path = File.join(dir, "vendor", "assets", "stylesheets", "test-project")
|
46
51
|
css_files = Dir.entries(css_path)
|
52
|
+
css_files.size.must_equal 4 # plus . and ..
|
47
53
|
css_files.must_include "bootstrap.css"
|
48
54
|
css_files.must_include "foo.css"
|
49
55
|
|
@@ -53,10 +59,16 @@ describe Rab::Builder do
|
|
53
59
|
|
54
60
|
font_path = File.join(dir, "vendor", "assets", "fonts", "test-project")
|
55
61
|
font_files = Dir.entries(font_path)
|
62
|
+
font_files.size.must_equal 6 # plus . and ..
|
56
63
|
font_files.must_include "glyphicons-halflings-regular.eot"
|
57
64
|
font_files.must_include "glyphicons-halflings-regular.svg"
|
58
65
|
font_files.must_include "glyphicons-halflings-regular.ttf"
|
59
66
|
font_files.must_include "glyphicons-halflings-regular.woff"
|
67
|
+
|
68
|
+
image_path = File.join(dir, "vendor", "assets", "images", "test-project")
|
69
|
+
image_files = Dir.entries(image_path)
|
70
|
+
image_files.size.must_equal 3 # plus . and ..
|
71
|
+
image_files.must_include "foo.png"
|
60
72
|
end
|
61
73
|
end
|
62
74
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rab
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jingwen Owen Ou
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -91,18 +91,33 @@ files:
|
|
91
91
|
- lib/rab/gem/templates/Gemfile.erb
|
92
92
|
- lib/rab/gem/templates/README.md.erb
|
93
93
|
- lib/rab/gem/templates/Rakefile.erb
|
94
|
-
- lib/rab/gem/templates/
|
94
|
+
- lib/rab/gem/templates/css_manifest.css.erb
|
95
|
+
- lib/rab/gem/templates/engine.rb.erb
|
95
96
|
- lib/rab/gem/templates/gemspec.gemspec.erb
|
96
|
-
- lib/rab/gem/templates/
|
97
|
-
- lib/rab/gem/templates/lib.rb.erb
|
97
|
+
- lib/rab/gem/templates/js_manifest.js.erb
|
98
98
|
- lib/rab/gem/templates/version.rb.erb
|
99
|
+
- lib/rab/gem/writer/asset.rb
|
100
|
+
- lib/rab/gem/writer/css.rb
|
101
|
+
- lib/rab/gem/writer/engine.rb
|
102
|
+
- lib/rab/gem/writer/font.rb
|
103
|
+
- lib/rab/gem/writer/gemfile.rb
|
104
|
+
- lib/rab/gem/writer/gemspec.rb
|
105
|
+
- lib/rab/gem/writer/image.rb
|
106
|
+
- lib/rab/gem/writer/js.rb
|
107
|
+
- lib/rab/gem/writer/rakefile.rb
|
108
|
+
- lib/rab/gem/writer/readme.rb
|
109
|
+
- lib/rab/gem/writer/template.rb
|
110
|
+
- lib/rab/gem/writer/version.rb
|
99
111
|
- lib/rab/version.rb
|
100
112
|
- rab.gemspec
|
101
113
|
- test/bower/test_bower.rb
|
102
114
|
- test/fixtures/bower_project/.gitignore
|
115
|
+
- test/fixtures/bower_project/bar/bar.js
|
116
|
+
- test/fixtures/bower_project/bar/baz/baz.js
|
103
117
|
- test/fixtures/bower_project/bower.json
|
104
118
|
- test/fixtures/bower_project/foo.css
|
105
119
|
- test/fixtures/bower_project/foo.js
|
120
|
+
- test/fixtures/bower_project/foo.png
|
106
121
|
- test/test_builder.rb
|
107
122
|
homepage: https://github.com/jingweno/rab
|
108
123
|
licenses:
|
@@ -127,11 +142,14 @@ rubyforge_project:
|
|
127
142
|
rubygems_version: 2.2.2
|
128
143
|
signing_key:
|
129
144
|
specification_version: 4
|
130
|
-
summary: Rails Assets Buidler (RAB) builds Rails asset from a bower project.
|
145
|
+
summary: Rails Assets Buidler (RAB) builds Rails asset as a gem from a bower project.
|
131
146
|
test_files:
|
132
147
|
- test/bower/test_bower.rb
|
133
148
|
- test/fixtures/bower_project/.gitignore
|
149
|
+
- test/fixtures/bower_project/bar/bar.js
|
150
|
+
- test/fixtures/bower_project/bar/baz/baz.js
|
134
151
|
- test/fixtures/bower_project/bower.json
|
135
152
|
- test/fixtures/bower_project/foo.css
|
136
153
|
- test/fixtures/bower_project/foo.js
|
154
|
+
- test/fixtures/bower_project/foo.png
|
137
155
|
- test/test_builder.rb
|