rab 0.0.1 → 0.1.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.
- 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
|