jspreprocessor 0.0.2 → 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: 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