linner 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 234c003d2a8de857346b8001b7d76f4e0e2dc1d3
4
- data.tar.gz: 5f67d62fd866da6717fa56f619be7a8613a1c859
3
+ metadata.gz: ef15c34cce7a178f1dccea701490a4ebd35f098e
4
+ data.tar.gz: c1005af018772e5356d511df2dcda0ed4b20f28f
5
5
  SHA512:
6
- metadata.gz: a78076faccfb160445dbe5c3846ba796e787c36a46c0f699f72890e0837dee3ca62f237dd0d83c00772d0eb06fe5b648dd456021c70cdce85ba5c27519726d91
7
- data.tar.gz: 2324de42bd8f6ab2fbb82a7a98b54e71fe61f20958edc4c2e798bebfe089dae86fd729c35c6813c873c607f5942703344ecfb7ef670fd19c1a59d4f271de91e8
6
+ metadata.gz: f0027951a49e9b5b3b634988aa318b6d75cb25d69510e0bf30a9207f3e6b972692694736fc2df85163baafd31e2a2cb6575f2cd0d429ba53bedcf8cf65cb2c93
7
+ data.tar.gz: 9372867370f3d80267dd95792426ef83bc7c6ff7df11fa15d9d05297c3bf6e308473def78f5dbe30290b64fa99b57c13ada21f90c5d79e1f1c8072d2ea770b0f
data/CHANGELOG ADDED
@@ -0,0 +1,4 @@
1
+ v 0.3.0
2
+ - add `compass` support
3
+ - cache now supports `styles`
4
+ - more readable config file
data/Gemfile.lock CHANGED
@@ -1,8 +1,9 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- linner (0.1.5)
4
+ linner (0.2.0)
5
5
  coffee-script (~> 2.2)
6
+ compass (~> 0.12.2)
6
7
  cssminify (~> 1.0.2)
7
8
  listen (~> 1.2)
8
9
  multi_json (~> 1.7)
@@ -15,15 +16,21 @@ PATH
15
16
  GEM
16
17
  remote: https://rubygems.org/
17
18
  specs:
19
+ chunky_png (1.2.8)
18
20
  coffee-script (2.2.0)
19
21
  coffee-script-source
20
22
  execjs
21
23
  coffee-script-source (1.6.3)
24
+ compass (0.12.2)
25
+ chunky_png (~> 1.2)
26
+ fssm (>= 0.2.7)
27
+ sass (~> 3.1)
22
28
  cssminify (1.0.2)
23
29
  diff-lcs (1.2.4)
24
30
  execjs (1.4.0)
25
31
  multi_json (~> 1.0)
26
32
  ffi (1.9.0)
33
+ fssm (0.2.10)
27
34
  listen (1.2.2)
28
35
  rb-fsevent (>= 0.9.3)
29
36
  rb-inotify (>= 0.9)
data/lib/linner/asset.rb CHANGED
@@ -5,19 +5,43 @@ module Linner
5
5
 
6
6
  def initialize(path)
7
7
  @path = path
8
- @content ||= begin
8
+ if File.exist? @path
9
+ @mtime ||= File.mtime(path).to_i
10
+ end
11
+ end
12
+
13
+ def mtime
14
+ @mtime
15
+ end
16
+
17
+ def content
18
+ return @content if @content
19
+ source = begin
9
20
  File.exist?(path) ? Tilt.new(path, :default_encoding => "UTF-8").render : ""
10
21
  rescue RuntimeError
11
22
  File.read(path)
12
23
  end
24
+ if wrappable?
25
+ @content = wrap(source)
26
+ else
27
+ @content = source
28
+ end
29
+ end
30
+
31
+ def wrap(source)
32
+ Wrapper.wrap(logical_path.chomp(File.extname logical_path), source)
33
+ end
34
+
35
+ def javascript?
36
+ Tilt[path] and Tilt[path].default_mime_type == "application/javascript"
13
37
  end
14
38
 
