jsus 0.1.9 → 0.1.10.1

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,4 +1,7 @@
1
1
  = Jsus Changelog
2
+ == Version 0.1.10
3
+ * Package.json files are now supported too (with the same format as yaml packages)
4
+
2
5
  == Version 0.1.9
3
6
  * Benchmarking results are now more verbose.
4
7
  == Version 0.1.8
data/Manifest CHANGED
@@ -43,6 +43,11 @@ spec/data/ExternalInternalDependencies/Test/Source/Widget/Input/Input.Color.js
43
43
  spec/data/ExternalInternalDependencies/Test/Source/Widget/Input/Input.js
44
44
  spec/data/ExternalInternalDependencies/Test/Source/Widget/Widget.js
45
45
  spec/data/ExternalInternalDependencies/Test/package.yml
46
+ spec/data/JsonPackage/Source/Sheet.DOM.js
47
+ spec/data/JsonPackage/Source/Sheet.js
48
+ spec/data/JsonPackage/Source/SheetParser.CSS.js
49
+ spec/data/JsonPackage/Source/sg-regex-tools.js
50
+ spec/data/JsonPackage/package.json
46
51
  spec/data/OutsideDependencies/README
47
52
  spec/data/OutsideDependencies/app/javascripts/Core/Source/Class/Class.Extras.js
48
53
  spec/data/OutsideDependencies/app/javascripts/Core/Source/Class/Class.js
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
1
  require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
- Echoe.new('jsus', '0.1.9') do |g|
4
+ Echoe.new('jsus', '0.1.10.1') do |g|
5
5
  g.description = "Packager/compiler for js-files that resolves dependencies and can compile everything into one file, providing all the neccessary meta-info."
6
6
  g.url = "http://github.com/markiz/jsus"
7
7
  g.author = "Markiz, idea by Inviz (http://github.com/Inviz)"
data/bin/jsus CHANGED
@@ -76,7 +76,7 @@ if Choice.choices[:generate_includes]
76
76
  c = Jsus::Container.new(*(package.source_files.to_a + package.linked_external_dependencies.to_a))
77
77
  script = %{(function(prefix) {
78
78
  var sources = %sources%;
79
- for (var i = 0, j = sources.length; i < j; i++) document.write('<scr' + 'ipt src="' + (prefix || '') + sources[i] + "></script>");
79
+ for (var i = 0, j = sources.length; i < j; i++) document.write('<scr' + 'ipt src="' + (prefix || '') + sources[i] + "></script>');
80
80
  })(window.prefix);}.sub("%sources%", JSON.pretty_generate(c.required_files(root)))
81
81
  f.puts script
82
82
  end
@@ -2,17 +2,17 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{jsus}
5
- s.version = "0.1.9"
5
+ s.version = "0.1.10.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Markiz, idea by Inviz (http://github.com/Inviz)"]
9
- s.date = %q{2010-08-30}
9
+ s.date = %q{2010-09-11}
10
10
  s.default_executable = %q{jsus}
11
11
  s.description = %q{Packager/compiler for js-files that resolves dependencies and can compile everything into one file, providing all the neccessary meta-info.}
12
12
  s.email = %q{markizko@gmail.com}
13
13
  s.executables = ["jsus"]
14
14
  s.extra_rdoc_files = ["CHANGELOG", "LICENSE", "README", "TODO", "bin/jsus", "lib/jsus.rb", "lib/jsus/container.rb", "lib/jsus/package.rb", "lib/jsus/packager.rb", "lib/jsus/pool.rb", "lib/jsus/source_file.rb", "lib/jsus/tag.rb"]
