swig 0.0.1 → 0.0.3

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 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