swig 0.0.1 → 0.0.3

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: 5c1d3f94a3dab8e4f1abec68f314d07baae8fc1c
4
- data.tar.gz: 571cfabdaea4e56e084f0b706dcb39f4a1e4730b
3
+ metadata.gz: 46cdff0600421bfe231a07b23589e083f5058748
4
+ data.tar.gz: 99ec746ebce44ea2c619644855a80dc741782fa5
5
5
  SHA512:
6
- metadata.gz: 6cc66f2a52994fdab262e23f923a8f97f7fa00e4d73b92fd25ba3c649537d63ad22de658554525bea544459006e3673e7f27ada49815a64d31a36fcc321ec65c
7
- data.tar.gz: a8730c523463038c2ccf9236007edd1acbf2c6a1c0a62e7512a0c1d82f40f6d2956dd79cf4190d666476ed4992c8211201cb441c1bff86da280138963c5f4cd8
6
+ metadata.gz: 183389acd9bdc64e811aad376ff75e03e2981816f1f082fd94ebeea3a693c2bba7cd11bb594cecf87b6c0bf23264fd8b8dbc67e2d9fd3e0ec5ddf99ff0164a77
7
+ data.tar.gz: e32d8ed0d500385f030362d06e8f2b9f747b950954654e1fb03d92dd0606ab2747ff51308c51543f2a654cf135a8f45aede7636fa54dc0a0e49e4e617f41337d
@@ -0,0 +1,13 @@
1
+ Changelog
2
+ =========
3
+
4
+ # 0.0.3
5
+ - Minify worker
6
+ - CoffeeScript worker
7
+
8
+ # 0.0.2
9
+ - Bug fixes
10
+
11
+ # 0.0.1
12
+ - Initial working version
13
+
data/Gemfile.lock CHANGED
@@ -1,15 +1,23 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- swig (0.0.1)
4
+ swig (0.0.3)
5
+ coffee-script
5
6
  colorize
6
7
  trollop
8
+ uglifier
7
9
 
8
10
  GEM
9
11
  remote: https://rubygems.org/
10
12
  specs:
13
+ coffee-script (2.2.0)
14
+ coffee-script-source
15
+ execjs
16
+ coffee-script-source (1.6.3)
11
17
  colorize (0.6.0)
12
18
  diff-lcs (1.2.5)
19
+ execjs (2.0.2)
20
+ json (1.8.1)
13
21
  rake (10.1.1)
14
22
  rspec (2.14.1)
15
23
  rspec-core (~> 2.14.0)
@@ -20,6 +28,9 @@ GEM
20
28
  diff-lcs (>= 1.1.3, < 2.0)
21
29
  rspec-mocks (2.14.5)
22
30
  trollop (2.0)
31
+ uglifier (2.4.0)
32
+ execjs (>= 0.3.0)
33
+ json (>= 1.8.0)
23
34
 
24
35
  PLATFORMS
25
36
  ruby
data/bin/swig CHANGED
@@ -13,7 +13,9 @@ Usage:
13
13
  where [options] are:
14
14
 
15
15
  EOS
16
+ version "Swig #{Swig::VERSION}"
16
17
  opt :tasks, "Show tasks", default: false
18
+ opt :foo, "Show version", default: false
17
19
  end
18
20
 
19
21
  # Go to config file
@@ -35,7 +37,6 @@ if opts[:tasks]
35
37
  end
36
38
 
37
39
  # Run task
38
- puts Swig.divider
39
40
  if ARGV.empty?
40
41
  Swig.tasks.keys.each do |task|
41
42
  Swig.invoke(task)
data/lib/swig/all.rb CHANGED
@@ -1,4 +1,9 @@
1
- Dir.glob("lib/swig/**/*.rb").each do |path|
2
- file = path.match(/lib\/(?<file>.*?)\.rb/)[:file]
3
- require file
4
- end
1
+ require 'swig/swig'
2
+ require 'swig/version'
3
+ require 'swig/file_in_stream'
4
+ require 'swig/stream'
5
+
6
+ require 'swig/worker'
7
+ require 'swig/workers/concat'
8
+ require 'swig/workers/minify'
9
+ require 'swig/workers/coffee'
data/lib/swig/swig.rb CHANGED
@@ -39,17 +39,12 @@ class Swig
39
39
  @@tasks
40
40
  end
41
41
 
42
- def self.divider
43
- "=======================================".green
44
- end
45
-
46
42
  private
47
43
 