15
- s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "TODO", "bin/jsus", "jsus.gemspec", "lib/jsus.rb", "lib/jsus/container.rb", "lib/jsus/package.rb", "lib/jsus/packager.rb", "lib/jsus/pool.rb", "lib/jsus/source_file.rb", "lib/jsus/tag.rb", "spec/data/Basic/README", "spec/data/Basic/app/javascripts/Orwik/Source/Library/Color.js", "spec/data/Basic/app/javascripts/Orwik/Source/Widget/Input/Input.Color.js", "spec/data/Basic/app/javascripts/Orwik/Source/Widget/Input/Input.js", "spec/data/Basic/app/javascripts/Orwik/Source/Widget/Widget.js", "spec/data/Basic/app/javascripts/Orwik/package.yml", "spec/data/ChainDependencies/app/javascripts/Class/Source/Class.js", "spec/data/ChainDependencies/app/javascripts/Class/package.yml", "spec/data/ChainDependencies/app/javascripts/Hash/Source/Hash.js", "spec/data/ChainDependencies/app/javascripts/Hash/package.yml", "spec/data/ChainDependencies/app/javascripts/Mash/Source/Mash.js", "spec/data/ChainDependencies/app/javascripts/Mash/package.yml", "spec/data/Extensions/app/javascripts/Core/Source/Class.js", "spec/data/Extensions/app/javascripts/Core/package.yml", "spec/data/Extensions/app/javascripts/Orwik/Extensions/Class.js", "spec/data/Extensions/app/javascripts/Orwik/package.yml", "spec/data/ExternalDependencies/app/javascripts/Orwik/Source/Test.js", "spec/data/ExternalDependencies/app/javascripts/Orwik/package.yml", "spec/data/ExternalInternalDependencies/Core/Class/Source/Class.js", "spec/data/ExternalInternalDependencies/Core/Class/Source/Type.js", "spec/data/ExternalInternalDependencies/Core/Class/package.yml", "spec/data/ExternalInternalDependencies/Core/Hash/Source/Hash.js", "spec/data/ExternalInternalDependencies/Core/Hash/package.yml", "spec/data/ExternalInternalDependencies/Core/Mash/Source/Mash.js", "spec/data/ExternalInternalDependencies/Core/Mash/package.yml", "spec/data/ExternalInternalDependencies/Test/Source/Library/Color.js", "spec/data/ExternalInternalDependencies/Test/Source/Widget/Input/Input.Color.js", "spec/data/ExternalInternalDependencies/Test/Source/Widget/Input/Input.js", "spec/data/ExternalInternalDependencies/Test/Source/Widget/Widget.js", "spec/data/ExternalInternalDependencies/Test/package.yml", "spec/data/OutsideDependencies/README", "spec/data/OutsideDependencies/app/javascripts/Core/Source/Class/Class.Extras.js", "spec/data/OutsideDependencies/app/javascripts/Core/Source/Class/Class.js", "spec/data/OutsideDependencies/app/javascripts/Core/Source/Native/Hash.js", "spec/data/OutsideDependencies/app/javascripts/Core/package.yml", "spec/data/OutsideDependencies/app/javascripts/Orwik/Source/Library/Color.js", "spec/data/OutsideDependencies/app/javascripts/Orwik/Source/Widget/Input/Input.Color.js", "spec/data/OutsideDependencies/app/javascripts/Orwik/Source/Widget/Input/Input.js", "spec/data/OutsideDependencies/app/javascripts/Orwik/Source/Widget/Widget.js", "spec/data/OutsideDependencies/app/javascripts/Orwik/package.yml", "spec/data/bad_test_source_one.js", "spec/data/bad_test_source_two.js", "spec/data/test_source_one.js", "spec/lib/jsus/container_spec.rb", "spec/lib/jsus/package_spec.rb", "spec/lib/jsus/packager_spec.rb", "spec/lib/jsus/pool_spec.rb", "spec/lib/jsus/source_file_spec.rb", "spec/lib/jsus/tag_spec.rb", "spec/shared/class_stubs.rb", "spec/spec_helper.rb"]
15
+ s.files = ["CHANGELOG", "LICENSE", "Manifest", "README", "Rakefile", "TODO", "bin/jsus", "jsus.gemspec", "lib/jsus.rb", "lib/jsus/container.rb", "lib/jsus/package.rb", "lib/jsus/packager.rb", "lib/jsus/pool.rb", "lib/jsus/source_file.rb", "lib/jsus/tag.rb", "spec/data/Basic/README", "spec/data/Basic/app/javascripts/Orwik/Source/Library/Color.js", "spec/data/Basic/app/javascripts/Orwik/Source/Widget/Input/Input.Color.js", "spec/data/Basic/app/javascripts/Orwik/Source/Widget/Input/Input.js", "spec/data/Basic/app/javascripts/Orwik/Source/Widget/Widget.js", "spec/data/Basic/app/javascripts/Orwik/package.yml", "spec/data/ChainDependencies/app/javascripts/Class/Source/Class.js", "spec/data/ChainDependencies/app/javascripts/Class/package.yml", "spec/data/ChainDependencies/app/javascripts/Hash/Source/Hash.js", "spec/data/ChainDependencies/app/javascripts/Hash/package.yml", "spec/data/ChainDependencies/app/javascripts/Mash/Source/Mash.js", "spec/data/ChainDependencies/app/javascripts/Mash/package.yml", "spec/data/Extensions/app/javascripts/Core/Source/Class.js", "spec/data/Extensions/app/javascripts/Core/package.yml", "spec/data/Extensions/app/javascripts/Orwik/Extensions/Class.js", "spec/data/Extensions/app/javascripts/Orwik/package.yml", "spec/data/ExternalDependencies/app/javascripts/Orwik/Source/Test.js", "spec/data/ExternalDependencies/app/javascripts/Orwik/package.yml", "spec/data/ExternalInternalDependencies/Core/Class/Source/Class.js", "spec/data/ExternalInternalDependencies/Core/Class/Source/Type.js", "spec/data/ExternalInternalDependencies/Core/Class/package.yml", "spec/data/ExternalInternalDependencies/Core/Hash/Source/Hash.js", "spec/data/ExternalInternalDependencies/Core/Hash/package.yml", "spec/data/ExternalInternalDependencies/Core/Mash/Source/Mash.js", "spec/data/ExternalInternalDependencies/Core/Mash/package.yml", "spec/data/ExternalInternalDependencies/Test/Source/Library/Color.js", "spec/data/ExternalInternalDependencies/Test/Source/Widget/Input/Input.Color.js", "spec/data/ExternalInternalDependencies/Test/Source/Widget/Input/Input.js", "spec/data/ExternalInternalDependencies/Test/Source/Widget/Widget.js", "spec/data/ExternalInternalDependencies/Test/package.yml", "spec/data/JsonPackage/Source/Sheet.DOM.js", "spec/data/JsonPackage/Source/Sheet.js", "spec/data/JsonPackage/Source/SheetParser.CSS.js", "spec/data/JsonPackage/Source/sg-regex-tools.js", "spec/data/JsonPackage/package.json", "spec/data/OutsideDependencies/README", "spec/data/OutsideDependencies/app/javascripts/Core/Source/Class/Class.Extras.js", "spec/data/OutsideDependencies/app/javascripts/Core/Source/Class/Class.js", "spec/data/OutsideDependencies/app/javascripts/Core/Source/Native/Hash.js", "spec/data/OutsideDependencies/app/javascripts/Core/package.yml", "spec/data/OutsideDependencies/app/javascripts/Orwik/Source/Library/Color.js", "spec/data/OutsideDependencies/app/javascripts/Orwik/Source/Widget/Input/Input.Color.js", "spec/data/OutsideDependencies/app/javascripts/Orwik/Source/Widget/Input/Input.js", "spec/data/OutsideDependencies/app/javascripts/Orwik/Source/Widget/Widget.js", "spec/data/OutsideDependencies/app/javascripts/Orwik/package.yml", "spec/data/bad_test_source_one.js", "spec/data/bad_test_source_two.js", "spec/data/test_source_one.js", "spec/lib/jsus/container_spec.rb", "spec/lib/jsus/package_spec.rb", "spec/lib/jsus/packager_spec.rb", "spec/lib/jsus/pool_spec.rb", "spec/lib/jsus/source_file_spec.rb", "spec/lib/jsus/tag_spec.rb", "spec/shared/class_stubs.rb", "spec/spec_helper.rb"]
16
16
  s.homepage = %q{http://github.com/markiz/jsus}
17
17
  s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Jsus", "--main", "README"]
18
18
  s.require_paths = ["lib"]
@@ -15,12 +15,17 @@ module Jsus
15
15
  # Accepts options:
16
16
  # * +:pool:+ — which pool the package should belong to.
17
17
  #
18
- # Raises an error when the given directory doesn't contain a package.yml
18
+ # Raises an error when the given directory doesn't contain a package.yml or package.json
19
19
  # file with meta info.
20
20
  #
21
21
  def initialize(directory, options = {})
22
22
  self.directory = File.expand_path(directory)
23
- self.header = YAML.load_file(File.join(directory, 'package.yml'))
23
+ if File.exists?(File.join(directory, 'package.yml'))
24
+ self.header = YAML.load_file(File.join(directory, 'package.yml'))
25
+ elsif File.exists?(File.join(directory, 'package.json'))
26
+ self.header = JSON.load(IO.read(File.join(directory, 'package.json')))
27
+ else
28
+ end
24
29
  Dir.chdir(directory) do
25
30
  files.each do |source|
26
31
  source_file = SourceFile.from_file(source, :package => self)
@@ -22,7 +22,7 @@ module Jsus
22
22
  #
23
23
  def initialize(dir = nil)
24
24
  if dir
25
- Dir[File.join(dir, '**', 'package.yml')].each do |package_path|
25
+ Dir[File.join(dir, '**', 'package.{yml,json}')].each do |package_path|
26
26
  Package.new(File.dirname(package_path), :pool => self)
27
27
  end
28
28
  end
@@ -0,0 +1,61 @@
1
+ /*
2
+ ---
3
+ name : Sheet.DOM
4
+ description : Sheet.DOM adds some handy stuff for working with the browser's native CSS capabilities.
5
+
6
+ authors : Thomas Aylott
7
+ copyright : © 2010 Thomas Aylott
8
+ license : MIT
9
+
10
+ provides : Sheet.DOM
11
+ ...
12
+ */
13
+ ;(function(document,styleSheets){
14
+
15
+ if (typeof Sheet == 'undefined') Sheet = {}
16
+ if (Sheet.DOM == null) Sheet.DOM = {}
17
+
18
+ Sheet.DOM.createSheet = function(raw){
19
+ var oldLength = styleSheets.length
20
+ , style
21
+ , sheet
22
+
23
+ if (document.createStyleSheet){
24
+ document.createStyleSheet()
25
+ styleSheets[styleSheets.length - 1].cssText = raw
26
+ }
27
+
28
+ if (oldLength >= styleSheets.length){
29
+ style = document.createElement('style')
30
+ style.setAttribute('type','text/css')
31
+ style.appendChild(document.createTextNode(raw))
32
+ document.getElementsByTagName('head')[0].appendChild(style)
33
+ }
34
+
35
+ if (oldLength >= styleSheets.length){
36
+ style = document.createElement('div')
37
+ style.innerHTML = '<style type="text/css">' + String_escapeHTML.call(raw) + '</style>'
38
+ document.getElementsByTagName('head')[0].appendChild(style)
39
+ }
40
+
41
+ if (oldLength >= styleSheets.length)
42
+ throw new Error('no styleSheet added :(')
43
+
44
+ sheet = styleSheets[styleSheets.length - 1]
45
+ sheet.cssText = raw
46
+
47
+ return sheet
48
+ }
49
+
50
+ Sheet.DOM.createStyle = function(raw){
51
+ var div = document.createElement('div')
52
+ div.innerHTML = '<p style="' + String_escapeHTML.call(raw) + '"></p>'
53
+ return {style:div.firstChild.style}
54
+ }
55
+
56
+ function String_escapeHTML(){
57
+ return ('' + this).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/"/g,'&quot;')
58
+ }
59
+
60
+
61
+ }(document, document.styleSheets));
@@ -0,0 +1,80 @@
1
+ /*
2
+ ---
3
+ name : Sheet
4
+
5
+ authors : Thomas Aylott
6
+ copyright : © 2010 Thomas Aylott
7
+ license : MIT
8
+
9
+ provides : Sheet
10
+ requires : SheetParser.CSS
11
+ ...
12
+ */
13
+ ;(function(exports){
14
+
15
+
16
+ /*<depend>*/
17
+ var UNDEF = {undefined:1}
18
+
19
+ /*<CommonJS>*/
20
+ var SheetParser = UNDEF[typeof require]
21
+ ? exports.SheetParser
22
+ : require('./SheetParser.CSS').SheetParser
23
+
24
+ exports.Sheet = Sheet
25
+ /*</CommonJS>*/
26
+
27
+ /*<debug>*/;if (!(!UNDEF[typeof SheetParser] && SheetParser.CSS)) throw new Error('Missing required function: "SheetParser.CSS"');/*</debug>*/
28
+ /*</depend>*/
29
+
30
+
31
+ Sheet.version = '1.0.1'
32
+
33
+ function Sheet(cssText){
34
+ if (this instanceof Sheet) this.initialize(cssText)
35
+ else return Sheet.from(cssText)
36
+ }
37
+
38
+ Sheet.from = function(cssText){
39
+ return new Sheet(cssText)
40
+ }
41
+
42
+ Sheet.prototype = {
43
+
44
+ parser: SheetParser.CSS,
45
+
46
+ initialize: function(cssText){
47
+ this.cssText = cssText || ''
48
+ this.style = this.rules = this.cssRules = this.parser.parse(this.cssText)
49
+ var self = this
50
+ },
51
+
52
+ update: function(){
53
+ var cssText = '',
54
+ i = -1,
55
+ rule,
56
+ rules = this.style || this.rules || this.cssRules
57
+
58
+ while ((rule = rules[++i])){
59
+ if (typeof rule == 'object'){
60
+ // cssRule
61
+ if (this.update) rule.cssText = this.update.call(rule)
62
+ cssText += rule.cssText = rule.selectorText + '{' + rule.cssText + '}'
63
+ } else {
64
+ // style key/value
65
+ cssText += rule + ':'
66
+ cssText += rules[rule] + ';'
67
+ }
68
+ }
69
+
70
+ if (rules.selectorText)
71
+ return rules.cssText = rules.selectorText + '{' + cssText + '}'
72
+ return rules.cssText = cssText
73
+ }
74
+
75
+ }
76
+
77
+ Sheet.prototype.toString = Sheet.prototype.update
78
+
79
+
80
+ }(typeof exports != 'undefined' ? exports : this));
@@ -0,0 +1,127 @@
1
+ /*
2
+ ---
3
+ name : SheetParser.CSS
4
+
5
+ authors : Thomas Aylott
6
+ copyright : © 2010 Thomas Aylott
7
+ license : MIT
8
+
9
+ provides : SheetParser.CSS
10
+ requires : combineRegExp
11
+ ...
12
+ */
13
+ ;(function(exports){
14
+
15
+
16
+ /*<depend>*/
17
+ var UNDEF = {undefined:1}
18
+ if (!exports.SheetParser) exports.SheetParser = {}
19
+
20
+ /*<CommonJS>*/
21
+ var combineRegExp = UNDEF[typeof require]
22
+ ? exports.combineRegExp
23
+ : require('./sg-regex-tools').combineRegExp
24
+ var SheetParser = exports.SheetParser
25
+ /*</CommonJS>*/
26
+
27
+ /*<debug>*/;if (UNDEF[typeof combineRegExp]) throw new Error('Missing required function: "combineRegExp"');/*</debug>*/
28
+ /*</depend>*/
29
+
30
+
31
+ var CSS = SheetParser.CSS = {version: '1.0.1'}
32
+
33
+ CSS.camelCase = function(string){
34
+ return ('' + string).replace(camelCaseSearch, camelCaseReplace)
35
+ }
36
+ var camelCaseSearch = /-\D/g
37
+ function camelCaseReplace(match){
38
+ return match.charAt(1).toUpperCase()
39
+ }
40
+
41
+ CSS.parse = function(cssText){
42
+ var found
43
+ , rule
44
+ , rules = {length:0}
45
+ , keyIndex = -1
46
+ , regex = this.parser
47
+ , names = CSS.parser.names
48
+ , i,r,l
49
+ , ruleCount
50
+
51
+ rules.cssText = cssText = ('' + cssText)
52
+
53
+ regex.lastIndex = 0
54
+ while ((found = regex.exec(cssText))){
55
+ // avoid an infinite loop on zero-length keys
56
+ if (regex.lastIndex == found.index) ++ regex.lastIndex
57
+
58
+ // key:value
59
+ if (found[names._key]){
60
+ rules[rules.length ++] = found[names._key]
61
+ rules[found[names._key]] = found[names._value]
62
+ rules[CSS.camelCase(found[names._key])] = found[names._value]
63
+ continue
64
+ }
65
+
66
+ rules[rules.length++] = rule = {}
67
+ for (i = -1, l = names.length; i < l; ++i){
68
+ if (!found[i]) continue
69
+ rule[names[i-1]] = found[i]
70
+ }
71
+ }
72
+
73
+ for (i = -1, l = rules.length; i < l; ++i){
74
+ if (!rules[i] || !rules[i].style_cssText) continue
75
+
76
+ rules[i].style = CSS.parse(rules[i].style_cssText)
77
+
78
+ for (ruleCount = -1, r = -1, rule; rule = rules[i].style[++r];){
79
+ if (typeof rule == 'string') continue
80
+ rules[i][r] = (rules[i].cssRules || (rules[i].cssRules = {}))[++ ruleCount] = rule
81
+ rules[i].cssRules.length = ruleCount + 1
82
+ rules[i].rules = rules[i].cssRules
83
+ }
84
+ }
85
+
86
+ return rules
87
+ }
88
+
89
+ var x = combineRegExp
90
+
91
+ ;(CSS.at = x(/\s*(@[-a-zA-Z0-9]+)\s+([^;{]*)/))
92
+ .names=[ 'kind', 'name']
93
+
94
+ CSS.atRule = x([CSS.at, ';'])
95
+
96
+ ;(CSS.keyValue = x(/\s*([-a-zA-Z0-9]+):\s*(.*?)(?:;|(?=\})|$)/))
97
+ .names=[ '_key', '_value']
98
+
99
+ ;(CSS.comment = x(/\/\*\s*((?:[^*]|\*(?!\/))*)\s*\*\//))
100
+ .names=[ 'comment']
101
+
102
+ ;(CSS.selector = x(/\s*((\d+%)|[^\{}]+?)\s*/))
103
+ .names=[ 'selectorText','keyText']
104
+
105
+ ;(CSS.block = x(/\{\s*((?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})*\})*\})*)\s*\}/))
106
+ .names=[ 'style_cssText']
107
+
108
+ CSS.selectorBlock = x([CSS.selector, CSS.block])
109
+
110
+ CSS.atBlock = x([CSS.at, CSS.block])
111
+
112
+ var OR = '|'
113
+
114
+ CSS.parser = x([
115
+ x(CSS.comment)
116
+ ,OR
117
+ ,x(CSS.atBlock)
118
+ ,OR
119
+ ,x(CSS.atRule)
120
+ ,OR
121
+ ,x(CSS.selectorBlock)
122
+ ,OR
123
+ ,x(CSS.keyValue)
124
+ ],'cssText')
125
+
126
+
127
+ })(typeof exports != 'undefined' ? exports : this);
@@ -0,0 +1,37 @@
1
+ /*
2
+ ---
3
+ name : sg-regex-tools
4
+ description : A few super-handy tools for messing around with RegExp
5
+
6
+ authors : Thomas Aylott
7
+ copyright : © 2010 Thomas Aylott
8
+ license : MIT
9
+
10
+ provides : [combineRegExp]
11
+ ...
12
+ */
13
+ ;(function(exports){
14
+
15
+ exports.combineRegExp = function(regex, group){
16
+ if (regex.source) regex = [regex]
17
+
18
+ var names = [], i, source = '', this_source
19
+
20
+ for (i = 0; i < regex.length; ++i){ if (!regex[i]) continue
21
+ this_source = regex[i].source || ''+regex[i]
22
+ if (this_source == '|') source += '|'
23
+ else {
24
+ source += (group?'(':'') + this_source.replace(/\s/g,'') + (group?')':'')
25
+ if (group) names.push(group)
26
+ }
27
+ if (regex[i].names) names = names.concat(regex[i].names)
28
+ }
29
+ regex = new RegExp(source,'gm')
30
+ // [key] → 1
31
+ for (i = -1; i < names.length; ++i) names[names[i]] = i + 1
32
+ // [1] → key
33
+ regex.names = names
34
+ return regex
35
+ }
36
+
37
+ }(typeof exports != 'undefined' ? exports : this))
@@ -0,0 +1,56 @@
1
+ {
2
+
3
+ "name": "Sheet",
4
+ "version": "1.0.1",
5
+
6
+ "description": "100% DOM-less JavaScript implementation of the styleSheets, cssRule & style APIs \nSupports custom and browser-incompatible CSS syntax like nested rules",
7
+ "keywords": [
8
+ "CSS",
9
+ "CSSOM",
10
+ "styleSheet",
11
+ "cssRule",
12
+ "style",
13
+ "parse"
14
+ ],
15
+
16
+ "authors": ["Thomas Aylott"],
17
+ "contributors": [
18
+ {
19
+ "name": "Thomas Aylott",
20
+ "email": "thomas@subtlegradient.com",
21
+ "web": "http://subtlegradient.com"
22
+ }
23
+ ],
24
+
25
+ "copyright": "© 2010 Thomas Aylott",
26
+ "license": "MIT License",
27
+ "licenses": [
28
+ {
29
+ "type": "MIT",
30
+ "url": "http://creativecommons.org/licenses/MIT/"
31
+ }
32
+ ],
33
+
34
+ "repositories": [{
35
+ "type": "git",
36
+ "url": "http://github.com/subtleGradient/Sheet.js/"
37
+ }],
38
+
39
+ "bugs": {
40
+ "web": "http://github.com/subtleGradient/Sheet.js/issues"
41
+ },
42
+
43
+ "directories": {
44
+ "src": "./Source",
45
+ "lib": "./Source",
46
+ "doc": ".",
47
+ "test": "./Test"
48
+ },
49
+
50
+ "sources": [
51
+ "Source/Sheet.js",
52
+ "Source/SheetParser.CSS.js"
53
+ ],
54
+
55
+ "main":"./Source/Sheet"
56
+ }
@@ -8,32 +8,47 @@ describe Jsus::Package do
8
8
  before(:each) { cleanup }
