linner 0.1.0 → 0.1.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.
- checksums.yaml +4 -4
- data/.rspec +2 -0
- data/LICENSE +22 -0
- data/README.md +16 -1
- data/lib/linner.rb +12 -14
- data/lib/linner/asset.rb +5 -17
- data/lib/linner/command.rb +5 -5
- data/lib/linner/compressor.rb +2 -3
- data/lib/linner/environment.rb +13 -14
- data/lib/linner/{sort.rb → helper.rb} +17 -2
- data/lib/linner/notifier.rb +14 -13
- data/lib/linner/template.rb +22 -16
- data/lib/linner/templates/config.yml +2 -4
- data/lib/linner/version.rb +1 -1
- data/lib/linner/wrapper.rb +7 -11
- data/linner.gemspec +2 -1
- data/spec/fixtures/app.js +1 -0
- data/spec/fixtures/config.yml +0 -0
- data/spec/linner/asset_spec.rb +8 -0
- data/spec/linner/environment_spec.rb +31 -0
- data/spec/linner/helper_spec.rb +28 -0
- data/spec/linner/template_spec.rb +26 -0
- data/spec/linner/wrapper_spec.rb +22 -0
- data/spec/spec_helper.rb +11 -0
- data/vendor/config.default.yml +38 -0
- metadata +45 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 96597b56da64c0335227695b713d6ca663a93192
|
4
|
+
data.tar.gz: ac32c7dfd3bf23876cd8db939a4927a5b5fcf599
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4ffb6f987945e1aff80caf495e728a0013ac32cbfc200f86f4cbe65223f7a24b4ce3dfb23cd3f24240a95b963aead6829591f94fa7c7f91749e0edf6c3a3993
|
7
|
+
data.tar.gz: d105dcab73e1f4b26a55f588e5d2aecb990dd1a9367e5086a8f59bd92ccfcd1dd9e7db1804163bb49cc682c87690b298f2cb6fdc48c6325efdff6b494735a110
|
data/.rspec
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2013 Saito
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,6 +1,21 @@
|
|
1
1
|
# Linner
|
2
2
|
|
3
|
-
HTML5
|
3
|
+
Linner is a full-featured HTML5 application assembler.
|
4
|
+
|
5
|
+

