jspreprocessor 0.0.2 → 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: c3aabf8fb6beae130e85c9e0f529f615a470ab5b
4
- data.tar.gz: bbebd9409414d67ebba59e0f5706f49efef7898a
3
+ metadata.gz: d1268df9f8dcc9e147298260e76bb765b7454ac3
4
+ data.tar.gz: 1e47e6d33206c3485d23d834c1854403f95d0474
5
5
  SHA512:
6
- metadata.gz: 2465000b728254bd82b0c2518caf981a21d2709341fedbbfe772397faf914b172721d34fb9f6f7591487af02c4798d1eb9d7e50331cbdf4f6b84a3b634bcc45a
7
- data.tar.gz: 68c62a225f2066cf36992a2b03fd73c6024d3e6fcc7aede687af3067231051e3fedd7b57396faaba0260b9a68d001ceb4d91ae374640664a4a9bac5d417f7df9
6
+ metadata.gz: 29eacebabfb80ceaf6c098b8b9d37ad49988b01578ddb48ef38b3812c7c2c76eabf2bad5c278e1be1b29d772b071051b604eca0e079f6ed6fc14c1418aac120a
7
+ data.tar.gz: 991fb5e29c093d0b13320210c8713f389b49791ecb3250aedc83ca72f98e130856ddaabe15e73611cfcd7c0022d579df8d1888f537f84566e7e19dceaa35bef9
data/.bowerrc ADDED
@@ -0,0 +1,3 @@
1
+ {
2
+ "directory": "public/vendor"
3
+ }
data/.gitignore CHANGED
@@ -21,4 +21,6 @@ tmp
21
21
  *.a
22
22
  mkmf.log
23
23
  .DS_Store
24
- vendor/
24
+ vendor/
25
+ notes.txt
26
+ npm-debug.log
@@ -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.2'
7
+ spec.version = '0.0.3'
8
8
  spec.authors = ["Caleb Albritton"]
9
9
  spec.email = ["ithinkincode@gmail.com"]
10
10
  spec.summary = %q{Like Browserify but the C way.}
@@ -20,4 +20,5 @@ Gem::Specification.new do |spec|
20
20
  spec.add_development_dependency 'bundler', '~> 1.6'
21
21
  spec.add_development_dependency 'rake'
22
22
  spec.add_development_dependency 'rspec', '~> 2.14'
23
+ spec.add_development_dependency 'pry'
23
24
  end
data/README.md CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  Like Browserify but the C way.
4
4
  Include JavaScript files directly into your source code using #include 'somefile'
5
+ Include files installed via bower with inclusion guards: #include <undsercore>
5
6
  Use #define FOO bar to replace every instance of FOO with bar.
6
7
 
7
8
  ## Installation
@@ -29,6 +30,7 @@ Or install it yourself as:
29
30
 
30
31
  ## JavaScript Usage
31
32
 
33
+ #include <underscore> // This will only work if you've installed underscore via bower
32
34
  #include 'lib/stuff'
33
35
 
34
36
  #define FOO bar
data/bin/jspre ADDED
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'jspreprocessor'
4
+
5
+ @pre = JSPreprocessor.new
6
+ processed_file = @pre.process Dir.pwd, ARGV[1]
7
+
8
+ File.open ARGV[2], 'w' do |file|
9
+ file.write processed_file
10
+ end
data/bower.json ADDED
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "test",
3
+ "version": "0.0.0",
4
+ "authors": [
5
+ "Caleb Albritton <ithinkincode@gmail.com>"
6
+ ],
7
+ "private": true,
8
+ "ignore": [
9
+ "**/.*",
10
+ "node_modules",
11
+ "bower_components",
12
+ "test",
13
+ "tests"
14
+ ],
15
+ "dependencies": {
16
+ "bootstrap": "~3.1.1",
17
+ "bootstrap-social": "*",
18
+ "html2canvas": "0.4.1",
19
+ "underscore": "*"
20
+ }
21
+ }
data/example_js/main.js CHANGED
@@ -1,3 +1,5 @@
1
+ #include <jquery>
2
+ #include <underscore>
1
3
  #include 'lib/stuff'
2
4
 
3
5
  var s = new Stuff();
@@ -1,3 +1,5 @@
1
+ require 'json'
2
+
1
3
  class JSPreprocessor
2
4
 
3
5
  def initialize
@@ -13,9 +15,28 @@ class JSPreprocessor
13
15
  def recurse_files(cwd, file)
14
16
  file.each_with_index do |line, index|
15
17
  if line.include? '#include'
16
- to_include = cwd + line[10..-2] + '.js'
17
- next_wd = Pathname.new(to_include).dirname.to_s + '/'
18
- file[index] = recurse_files next_wd, File.open(to_include).read.split("\n")
18
+ if line.include? '<' #inclusion guards, use bower
19
+ if File.file? '.bowerrc' # check if they keep the bower files somewhere else
20
+ bowerrc = JSON.parse File.open('.bowerrc').read
21
+ if !bowerrc['directory'].nil? # if a custom directory has been set
22
+ @bower_dir = bowerrc['directory']
23
+ else
24
+ @bower_dir = 'bower_components'
25
+ end
26
+ else
27
+ @bower_dir = 'bower_components'
28
+ end
29
+
30
+ package = line.match(/<(.*)>/)[1]
31
+ package_json = "#{@bower_dir}/#{package}/bower.json"
32
+ package_path = JSON.parse(File.open(package_json).read)['main']
33
+ library = File.open("#{@bower_dir}/#{package}/#{package_path}").read
34
+ file[index] = library
35
+ else
36
+ to_include = cwd + line[10..-2] + '.js'
37
+ next_wd = Pathname.new(to_include).dirname.to_s + '/'
38
+ file[index] = recurse_files next_wd, File.open(to_include).read.split("\n")
39
+ end
19
40
  elsif line.include? '#define'
20
41
  @defines << line[8..-1].split(' ')
21
42
  file.delete_at index
data/spec/spec_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require 'jspreprocessor'
2
+ require 'pry'
2
3
 
3
4
  RSpec.configure do |config|
4
5
  config.treat_symbols_as_metadata_keys_with_true_values = true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jspreprocessor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
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-11 00:00:00.000000000 Z
11
+ date: 2014-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -52,20 +52,38 @@ dependencies:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '2.14'
55
+ - !ruby/object:Gem::Dependency
56
+ name: pry
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '>='
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  description: 'Include JavaScript files directly into your source code using #include
56
70
  ''somefile'''
57
71
  email:
58
72
  - ithinkincode@gmail.com
59
- executables: []
73
+ executables:
74
+ - jspre
60
75
  extensions: []
61
76
  extra_rdoc_files: []
62
77
  files:
78
+ - .bowerrc
63
79
  - .gitignore
64
80
  - Gemfile
65
81
  - JSPreprocessor.gemspec
66
82
  - LICENSE.txt
67
83
  - README.md
68
84
  - Rakefile
85
+ - bin/jspre
86
+ - bower.json
69
87
  - example_js/lib/morestuff.js
70
88
  - example_js/lib/other.js
71
89
  - example_js/lib/stuff.js