9
9
  after(:all) { cleanup }
10
10
  context "initialization" do
11
- let(:input_dir) { "spec/data/OutsideDependencies/app/javascripts/Orwik" }
12
- let(:output_dir) { "spec/data/OutsideDependencies/public/javascripts/Orwik" }
13
11
  context "from a directory" do
14
- it "should load header from package.yml" do
15
- subject.name.should == "orwik"
16
- subject.filename.should == "orwik.js"
12
+ context "with a package.yml" do
13
+ let(:input_dir) { "spec/data/OutsideDependencies/app/javascripts/Orwik" }
14
+ let(:output_dir) { "spec/data/OutsideDependencies/public/javascripts/Orwik" }
15
+
16
+ it "should load header from package.yml" do
17
+ subject.name.should == "orwik"
18
+ subject.filename.should == "orwik.js"
19
+ end
20
+
21
+ it "should pass pool in options and register itself in the pool" do
22
+ pool = Jsus::Pool.new
23
+ package = Jsus::Package.new(input_dir, :pool => pool)
24
+ package.pool.should == pool
25
+ pool.packages.should include(package)
26
+ end
27
+
28
+ it "should set provided modules from source files" do
29
+ subject.provides.should have_exactly(4).items
30
+ subject.provides_names.should include("Color", "Input", "Input.Color", "Widget")
31
+ end
32
+
33
+ it "should set up outside dependencies" do
34
+ subject.dependencies_names.should == ['core/Class']
35
+ end
36
+
37
+ it "should set directory field" do
38
+ subject.directory.should == File.expand_path(input_dir)
39
+ end
17
40
  end