48
44
  def self.show_message(name, time)
49
45
  print "swig: ".blue
50
46
  print "#{name}, "
51
- puts "#{time} milliseconds"
52
- print divider
47
+ print "#{time} milliseconds"
53
48
  print "\n"
54
49
  end
55
50
 
@@ -0,0 +1,3 @@
1
+ class Swig
2
+ VERSION = '0.0.3'
3
+ end
@@ -0,0 +1,14 @@
1
+ require 'swig/file_in_stream'
2
+ require 'swig/worker'
3
+ require 'coffee-script'
4
+
5
+ class Coffee < Swig::Worker
6
+ def eval(files)
7
+ files.inject([]) do |acc, file|
8
+ basename = file.basename.gsub(".js", ".coffee")
9
+ content = CoffeeScript.compile(file.read, @options)
10
+
11
+ acc << Swig::FileInStream.new(basename, content)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ require 'swig/file_in_stream'
2
+ require 'swig/worker'
3
+ require 'uglifier'
4
+
5
+ class Minify < Swig::Worker
6
+ def eval(files)
7
+ files.inject([]) do |acc, file|
8
+ basename = file.basename
9
+ minified_content = Uglifier.compile(file.read)
10
+
11
+ acc << Swig::FileInStream.new(basename, minified_content)
12
+ end
13
+ end
14
+ end
@@ -58,9 +58,17 @@ describe Swig do
58
58
  end
59
59
 
60
60
  it "raises and error if it hits the edge of the file system" do
61
- expect do
62
- Swig.cd_to_config_file
63
- end.to raise_error Swig::NoSwigFile
61
+ without_changing_dir do
62
+ expect do
63
+ Swig.cd_to_config_file
64
+ end.to raise_error Swig::NoSwigFile
65
+ end
64
66
  end
65
67
  end
66
68
  end
69
+
70
+ def without_changing_dir
71
+ start_dir = Dir.pwd
72
+ yield
73
+ Dir.chdir(start_dir)
74
+ end
data/swig.gemspec CHANGED
@@ -1,6 +1,8 @@
1
+ require_relative './lib/swig/version'
2
+
1
3
  Gem::Specification.new do |s|
2
4
  s.name = 'swig'
3
- s.version = '0.0.1'
5
+ s.version = Swig::VERSION
4
6
  s.date = '2014-02-08'
5
7
  s.summary = "Task runner"
6
8
  s.description = "Task runner"
@@ -14,6 +16,8 @@ Gem::Specification.new do |s|
14
16
 
15
17
  s.add_runtime_dependency 'trollop'
16
18
  s.add_runtime_dependency 'colorize'
19
+ s.add_runtime_dependency 'uglifier'
20
+ s.add_runtime_dependency 'coffee-script'
17
21
 
18
22
  s.files = `git ls-files`.split("\n")
19
23
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swig
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Pedersen
@@ -66,6 +66,34 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: uglifier
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: coffee-script
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
69
97
  description: Task runner
70
98
  email: david.pdrsn@gmail.com
71
99
  executables:
@@ -75,6 +103,7 @@ extra_rdoc_files: []
75
103
  files:
76
104
  - ".gitignore"
77
105
  - ".rspec"
106
+ - CHANGELOG.markdown
78
107
  - Gemfile
79
108
  - Gemfile.lock
80
109
  - README.md
@@ -85,8 +114,11 @@ files:
85
114
  - lib/swig/file_in_stream.rb
86
115
  - lib/swig/stream.rb
87
116
  - lib/swig/swig.rb
117
+ - lib/swig/version.rb
88
118
  - lib/swig/worker.rb
119
+ - lib/swig/workers/coffee.rb
89
120
  - lib/swig/workers/concat.rb
121
+ - lib/swig/workers/minify.rb
90
122
  - spec/fixtures/init.js
91
123
  - spec/fixtures/script.js
92
124
  - spec/fixtures/style.css
@@ -95,7 +127,6 @@ files:
95
127
  - spec/lib/workers/concat_spec.rb
96
128
  - spec/spec_helper.rb
97
129
  - swig.gemspec
98
- - swig_file.rb
99
130
  homepage: http://github.com/davidpdrsn/swig
100
131
  licenses:
101
132
  - MIT
data/swig_file.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'swig/all'
2
-
3
- Swig.new_task(:concat) do
4
- read("spec/fixtures/*.js").
5
- then(Concat, name: "app.js").
6
- write("tmp")
7
- end