js2coffee 1.0.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 +7 -0
- data/LICENSE +22 -0
- data/README.md +92 -0
- data/bin/coffee2js +3 -0
- data/bin/js2coffee +60 -0
- data/lib/js2coffee.rb +39 -0
- data/lib/js2coffee/coffee_compiler.rb +54 -0
- data/lib/js2coffee/compiler.rb +43 -0
- data/lib/js2coffee/compiler/coffee-script.js +12 -0
- data/lib/js2coffee/compiler/js2coffee.js +7 -0
- data/lib/js2coffee/js_compiler.rb +49 -0
- data/lib/js2coffee/path_helper.rb +49 -0
- data/lib/js2coffee/version.rb +12 -0
- data/lib/js2coffee/watcher.rb +51 -0
- metadata +116 -0
@@ -0,0 +1,51 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# -*- coding: utf-8 -*-
|
3
|
+
|
4
|
+
require 'rb-inotify'
|
5
|
+
require 'singleton'
|
6
|
+
|
7
|
+
module Js2coffee
|
8
|
+
class Watcher
|
9
|
+
include Singleton
|
10
|
+
|
11
|
+
def initialize
|
12
|
+
@notifier = INotify::Notifier.new
|
13
|
+
|
14
|
+
Signal.trap(2) {|_sig| Process.exit }
|
15
|
+
|
16
|
+
start_watch_files
|
17
|
+
|
18
|
+
@notifier.watch('.', :moved_from, :moved_to, :create, :delete, :onlydir, :recursive) do |event|
|
19
|
+
# skip temp file.
|
20
|
+
next if event.name =~ /^\.#|^#.*\#$/
|
21
|
+
|
22
|
+
start_watch_files
|
23
|
+
end
|
24
|
+
|
25
|
+
watched_files.each do |file|
|
26
|
+
Js2coffee.watch_file(file)
|
27
|
+
end
|
28
|
+
|
29
|
+
# start loop.
|
30
|
+
@notifier.run
|
31
|
+
puts 'Watcher is started.'
|
32
|
+
end
|
33
|
+
|
34
|
+
# watch all exist files modify event.
|
35
|
+
def start_watch_files
|
36
|
+
watched_files.each do |file|
|
37
|
+
@notifier.watch(file, :modify) do
|
38
|
+
Js2coffee.watch_file(file)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def watched_files
|
44
|
+
watched_files = Dir["./**/*.#{$script_extname}"]
|
45
|
+
exclude_pattern = ['node_modules|bower_components'] << ENV['JS2COFFEE_EXCLUDE_PATTERN']
|
46
|
+
|
47
|
+
watched_files.reject! {|e| e =~ /#{exclude_pattern.join('|')}/ }
|
48
|
+
watched_files
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
metadata
ADDED
@@ -0,0 +1,116 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: js2coffee
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Billy.Zheng(zw963)
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-09-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: execjs
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2.2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rb-inotify
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.9'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.9'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: coderay
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.1'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: ritual
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0.4'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0.4'
|
69
|
+
description: Convert yours JavaScript code to CoffeeScript, vice versa.
|
70
|
+
email:
|
71
|
+
- zw963@163.com
|
72
|
+
executables:
|
73
|
+
- coffee2js
|
74
|
+
- js2coffee
|
75
|
+
extensions: []
|
76
|
+
extra_rdoc_files: []
|
77
|
+
files:
|
78
|
+
- LICENSE
|
79
|
+
- README.md
|
80
|
+
- bin/coffee2js
|
81
|
+
- bin/js2coffee
|
82
|
+
- lib/js2coffee.rb
|
83
|
+
- lib/js2coffee/coffee_compiler.rb
|
84
|
+
- lib/js2coffee/compiler.rb
|
85
|
+
- lib/js2coffee/compiler/coffee-script.js
|
86
|
+
- lib/js2coffee/compiler/js2coffee.js
|
87
|
+
- lib/js2coffee/js_compiler.rb
|
88
|
+
- lib/js2coffee/path_helper.rb
|
89
|
+
- lib/js2coffee/version.rb
|
90
|
+
- lib/js2coffee/watcher.rb
|
91
|
+
homepage: http://github.com/zw963/js2coffee
|
92
|
+
licenses:
|
93
|
+
- MIT
|
94
|
+
metadata: {}
|
95
|
+
post_install_message:
|
96
|
+
rdoc_options: []
|
97
|
+
require_paths:
|
98
|
+
- lib
|
99
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.9.1
|
104
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ">="
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '0'
|
109
|
+
requirements: []
|
110
|
+
rubyforge_project:
|
111
|
+
rubygems_version: 2.4.8
|
112
|
+
signing_key:
|
113
|
+
specification_version: 4
|
114
|
+
summary: Convert yours JavaScript code to CoffeeScript, vice versa.
|
115
|
+
test_files: []
|
116
|
+
has_rdoc:
|