18
41
 
19
- it "should pass pool in options and register itself in the pool" do
20
- pool = Jsus::Pool.new
21
- package = Jsus::Package.new(input_dir, :pool => pool)
22
- package.pool.should == pool
23
- pool.packages.should include(package)
24
- end
25
-
26
- it "should set provided modules from source files" do
27
- subject.provides.should have_exactly(4).items
28
- subject.provides_names.should include("Color", "Input", "Input.Color", "Widget")
29
- end
42
+ context "with a package.json" do
43
+ let(:input_dir) { "spec/data/JsonPackage" }
44
+ let(:output_dir) { "spec/data/JsonPackage" }
30
45
 
31
- it "should set up outside dependencies" do
32
- subject.dependencies_names.should == ['core/Class']
33
- end
46
+ it "should load header from package.json" do
47
+ subject.name.should == "Sheet"
48
+ subject.provides_names.should =~ ["Sheet", "SheetParser.CSS"]
49
+ subject.dependencies_names.should =~ ["combineRegExp"]
50
+ end
34
51
 
35
- it "should set directory field" do
36
- subject.directory.should == File.expand_path(input_dir)
37
52
  end
38
53
  end
39
54
  end
@@ -41,6 +41,11 @@ describe Jsus::Pool do
41
41
  pool = Jsus::Pool.new("spec/data/Extensions/app/javascripts")
