jspreprocessor 0.0.4 → 0.0.5

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: 88a10a5ede6967c4965584e400e88d1117db6d68
4
- data.tar.gz: 51e2393b72e84a703aa3d2041dff3b3df41466f7
3
+ metadata.gz: f91d629073dd5f0532792720d24e40d5b4210038
4
+ data.tar.gz: 7ebba3da9267e4e4e7e3031f6f3aadebfd39f64d
5
5
  SHA512:
6
- metadata.gz: ace520f9e2f9591e35b11432cf35e87b5ea90643644f05d96da0048f6b53be5b5cde7a2c37dab3573ab97827953211d8de95e66eea94f7ab29de185e24c8bde6
7
- data.tar.gz: dee86fae1f1c7f71d4491464bc6e33509455d477823751c09df51cd9171b74a308adf565594f45948cc6c949674374635fdeb227823cc271b46bea44c2099ba6
6
+ metadata.gz: 880e574729072bdd60e542087a840226fac8069e1d188efbc36573fb6281991e3854ac601b1cdac28583a570afb86869939d26ebeeec5b7cb983ee55bee94d7a
7
+ data.tar.gz: ea2479cc82fe13f4148354564e3292a3097ea27665aa3c8e15768cc522e44e75d783c8c532ee3779e4a015de9bf1ed295badb249b51384b7f7acb87c760cb776
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "jspreprocessor"
7
- spec.version = '0.0.4'
7
+ spec.version = '0.0.5'
8
8
  spec.authors = ["Caleb Albritton"]
9
9
  spec.email = ["ithinkincode@gmail.com"]
10
10
  spec.summary = %q{Like Browserify but the C way.}
data/bin/jspre CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'jspreprocessor'
4
4
 
5
- @pre = JSPreprocessor.new
5
+ @pre = JSPreprocessor.new 'development'
6
6
  processed_file = @pre.process Dir.pwd, ARGV[1]
7
7
 
8
8
  File.open ARGV[2], 'w' do |file|
data/example_js/main.js CHANGED
@@ -1,6 +1,4 @@
1
- #include <jquery>
2
- #include <bootstrap>
3
- #include <underscore>
1
+
4
2
  #include 'lib/stuff'
5
3
 
6
4
  var s = new Stuff();
@@ -2,7 +2,11 @@ require 'json'
2
2
 
3
3
  class JSPreprocessor
4
4
 
5
- def initialize
5
+ class MissingDependencyException < Exception
6
+ end
7
+
8
+ def initialize(env)
9
+ @env = env
6
10
  @defines = []
7
11
  end
8
12
 
@@ -28,8 +32,18 @@ class JSPreprocessor
28
32
  end
29
33
 
30
34
  package = line.match(/<(.*)>/)[1]
31
- package_json = "#{@bower_dir}/#{package}/bower.json"
32
- package_path = JSON.parse(File.open(package_json).read)['main']
35
+ bower_json = "#{@bower_dir}/#{package}/bower.json"
36
+ package_json = "#{@bower_dir}/#{package}/package.json"
37
+
38
+ if File.exists? bower_json
39
+ json = File.open(bower_json).read
40
+ elsif File.exists? package_json
41
+ json = File.open(package_json).read
42
+ else
43
+ raise MissingDependencyException, "bower.json, package.json is missing, or #{package} does not exist."
44
+ end
45
+
46
+ package_path = JSON.parse(json)['main']
33
47
 
34
48
  if package_path.class == Array
35
49
  package_path.each_with_index do |package, index|
@@ -40,12 +54,28 @@ class JSPreprocessor
40
54
  end
41
55
  end
42
56
 
43
- library = File.open("#{@bower_dir}/#{package}/#{package_path}").read
57
+ library = File.open "#{@bower_dir}/#{package}/#{package_path}"
58
+
59
+ if @env == 'development'
60
+ filestamp = "// #{File.basename(library)} at #{Time.now}\n"
61
+ library = library.read
62
+ library.prepend filestamp
63
+ else
64
+ library = library.read
65
+ end
66
+
44
67
  file[index] = library
45
- else
68
+ else # this is not an inclusion guard, so it's relative
46
69
  to_include = cwd + line[10..-2] + '.js'
47
70
  next_wd = Pathname.new(to_include).dirname.to_s + '/'
48
- file[index] = recurse_files next_wd, File.open(to_include).read.split("\n")
71
+ next_file = File.open(to_include).read.split("\n")
72
+
73
+ if @env == 'development'
74
+ filestamp = "// #{to_include} at #{Time.now}"
75
+ next_file.unshift filestamp
76
+ end
77
+
78
+ file[index] = recurse_files next_wd, next_file
49
79
  end
50
80
  elsif line.include? '#define'
51
81
  @defines << line[8..-1].split(' ')
@@ -2,7 +2,7 @@ require 'spec_helper'
2
2
 
3
3
  describe JSPreprocessor do
4
4
  before(:all) do
5
- @pre = JSPreprocessor.new
5
+ @pre = JSPreprocessor.new 'development'
6
6
  end
7
7
 
8
8
  it 'should process files' do #huehue
metadata CHANGED
@@ -1,69 +1,69 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jspreprocessor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Caleb Albritton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-12 00:00:00.000000000 Z
11
+ date: 2015-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.6'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.6'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '2.14'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.14'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: pry
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  description: 'Include JavaScript files directly into your source code using #include
@@ -75,8 +75,8 @@ executables:
75
75
  extensions: []
76
76
  extra_rdoc_files: []
77
77
  files:
78
- - .bowerrc
79
- - .gitignore
78
+ - ".bowerrc"
79
+ - ".gitignore"
80
80
  - Gemfile
81
81
  - JSPreprocessor.gemspec
82
82
  - LICENSE.txt
@@ -101,17 +101,17 @@ require_paths:
101
101
  - lib
102
102
  required_ruby_version: !ruby/object:Gem::Requirement
103
103
  requirements:
104
- - - '>='
104
+ - - ">="
105
105
  - !ruby/object:Gem::Version
106
106
  version: '0'
107
107
  required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - '>='
109
+ - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  requirements: []
113
113
  rubyforge_project:
114
- rubygems_version: 2.0.14
114
+ rubygems_version: 2.4.5
115
115
  signing_key:
116
116
  specification_version: 4
117
117
  summary: Like Browserify but the C way.