15
- def wrap
16
- Wrapper.wrap(logical_path.chomp(File.extname logical_path), @content)
39
+ def stylesheet?
40
+ Tilt[path] and Tilt[path].default_mime_type == "text/css"
17
41
  end
18
42
 
19
43
  def wrappable?
20
- !!(@path.include? Linner.environment.app_folder and Template.template_for_script?(@path))
44
+ !!(self.javascript? and !Linner.env.modules_ignored.include?(@path))
21
45
  end
22
46
 
23
47
  def write
@@ -32,7 +56,7 @@ module Linner
32
56
  end
33
57
 
34
58
  def logical_path
35
- @logical_path ||= @path.gsub(/#{Linner.environment.app_folder}\/\w*\//, "")
59
+ @logical_path ||= @path.gsub(/#{Linner.env.paths.join("\/|")}/, "")
36
60
  end
37
61
  end
38
62
  end
@@ -17,8 +17,9 @@ module Linner
17
17
 
18
18
  desc "build", "build assets"
19
19
  def build
20
+ Linner.compile = true
20
21
  Notifier.info do
21
- Linner.perform compile: true
22
+ Linner.perform
22
23
  end
23
24
  end
24
25
 
@@ -45,7 +46,7 @@ module Linner
45
46
 
46
47
  desc "clean", "clean assets"
47
48
  def clean
48
- FileUtils.rm_rf Dir.glob("#{Linner.environment.public_folder}/*")
49
+ FileUtils.rm_rf Dir.glob("#{env.public_folder}/*")
49
50
  end
50
51
 
51
52
  desc "new", "create the skeleton of project"
@@ -54,9 +55,9 @@ module Linner
54
55
  chmod("#{name}/bin/server", 0755)
55
56
  end
56
57
 
57
- private
58
+ private
58
59
  def env
59
- Linner.environment
60
+ Linner.env
60
61
  end
61
62
  end
62
63
  end
@@ -5,9 +5,9 @@ module Linner
5
5
  class Compressor
6
6
 
7
7
  def self.compress(asset)
8
- if Template.template_for_script? asset.path
8
+ if asset.javascript?
9
9
  Uglifier.compile asset.content, comments: "none"
10
- elsif Template.template_for_style? asset.path
10
+ elsif asset.stylesheet?
11
11
  CSSminify.new.compress asset.content
12
12
  end
13
13
  end
@@ -9,6 +9,10 @@ module Linner
9
9
  @env = @convension.rmerge!(@env)
10
10
  end
11
11
 
12
+ def paths
13
+ groups.map { |group| group["paths"] }.flatten.uniq
14
+ end
15
+
12
16
  %w(app test vendor public).each do |method|
13
17
  define_method("#{method}_folder") do
14
18
  @env["paths"][method]
@@ -19,12 +23,20 @@ module Linner
19
23
  @env["notification"]
20
24
  end
21
25
 
26
+ def modules_ignored
27
+ Dir.glob(@env["modules"]["ignored"])
28
+ end
29
+
22
30
  def wrapper
23
31
  @env["modules"]["wrapper"]
24
32
  end
25
33
 
26
- def files
27
- @env["files"].values
34
+ def definition
35
+ File.join public_folder, @env["modules"]["definition"]
36
+ end
37
+
38
+ def groups
39
+ @env["groups"].values
28
40
  end
29
41
  end
30
42
  end
data/lib/linner/helper.rb CHANGED
@@ -8,13 +8,17 @@ module Linner
8
8
  end
9
9
 
10
10
  module Order
11
- def order_by(before:[], after:[])
12
- order_by_before(self, before)
13
- order_by_after(self, after)
11
+ def order_by(ary)
12
+ ary << "..." if not ary.include? "..."
13
+ order_ary = ary.inject([[]]) do |a, x|
14
+ x != "..." ? a.last << x : a<< []; a
15
+ end
16
+ order_by_before(self, order_ary.first)
17
+ order_by_after(self, order_ary.last)
14
18
  self
15
19
  end
16
20
 
17
- private
21
+ private
18
22
  def order_by_before(list, before)
19
23
  before.reverse.each do |f|
20
24
  if i = list.index {|x| x =~ /#{f}/i}
@@ -11,7 +11,7 @@ module Linner
11
11
 
12
12
  def error(message)
13
13
  puts message = "👻 : #{message}!"
14
- if Linner.environment.notification && TerminalNotifier.available?
14
+ if Linner.env.notification && TerminalNotifier.available?
15
15
  TerminalNotifier.notify message, :title => 'Linner'
16
16
  end
17
17
  end
@@ -1,5 +1,6 @@
1
1
  require "tilt"
2
2
  require "sass"
3
+ require "compass"
3
4
  require "coffee_script"
4
5
 
5
6
  module Tilt
@@ -11,21 +12,30 @@ module Tilt
11
12
  self.default_mime_type = 'text/css'
12
13
  end
13
14
 
14
- Tilt.register Tilt::CSSTemplate, "css"
15
- Tilt.register Tilt::JavascriptTemplate, "js"
16
- end
15
+ class CompassSassTemplate < SassTemplate
16
+ self.default_mime_type = 'text/css'
17
17
 
18
- module Linner
19
- class Template
18
+ private
19
+ def sass_options
20
+ super.merge(Linner.sass_engine_options)
21
+ end
22
+ end
20
23
 
21
- class << self
22
- def template_for_script?(path)
23
- Tilt[path].default_mime_type == "application/javascript"
24
- end
24
+ class CompassScssTemplate < CompassSassTemplate
25
+ self.default_mime_type = 'text/css'
25
26
 
26
- def template_for_style?(path)
27
- Tilt[path].default_mime_type == "text/css"
28
- end
27
+ private
28
+ def sass_options
29
+ super.merge(:syntax => :scss)
29
30
  end
30
31
  end
32
+
33
+ register CSSTemplate, "css"
34
+ register JavascriptTemplate, "js"
35
+
36
+ register CompassSassTemplate, "sass"
37
+ prefer CompassSassTemplate
38
+
39
+ register CompassScssTemplate, "scss"
40
+ prefer CompassScssTemplate
31
41
  end
@@ -1,15 +1,13 @@
1
1
  paths:
2
2
  public: "public"
3
- files:
3
+ groups:
4
4
  scripts:
5
5
  concat:
6
6
  "scripts/app.js": "app/**/*.{js,coffee}"
7
7
  "scripts/vendor.js": "vendor/**/*.{js,coffee}"
8
8
  order:
9
- before:
10
- - "vendor/jquery-1.10.2.js"
11
- after:
12
- - "vendor/commonjs.js"
9
+ - "vendor/jquery-1.10.2.js"
10
+ - "..."
13
11
  styles:
14
12
  concat:
15
13
  "styles/app.css": "app/styles/**/[a-z]*.{css,scss,sass}"
@@ -20,5 +18,5 @@ files:
20
18
  copy:
21
19
  "/": "app/views/**/*.{html,hbs}"
22
20
  modules:
23
- wrapper: "CMD"
21
+ wrapper: "cmd"
24
22
  notification: true
@@ -1,3 +1,3 @@
1
1
  module Linner
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.0"
3
3
  end
@@ -9,5 +9,9 @@ module Linner
9
9
  def self.wrap(name, content)
10
10
  WRAPPER % [name, content]
11
11
  end
12
+
13
+ def self.definition
14
+ File.read(File.join File.dirname(__FILE__), "../../vendor", "require_definition.js")
15
+ end
12
16
  end
13
17
  end
data/lib/linner.rb CHANGED
@@ -11,6 +11,8 @@ require "linner/environment"
11
11
  module Linner
12
12
  extend self
13
13
 
14
+ attr_accessor :compile
15
+
14
16
  def root
15
17
  @root ||= Pathname('.').expand_path
16
18
  end
@@ -19,52 +21,68 @@ module Linner
19
21
  @cache ||= {}
20
22
  end
21
23
 
22
- def environment
24
+ def env
23
25
  @env ||= Environment.new root.join("config.yml")
24
26
  end
25
27
 
26
- def perform(compile: false)
27
- environment.files.each do |config|
28
- concat(config, compile)
29
- copy(config)
28
+ def compile?
29
+ @compile
30
+ end
31
+
32
+ def sass_engine_options
33
+ @options ||= Compass.configuration.to_sass_engine_options
34
+ env.paths.each do |load_path|
35
+ @options[:load_paths] << Sass::Importers::Filesystem.new(load_path)
30
36
  end
37
+ @options
31
38
  end
32
39
 
33
- private
34
- def concat(config, compile)
35
- config["concat"].map do |dest, regex|
36
- matches = Dir.glob(regex).uniq.order_by(before:config["order"]["before"], after:config["order"]["after"])
37
- dest = Asset.new(File.join environment.public_folder, dest)
38
- dest.content = ""
39
- cached = matches.select do |path|
40
- mtime = File.mtime(path).to_i
41
- mtime == cache[path] ? false : cache[path] = mtime
42
- end
43
- next if cached.empty?
44
- matches.each do |m|
45
- asset = Asset.new(m)
46
- content = asset.content
47
- if asset.wrappable?
48
- content = asset.wrap
49
- end
50
- dest.content << content
51
- end
52
- dest.compress if compile
40
+ def perform(*asset)
41
+ env.groups.each do |config|
42
+ concat(config) if config["concat"]
43
+ copy(config) if config["copy"]
44
+ end
45
+ end
46
+
47
+ private
48
+ def concat(config)
49
+ config["concat"].each_with_index do |pair, index|
50
+ dest, pattern, order = pair.first, pair.last, config["order"]||[]
51
+ matches = Dir.glob(pattern).order_by(order)
52
+ next if matches.select {|p| cache_miss? p}.empty?
53
+ dest = Asset.new(File.join env.public_folder, dest)
54
+ definition = Wrapper.definition if dest.path == env.definition
55
+ dest.content = matches.inject(definition || "") {|s, m| s << cache[m].content}
56
+ dest.compress if compile?
53
57
  dest.write
54
58
  end
55
59
  end
56
60
 
57
61
  def copy(config)
58
- config["copy"].each do |dest, regex|
59
- Dir.glob(regex).each do |path|
60
- mtime = File.mtime(path).to_i
61
- next if cache[path] == mtime
62
- cache[path] = mtime
62
+ config["copy"].each do |dest, pattern|
63
+ Dir.glob(pattern).each do |path|
64
+ next if not cache_miss?(path)
63
65
  logical_path = Asset.new(path).logical_path
64
- dest_path = File.join(environment.public_folder, dest, logical_path)
66
+ dest_path = File.join(env.public_folder, dest, logical_path)
65
67
  FileUtils.mkdir_p File.dirname(dest_path)
66
68
  FileUtils.cp_r path, dest_path
67
69
  end
68
70
  end
69
71
  end
72
+
73
+ def cache_miss?(path)
74
+ asset = Asset.new(path)
75
+ if asset.stylesheet? and Tilt[path] != Tilt::CSSTemplate
76
+ partials = Sass::Engine.for_file(path, sass_engine_options).dependencies.map{|m| m.options[:filename]}
77
+ cache_missed = partials.select do |partial|
78
+ partial_asset = Asset.new(partial)
79
+ (cache[partial] and cache[partial].mtime == partial_asset.mtime) ? false : cache[partial] = partial_asset
80
+ end
81
+ unless cache_missed.empty?
82
+ cache[path] = asset
83
+ return true
84
+ end
85
+ end
86
+ (cache[path] and cache[path].mtime == asset.mtime) ? false : cache[path] = asset
87
+ end
70
88
  end
data/linner.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency "sass", "~> 3.2"
24
24
  spec.add_dependency "listen", "~> 1.2"
25
25
  spec.add_dependency "uglifier", "~> 2.1"
26
+ spec.add_dependency "compass", "~> 0.12.2"
26
27
  spec.add_dependency "multi_json", "~> 1.7"
27
28
  spec.add_dependency "cssminify", "~> 1.0.2"
28
29
  spec.add_dependency "coffee-script", "~> 2.2"
@@ -3,19 +3,22 @@ require "spec_helper"
3
3
  describe Asset do
4
4
 
5
5
  before(:each) do
6
- @asset = Asset.new("app/scripts/app.js")
6
+ @script_asset = Asset.new("app/scripts/app.js")
7
+ @style_asset = Asset.new("app/styles/app.css")
7
8
  end
8
9
 
9
- describe :logical_path do
10
- it "should be return right logical_path" do
11
- @asset.logical_path.should == "app.js"
12
- end
10
+ it "should be return right logical_path" do
11
+ @script_asset.logical_path.should == "app.js"
12
+ @style_asset.logical_path.should == "app.css"
13
13
  end
14
14
 
15
- describe :wrappable do
16
- it "should wrapperable" do
17
- @asset.wrappable?.should be_true
18
- Asset.new("app/styles/app.css").wrappable?.should be_false
19
- end
15
+ it "should be javascript" do
16
+ @script_asset.javascript?.should be_true
17
+ @style_asset.stylesheet?.should be_true
18
+ end
19
+
20
+ it "should wrapperable" do
21
+ @script_asset.wrappable?.should be_true
22
+ @style_asset.wrappable?.should be_false
20
23
  end
21
24
  end
@@ -3,29 +3,20 @@ require "spec_helper"
3
3
  describe Environment do
4
4
  before(:each) do
5
5
  @env = Environment.new(root.join "config.yml")
6
+ @ary = ["app/scripts", "app/styles", "app/images", "app/views"]
6
7
  end
7
8
 
8
- describe "convension" do
9
- it "should equals default path folder" do
10
- @env.app_folder.should == "app"
11
- @env.test_folder.should == "test"
12
- @env.vendor_folder.should == "vendor"
13
- @env.public_folder.should == "public"
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
9
+ it "should equals default path folder" do
10
+ @env.paths.should =~ @ary
11
+ @env.app_folder.should == "app"
12
+ @env.test_folder.should == "test"
13
+ @env.vendor_folder.should == "vendor"
14
+ @env.public_folder.should == "public"
15
+ end
21
16
 
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
17
+ it "should equals default config" do
18
+ @env.notification.should be_true
19
+ @env.wrapper.should == "cmd"
20
+ @env.groups.should respond_to(:each)
30
21
  end
31
22
  end
@@ -5,24 +5,22 @@ describe Array do
5
5
  @array = %w[app.js jquery.js bootstrap.css reset.css vendor.js]
6
6
  end
7
7
 
8
- describe :sort do
9
- it "won't change when before and after are empty array" do
10
- @array.order_by(before:[], after:[]).should be_equal @array
11
- end
8
+ it "won't change when before and after are empty array" do
9
+ @array.order_by([]).should =~ @array
10
+ end
12
11
 
13
- it "will change by before items" do
14
- @array.order_by(before:["jquery.js", "vendor.js"], after:[])
15
- @array.should =~ %w[jquery.js vendor.js app.js bootstrap.css reset.css]
16
- end
12
+ it "will change by before items" do
13
+ @array.order_by(["jquery.js", "vendor.js"])
14
+ @array.should =~ %w[jquery.js vendor.js app.js bootstrap.css reset.css]
15
+ end
17
16
 
18
- it "will change by after items" do
19
- @array.order_by(before:[], after:["reset.css", "bootstrap.css"])
20
- @array.should =~ %w[app.js jquery.js vendor.js reset.css bootstrap.css]
21
- end
17
+ it "will change by after items" do
18
+ @array.order_by(["...", "reset.css", "bootstrap.css"])
19
+ @array.should =~ %w[app.js jquery.js vendor.js reset.css bootstrap.css]
20
+ end
22
21
 
23
- it "will change by before and after items" do
24
- @array.order_by(before:["jquery.js", "vendor.js"], after:["reset.css", "bootstrap.css"])
25
- @array.should =~ %w[jquery.js vendor.js app.js reset.css bootstrap.css]
26
- end
22
+ it "will change by before and after items" do
23
+ @array.order_by(["jquery.js", "vendor.js", "...", "reset.css", "bootstrap.css"])
24
+ @array.should =~ %w[jquery.js vendor.js app.js reset.css bootstrap.css]
27
25
  end
28
26
  end
@@ -1,26 +1,12 @@
1
1
  require "spec_helper"
2
2
 
3
- describe Template do
3
+ describe "Template" do
4
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
5
+ it "should be javascript tempalate" do
6
+ Tilt["app.js"].should == Tilt::JavascriptTemplate
7
+ end
19
8
 
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
9
+ it "should be css template" do
10
+ Tilt["app.css"].should == Tilt::CSSTemplate
25
11
  end
26
12
  end
@@ -13,10 +13,12 @@ describe Wrapper do
13
13
  ";}});\n"
14
14
  end
15
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
16
+ it "should wrapped by wrapper" do
17
+ script = Wrapper.wrap(@name, @script)
18
+ script.should eq @expected_script
19
+ end
20
+
21
+ it "should has definition" do
22
+ Wrapper.definition.should_not be_nil
21
23
  end
22
24
  end
@@ -3,32 +3,27 @@ paths:
3
3
  test: "test"
4
4
  vendor: "vendor"
5
5
  public: "public"
6
- files:
6
+
7
+ groups:
7
8
  scripts:
8
- concat: {}
9
- copy: {}
9
+ paths:
10
+ - "app/scripts"
10
11
  order:
11
- before:
12
- - "vendor/jquery-1.10.2.js"
13
- after: []
12
+ - "vendor/jquery-1.10.2.js"
13
+ - "..."
14
14
  styles:
15
- concat: {}
16
- copy: {}
17
- order:
18
- before: []
19
- after: []
15
+ paths:
16
+ - "app/styles"
20
17
  images:
21
- concat: {}
22
- copy: {}
23
- order:
24
- before: []
25
- after: []
18
+ paths:
19
+ - "app/images"
26
20
  views:
27
- concat: {}
28
- copy: {}
29
- order:
30
- before: []
31
- after: []
21
+ paths:
22
+ - "app/views"
23
+
32
24
  modules:
33
- wrapper: "CMD"
25
+ wrapper: "cmd"
26
+ ignored: "vendor/**/*"
27
+ definition: "scripts/app.js"
28
+
34
29
  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.2.0
4
+ version: 0.3.0
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-31 00:00:00.000000000 Z
11
+ date: 2013-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ~>
81
81
  - !ruby/object:Gem::Version
82
82
  version: '2.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: compass
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 0.12.2
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 0.12.2
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: multi_json
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -188,6 +202,7 @@ extra_rdoc_files: []
188
202
  files:
189
203
  - .gitignore
190
204
  - .rspec
205
+ - CHANGELOG
191
206
  - Gemfile
192
207
  - Gemfile.lock
193
208
  - LICENSE
@@ -209,7 +224,6 @@ files:
209
224
  - lib/linner/templates/bin/server
210
225
  - lib/linner/templates/config.yml
211
226
  - lib/linner/templates/test/.gitkeep
212
- - lib/linner/templates/vendor/commonjs.js
213
227
  - lib/linner/templates/vendor/jquery-1.10.2.js
214
228
  - lib/linner/version.rb
215
229
  - lib/linner/wrapper.rb
@@ -224,6 +238,7 @@ files:
224
238
  - spec/spec_helper.rb
225
239
  - vendor/config.default.yml
226
240
  - vendor/livereload.js
241
+ - vendor/require_definition.js
227
242
  homepage: https://github.com/saitowu/linner
228
243
  licenses:
229
244
  - MIT