|
6
|
+
|
7
|
+
* Fast!
|
8
|
+
* Supports `Sass` and `Coffee`.
|
9
|
+
* Supports OS X Lion and Mountaion Lion Notifications.
|
10
|
+
* Supports Modular Javascript, All your code will be wrap by `CMD`.
|
11
|
+
* Supports `concat` code by `config file` not `directive processor`.
|
12
|
+
* Supports `copy` code from `src` to `dist`.
|
13
|
+
* Supports Real-time `concat` by `$ linner watch`.
|
14
|
+
* Supports `compress` by `$ linner build`.
|
15
|
+
|
16
|
+
## Requirements
|
17
|
+
|
18
|
+
* Ruby 2.0
|
4
19
|
|
5
20
|
## Installation
|
6
21
|
|
data/lib/linner.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
require "linner/version"
|
2
2
|
require "linner/command"
|
3
3
|
require "linner/asset"
|
4
|
-
require "linner/
|
4
|
+
require "linner/helper"
|
5
5
|
require "linner/environment"
|
6
6
|
require "linner/wrapper"
|
7
7
|
require "linner/template"
|
@@ -16,12 +16,11 @@ module Linner
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def environment
|
19
|
-
@env ||=
|
19
|
+
@env ||= Environment.new root.join("config.yml")
|
20
20
|
end
|
21
21
|
|
22
|
-
def perform(
|
23
|
-
|
24
|
-
environment.files.values.each do |config|
|
22
|
+
def perform(compile: false)
|
23
|
+
environment.files.each do |config|
|
25
24
|
Thread.new {concat(config).each {|asset| asset.compress if compile; asset.write}}.join
|
26
25
|
Thread.new {copy(config)}.join
|
27
26
|
end
|
@@ -30,14 +29,13 @@ module Linner
|
|
30
29
|
private
|
31
30
|
def concat(config)
|
32
31
|
assets = []
|
33
|
-
concat
|
34
|
-
concat.each do |dist, regex|
|
32
|
+
config["concat"].each do |dist, regex|
|
35
33
|
Thread.new do
|
36
|
-
dist =
|
34
|
+
dist = Asset.new(File.join environment.public_folder, dist)
|
35
|
+
dist.content = ""
|
37
36
|
matches = Dir.glob(File.join root, regex).uniq
|
38
|
-
matches.
|
39
|
-
|
40
|
-
asset = Linner::Asset.new(m)
|
37
|
+
matches.sort_by_before_and_after(config["order"]["before"], config["order"]["after"]).each do |m|
|
38
|
+
asset = Asset.new(m)
|
41
39
|
content = asset.content
|
42
40
|
if asset.wrappable?
|
43
41
|
content = asset.wrap
|
@@ -51,13 +49,13 @@ module Linner
|
|
51
49
|
end
|
52
50
|
|
53
51
|
def copy(config)
|
54
|
-
config["copy"].
|
52
|
+
config["copy"].each do |dist, regex|
|
55
53
|
Thread.new do
|
56
54
|
matches = Dir.glob(File.join root, regex)
|
57
55
|
matches.each do |path|
|
58
|
-
asset =
|
56
|
+
asset = Asset.new(path)
|
59
57
|
asset.path = File.join(environment.public_folder, dist, asset.logical_path)
|
60
|
-
next if File.exist?
|
58
|
+
next if File.exist?(asset.path) and FileUtils.uptodate?(path, [asset.path])
|
61
59
|
asset.write
|
62
60
|
end
|
63
61
|
end.join
|
data/lib/linner/asset.rb
CHANGED
@@ -5,38 +5,26 @@ module Linner
|
|
5
5
|
|
6
6
|
def initialize(path)
|
7
7
|
@path = path
|
8
|
-
|
9
|
-
@content = ""
|
10
|
-
else
|
11
|
-
@content = Linner::Template.new(path).render
|
12
|
-
end
|
13
|
-
end
|
14
|
-
|
15
|
-
def type
|
16
|
-
@type ||= if @path =~ /\.(js|coffee)$/
|
17
|
-
"script"
|
18
|
-
elsif @path =~ /\.(css|sass|scss)/
|
19
|
-
"style"
|
20
|
-
end
|
8
|
+
@content ||= File.exist?(path) ? Tilt.new(path).render : ""
|
21
9
|
end
|
22
10
|
|
23
11
|
def wrap
|
24
|
-
|
12
|
+
Wrapper.wrap(logical_path.chomp(File.extname logical_path), @content)
|
25
13
|
end
|
26
14
|
|
27
15
|
def wrappable?
|
28
|
-
!!(
|
16
|
+
!!(@path.include? Linner.root.join("app").to_path and Template.template_for_script?(@path))
|
29
17
|
end
|
30
18
|
|
31
19
|
def write
|
32
20
|
FileUtils.mkdir_p File.dirname(@path)
|
33
|
-
File.open @path, "w
|
21
|
+
File.open @path, "w" do |file|
|
34
22
|
file.write @content
|
35
23
|
end
|
36
24
|
end
|
37
25
|
|
38
26
|
def compress
|
39
|
-
@content =
|
27
|
+
@content = Compressor.compress(self)
|
40
28
|
end
|
41
29
|
|
42
30
|
def logical_path
|
data/lib/linner/command.rb
CHANGED
@@ -11,7 +11,7 @@ module Linner
|
|
11
11
|
|
12
12
|
desc "build", "build assets"
|
13
13
|
def build
|
14
|
-
|
14
|
+
Notifier.info do
|
15
15
|
Linner.perform compile: true
|
16
16
|
end
|
17
17
|
end
|
@@ -20,16 +20,16 @@ module Linner
|
|
20
20
|
def watch
|
21
21
|
proc = Proc.new do |modified, added, removed|
|
22
22
|
begin
|
23
|
-
|
23
|
+
Notifier.info{ Linner.perform }
|
24
24
|
rescue
|
25
|
-
|
25
|
+
Notifier.error $!
|
26
26
|
end
|
27
27
|
end
|
28
28
|
proc.call
|
29
29
|
listener = Listen.to "app/", "vendor/", "test/", filter: /\.(js|coffee|css|sass|scss)$/
|
30
30
|
listener.change &proc
|
31
31
|
trap :INT do
|
32
|
-
|
32
|
+
Notifier.exit
|
33
33
|
exit!
|
34
34
|
end
|
35
35
|
listener.start!
|
@@ -37,7 +37,7 @@ module Linner
|
|
37
37
|
|
38
38
|
desc "clean", "clean assets"
|
39
39
|
def clean
|
40
|
-
FileUtils.rm_rf
|
40
|
+
FileUtils.rm_rf Dir.glob("#{Linner.environment.public_folder}/*")
|
41
41
|
end
|
42
42
|
|
43
43
|
desc "new", "create the skeleton of project"
|
data/lib/linner/compressor.rb
CHANGED
@@ -5,10 +5,9 @@ module Linner
|
|
5
5
|
class Compressor
|
6
6
|
|
7
7
|
def self.compress(asset)
|
8
|
-
|
9
|
-
when "script"
|
8
|
+
if Template.template_for_script? asset.path
|
10
9
|
Uglifier.compile asset.content, comments: "none"
|
11
|
-
|
10
|
+
elsif Template.template_for_style? asset.path
|
12
11
|
YUI::CssCompressor.new.compress asset.content
|
13
12
|
end
|
14
13
|
end
|
data/lib/linner/environment.rb
CHANGED
@@ -4,26 +4,25 @@ module Linner
|
|
4
4
|
class Environment
|
5
5
|
|
6
6
|
def initialize(path)
|
7
|
-
@
|
7
|
+
@env ||= (YAML::load(File.read path) || Hash.new)
|
8
|
+
@convension = YAML::load File.read(File.join File.dirname(__FILE__), "../../vendor", "config.default.yml")
|
9
|
+
@env = @convension.rmerge!(@env)
|
8
10
|
end
|
9
11
|
|
10
|
-
|
11
|
-
|
12
|
+
%w(app test vendor public).each do |method|
|
13
|
+
define_method("#{method}_folder") do
|
14
|
+
Linner.root.join(@env["paths"][method]).expand_path.to_path
|
15
|
+
end
|
12
16
|
end
|
13
17
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
def notifications
|
19
|
-
@config["notifications"] || false
|
18
|
+
%w(notification wrapper).each do |method|
|
19
|
+
define_method(method) do
|
20
|
+
@env[method]
|
21
|
+
end
|
20
22
|
end
|
21
23
|
|
22
|
-
def
|
23
|
-
|
24
|
-
before = file["order"].to_h["before"] || []
|
25
|
-
after = file["order"].to_h["after"] || []
|
26
|
-
[concat, before, after]
|
24
|
+
def files
|
25
|
+
@env["files"].values
|
27
26
|
end
|
28
27
|
end
|
29
28
|
end
|
@@ -1,7 +1,14 @@
|
|
1
1
|
module Linner
|
2
|
-
module
|
2
|
+
module HashRecursiveMerge
|
3
|
+
def rmerge!(other_hash)
|
4
|
+
merge!(other_hash) do |key, oldval, newval|
|
5
|
+
oldval.class == self.class ? oldval.rmerge!(newval) : newval
|
6
|
+
end
|
7
|
+
end
|
8
|
+
end
|
3
9
|
|
4
|
-
|
10
|
+
module Sort
|
11
|
+
def sort_by_before_and_after(before, after)
|
5
12
|
sort_by_before(self, before)
|
6
13
|
sort_by_after(self, after)
|
7
14
|
self
|
@@ -25,3 +32,11 @@ module Linner
|
|
25
32
|
end
|
26
33
|
end
|
27
34
|
end
|
35
|
+
|
36
|
+
class Hash
|
37
|
+
include Linner::HashRecursiveMerge
|
38
|
+
end
|
39
|
+
|
40
|
+
class Array
|
41
|
+
include Linner::Sort
|
42
|
+
end
|
data/lib/linner/notifier.rb
CHANGED
@@ -2,22 +2,23 @@ require "terminal-notifier"
|
|
2
2
|
|
3
3
|
module Linner
|
4
4
|
class Notifier
|
5
|
+
class << self
|
6
|
+
def info
|
7
|
+
time = Time.now
|
8
|
+
yield
|
9
|
+
puts "🍜 : Done in #{'%.3f' % (Time.now - time)}s."
|
10
|
+
end
|
5
11
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
def self.error(message)
|
13
|
-
puts message = "👻 : #{message}!"
|
14
|
-
if Linner.environment.notifications && TerminalNotifier.available?
|
15
|
-
TerminalNotifier.notify message, :title => 'Linner'
|
12
|
+
def error(message)
|
13
|
+
puts message = "👻 : #{message}!"
|
14
|
+
if Linner.environment.notifications && TerminalNotifier.available?
|
15
|
+
TerminalNotifier.notify message, :title => 'Linner'
|
16
|
+
end
|
16
17
|
end
|
17
|
-
end
|
18
18
|
|
19
|
-
|
20
|
-
|
19
|
+
def exit
|
20
|
+
puts "\r🍵 : Let's take a break!"
|
21
|
+
end
|
21
22
|
end
|
22
23
|
end
|
23
24
|
end
|
data/lib/linner/template.rb
CHANGED
@@ -1,25 +1,31 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
1
|
+
require "tilt"
|
2
|
+
require "sass"
|
3
|
+
require "coffee_script"
|
4
|
+
|
5
|
+
module Tilt
|
6
|
+
class JavascriptTemplate < PlainTemplate
|
7
|
+
self.default_mime_type = 'application/javascript'
|
8
|
+
end
|
9
|
+
|
10
|
+
class CSSTemplate < PlainTemplate
|
11
|
+
self.default_mime_type = 'text/css'
|
12
|
+
end
|
13
|
+
|
14
|
+
Tilt.register Tilt::CSSTemplate, "css"
|
15
|
+
Tilt.register Tilt::JavascriptTemplate, "js"
|
16
|
+
end
|
4
17
|
|
5
18
|
module Linner
|
6
19
|
class Template
|
7
20
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
def render
|
13
|
-
if supported_template? @path
|
14
|
-
Tilt.new(@path).render
|
15
|
-
else
|
16
|
-
File.read @path
|
21
|
+
class << self
|
22
|
+
def template_for_script?(path)
|
23
|
+
[Tilt::JavascriptTemplate, Tilt::CoffeeScriptTemplate].include? Tilt[path]
|
17
24
|
end
|
18
|
-
end
|
19
25
|
|
20
|
-
|
21
|
-
|
22
|
-
|
26
|
+
def template_for_style?(path)
|
27
|
+
[Tilt::CSSTemplate, Tilt::SassTemplate, Tilt::ScssTemplate].include? Tilt[path]
|
28
|
+
end
|
23
29
|
end
|
24
30
|
end
|
25
31
|
end
|
@@ -3,7 +3,7 @@ paths:
|
|
3
3
|
files:
|
4
4
|
scripts:
|
5
5
|
concat:
|
6
|
-
"scripts/app.js": "app
|
6
|
+
"scripts/app.js": "app/**/*.{js,coffee}"
|
7
7
|
"scripts/vendor.js": "vendor/**/*.{js,coffee}"
|
8
8
|
order:
|
9
9
|
before:
|
@@ -20,7 +20,5 @@ files:
|
|
20
20
|
copy:
|
21
21
|
"/": "app/views/**/*.{html,hbs}"
|
22
22
|
modules:
|
23
|
-
wrapper: "
|
24
|
-
conventions:
|
25
|
-
ignored: "_"
|
23
|
+
wrapper: "CMD"
|
26
24
|
notifications: true
|
data/lib/linner/version.rb
CHANGED
data/lib/linner/wrapper.rb
CHANGED
@@ -1,17 +1,13 @@
|
|
1
1
|
module Linner
|
2
2
|
class Wrapper
|
3
|
+
WRAPPER =
|
4
|
+
'window.require.define({"%s":' +
|
5
|
+
'function(exports, require, module){' +
|
6
|
+
'%s' +
|
7
|
+
";}});\n"
|
3
8
|
|
4
|
-
|
5
|
-
|
6
|
-
'window.require.define({"%s":' +
|
7
|
-
'function(exports, require, module){' +
|
8
|
-
'%s' +
|
9
|
-
";}});\n"
|
10
|
-
end
|
11
|
-
|
12
|
-
def wrap(name, content)
|
13
|
-
wrapper % [name, content]
|
14
|
-
end
|
9
|
+
def self.wrap(name, content)
|
10
|
+
WRAPPER % [name, content]
|
15
11
|
end
|
16
12
|
end
|
17
13
|
end
|
data/linner.gemspec
CHANGED
@@ -27,6 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.add_dependency "yui-compressor", "~> 0.9.6"
|
28
28
|
spec.add_dependency "terminal-notifier", "~> 1.4"
|
29
29
|
|
30
|
-
spec.add_development_dependency "bundler", "~> 1.3"
|
31
30
|
spec.add_development_dependency "rake"
|
31
|
+
spec.add_development_dependency "rspec", "~> 2.14"
|
32
|
+
spec.add_development_dependency "bundler", "~> 1.3"
|
32
33
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
console.log("app.js")
|
File without changes
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Environment do
|
4
|
+
before(:each) do
|
5
|
+
@env = Environment.new(root.join "config.yml")
|
6
|
+
end
|
7
|
+
|
8
|
+
describe "convension" do
|
9
|
+
it "should equals default path folder" do
|
10
|
+
@env.app_folder.should == root.join("app").to_path
|
11
|
+
@env.test_folder.should == root.join("test").to_path
|
12
|
+
@env.vendor_folder.should == root.join("vendor").to_path
|
13
|
+
@env.public_folder.should == root.join("public").to_path
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should equals default config" do
|
17
|
+
@env.notification.should be_true
|
18
|
+
@env.wrapper.should == "CMD"
|
19
|
+
@env.files.should respond_to(:each)
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should equals default before and after" do
|
23
|
+
@env.files.each do |file|
|
24
|
+
file["copy"].should respond_to(:each)
|
25
|
+
file["concat"].should respond_to(:each)
|
26
|
+
file["order"]["before"].should respond_to(:each)
|
27
|
+
file["order"]["after"].should respond_to(:each)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Array do
|
4
|
+
before(:each) do
|
5
|
+
@array = %w[app.js jquery.js bootstrap.css reset.css vendor.js]
|
6
|
+
end
|
7
|
+
|
8
|
+
describe :sort do
|
9
|
+
it "won't change when before and after are empty array" do
|
10
|
+
@array.sort_by_before_and_after([], []).should be_equal @array
|
11
|
+
end
|
12
|
+
|
13
|
+
it "will change by before items" do
|
14
|
+
@array.sort_by_before_and_after(["jquery.js", "vendor.js"], [])
|
15
|
+
@array.should =~ %w[jquery.js vendor.js app.js bootstrap.css reset.css]
|
16
|
+
end
|
17
|
+
|
18
|
+
it "will change by after items" do
|
19
|
+
@array.sort_by_before_and_after([], ["reset.css", "bootstrap.css"])
|
20
|
+
@array.should =~ %w[app.js jquery.js vendor.js reset.css bootstrap.css]
|
21
|
+
end
|
22
|
+
|
23
|
+
it "will change by before and after items" do
|
24
|
+
@array.sort_by_before_and_after(["jquery.js", "vendor.js"], ["reset.css", "bootstrap.css"])
|
25
|
+
@array.should =~ %w[jquery.js vendor.js app.js reset.css bootstrap.css]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Template do
|
4
|
+
|
5
|
+
describe :templates do
|
6
|
+
|
7
|
+
it "should be javascript tempalate" do
|
8
|
+
Tilt["app.js"].should == Tilt::JavascriptTemplate
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should be css template" do
|
12
|
+
Tilt["app.css"].should == Tilt::CSSTemplate
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should tempalte for script" do
|
16
|
+
Template.template_for_script? "app.js".should be_true
|
17
|
+
Template.template_for_script? "app.coffee".should be_true
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should tempalte for style" do
|
21
|
+
Template.template_for_style? "app.css".should be_true
|
22
|
+
Template.template_for_style? "app.sass".should be_true
|
23
|
+
Template.template_for_style? "app.scss".should be_true
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
describe Wrapper do
|
4
|
+
|
5
|
+
before(:each) do
|
6
|
+
@name = "app"
|
7
|
+
@script = 'module.exports = function() {return console.log("log from app!");};'
|
8
|
+
@expected_script = 'window.require.define({"app":' +
|
9
|
+
'function(exports, require, module){' +
|
10
|
+
'module.exports = function() {' +
|
11
|
+
'return console.log("log from app!");' +
|
12
|
+
'};' +
|
13
|
+
";}});\n"
|
14
|
+
end
|
15
|
+
|
16
|
+
describe :wrap do
|
17
|
+
it "should wrapped by wrapper" do
|
18
|
+
script = Wrapper.wrap(@name, @script)
|
19
|
+
script.should eq @expected_script
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
paths:
|
2
|
+
app: "app"
|
3
|
+
test: "test"
|
4
|
+
vendor: "vendor"
|
5
|
+
public: "public"
|
6
|
+
files:
|
7
|
+
scripts:
|
8
|
+
concat:
|
9
|
+
"scripts/app.js": "app/**/*.{js,coffee}"
|
10
|
+
"scripts/vendor.js": "vendor/**/*.{js,coffee}"
|
11
|
+
copy: {}
|
12
|
+
order:
|
13
|
+
before:
|
14
|
+
- "vendor/jquery-1.10.2.js"
|
15
|
+
after: []
|
16
|
+
styles:
|
17
|
+
concat:
|
18
|
+
"styles/app.css": "app/**/[a-z]*.{css,scss,sass}"
|
19
|
+
copy: {}
|
20
|
+
order:
|
21
|
+
before: []
|
22
|
+
after: []
|
23
|
+
images:
|
24
|
+
concat: {}
|
25
|
+
copy:
|
26
|
+
"images/": "app/**/*.{png,gif}"
|
27
|
+
order:
|
28
|
+
before: []
|
29
|
+
after: []
|
30
|
+
views:
|
31
|
+
concat: {}
|
32
|
+
copy:
|
33
|
+
"/": "app/**/*.{html,hbs}"
|
34
|
+
order:
|
35
|
+
before: []
|
36
|
+
after: []
|
37
|
+
wrapper: "CMD"
|
38
|
+
notification: true
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: linner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Saito
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -123,33 +123,47 @@ dependencies:
|
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '1.4'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
|
-
name:
|
126
|
+
name: rake
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - '>='
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - '>='
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rspec
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
128
142
|
requirements:
|
129
143
|
- - ~>
|
130
144
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
145
|
+
version: '2.14'
|
132
146
|
type: :development
|
133
147
|
prerelease: false
|
134
148
|
version_requirements: !ruby/object:Gem::Requirement
|
135
149
|
requirements:
|
136
150
|
- - ~>
|
137
151
|
- !ruby/object:Gem::Version
|
138
|
-
version: '
|
152
|
+
version: '2.14'
|
139
153
|
- !ruby/object:Gem::Dependency
|
140
|
-
name:
|
154
|
+
name: bundler
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
|
-
- -
|
157
|
+
- - ~>
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
159
|
+
version: '1.3'
|
146
160
|
type: :development
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
|
-
- -
|
164
|
+
- - ~>
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
166
|
+
version: '1.3'
|
153
167
|
description: HTML5 Application Assembler
|
154
168
|
email:
|
155
169
|
- saitowu@gmail.com
|
@@ -159,8 +173,10 @@ extensions: []
|
|
159
173
|
extra_rdoc_files: []
|
160
174
|
files:
|
161
175
|
- .gitignore
|
176
|
+
- .rspec
|
162
177
|
- Gemfile
|
163
178
|
- Gemfile.lock
|
179
|
+
- LICENSE
|
164
180
|
- README.md
|
165
181
|
- Rakefile
|
166
182
|
- bin/linner
|
@@ -169,8 +185,8 @@ files:
|
|
169
185
|
- lib/linner/command.rb
|
170
186
|
- lib/linner/compressor.rb
|
171
187
|
- lib/linner/environment.rb
|
188
|
+
- lib/linner/helper.rb
|
172
189
|
- lib/linner/notifier.rb
|
173
|
-
- lib/linner/sort.rb
|
174
190
|
- lib/linner/template.rb
|
175
191
|
- lib/linner/templates/app/images/.gitkeep
|
176
192
|
- lib/linner/templates/app/scripts/app.coffee
|
@@ -184,6 +200,15 @@ files:
|
|
184
200
|
- lib/linner/version.rb
|
185
201
|
- lib/linner/wrapper.rb
|
186
202
|
- linner.gemspec
|
203
|
+
- spec/fixtures/app.js
|
204
|
+
- spec/fixtures/config.yml
|
205
|
+
- spec/linner/asset_spec.rb
|
206
|
+
- spec/linner/environment_spec.rb
|
207
|
+
- spec/linner/helper_spec.rb
|
208
|
+
- spec/linner/template_spec.rb
|
209
|
+
- spec/linner/wrapper_spec.rb
|
210
|
+
- spec/spec_helper.rb
|
211
|
+
- vendor/config.default.yml
|
187
212
|
homepage: https://github.com/saitowu/linner
|
188
213
|
licenses:
|
189
214
|
- MIT
|
@@ -208,4 +233,12 @@ rubygems_version: 2.0.3
|
|
208
233
|
signing_key:
|
209
234
|
specification_version: 4
|
210
235
|
summary: HTML5 Application Assembler
|
211
|
-
test_files:
|
236
|
+
test_files:
|
237
|
+
- spec/fixtures/app.js
|
238
|
+
- spec/fixtures/config.yml
|
239
|
+
- spec/linner/asset_spec.rb
|
240
|
+
- spec/linner/environment_spec.rb
|
241
|
+
- spec/linner/helper_spec.rb
|
242
|
+
- spec/linner/template_spec.rb
|
243
|
+
- spec/linner/wrapper_spec.rb
|
244
|
+
- spec/spec_helper.rb
|