42
42
  pool.send(:extensions_map).keys.should include(Jsus::Tag["Core/Class"])
43
43
  end
44
+
45
+ it "should load package.json packages too" do
46
+ pool = Jsus::Pool.new("spec/data/JsonPackage")
47
+ pool.should have_exactly(1).packages
48
+ end
44
49
  end
45
50
  end
46
51
 
metadata CHANGED
@@ -5,8 +5,9 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 1
8
- - 9
9
- version: 0.1.9
8
+ - 10
9
+ - 1
10
+ version: 0.1.10.1
10
11
  platform: ruby
11
12
  authors:
12
13
  - Markiz, idea by Inviz (http://github.com/Inviz)
@@ -14,7 +15,7 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-08-30 00:00:00 +04:00
18
+ date: 2010-09-11 00:00:00 +04:00
18
19
  default_executable: jsus
19
20
  dependencies:
20
21
  - !ruby/object:Gem::Dependency
@@ -147,6 +148,11 @@ files:
147
148
  - spec/data/ExternalInternalDependencies/Test/Source/Widget/Input/Input.js
148
149
  - spec/data/ExternalInternalDependencies/Test/Source/Widget/Widget.js
149
150
  - spec/data/ExternalInternalDependencies/Test/package.yml
151
+ - spec/data/JsonPackage/Source/Sheet.DOM.js
152
+ - spec/data/JsonPackage/Source/Sheet.js
153
+ - spec/data/JsonPackage/Source/SheetParser.CSS.js
154
+ - spec/data/JsonPackage/Source/sg-regex-tools.js
155
+ - spec/data/JsonPackage/package.json
150
156
  - spec/data/OutsideDependencies/README
151
157
  - spec/data/OutsideDependencies/app/javascripts/Core/Source/Class/Class.Extras.js
152
158
  - spec/data/OutsideDependencies/app/javascripts/Core/Source/Class/Class.js