jsus 0.3.6 → 0.4.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.
Files changed (71) hide show
  1. data/.travis.yml +2 -0
  2. data/CHANGELOG +5 -0
  3. data/Gemfile +7 -4
  4. data/VERSION +1 -1
  5. data/bin/jsus +1 -5
  6. data/cucumber.yml +1 -1
  7. data/features/command-line/external_dependency_resolution.feature +4 -4
  8. data/features/command-line/generate_includes.feature +34 -0
  9. data/features/command-line/mooforge_compatibility_layer.feature +1 -1
  10. data/features/command-line/postproc.feature +12 -3
  11. data/features/command-line/structure_json.feature +5 -40
  12. data/features/data/ExternalDependencyWithExternalDependency/Leonardo/Source/Core.js +2 -2
  13. data/features/step_definitions/cli_steps.rb +15 -9
  14. data/features/support/env.rb +1 -1
  15. data/jsus.gemspec +25 -7
  16. data/lib/extensions/rgl.rb +2 -1
  17. data/lib/jsus/cli.rb +43 -27
  18. data/lib/jsus/container.rb +71 -51
  19. data/lib/jsus/middleware.rb +2 -3
  20. data/lib/jsus/package.rb +27 -129
  21. data/lib/jsus/packager.rb +10 -6
  22. data/lib/jsus/pool.rb +48 -20
  23. data/lib/jsus/source_file.rb +119 -198
  24. data/lib/jsus/tag.rb +72 -106
  25. data/lib/jsus/util.rb +14 -4
  26. data/lib/jsus/util/compressor.rb +1 -1
  27. data/lib/jsus/util/documenter.rb +1 -1
  28. data/lib/jsus/util/mixins.rb +7 -0
  29. data/lib/jsus/util/mixins/operates_on_sources.rb +29 -0
  30. data/lib/jsus/util/post_processor.rb +35 -0
  31. data/lib/jsus/util/post_processor/base.rb +32 -0
  32. data/lib/jsus/util/post_processor/moocompat12.rb +19 -0
  33. data/lib/jsus/util/post_processor/mooltie8.rb +19 -0
  34. data/lib/jsus/util/post_processor/semicolon.rb +18 -0
  35. data/lib/jsus/util/validator/base.rb +3 -23
  36. data/lib/jsus/util/watcher.rb +8 -6
  37. data/spec/data/Extensions/app/javascripts/Core/Source/Hash.js +13 -0
  38. data/spec/data/Extensions/app/javascripts/Core/Source/Mash.js +13 -0
  39. data/spec/data/Extensions/app/javascripts/Core/package.yml +3 -1
  40. data/spec/data/Extensions/app/javascripts/Orwik/Extensions/Mash.js +16 -0
  41. data/spec/data/Extensions/app/javascripts/Orwik/package.yml +2 -1
  42. data/spec/data/OutsideDependencies/app/javascripts/Orwik/package.yml +3 -3
  43. data/spec/data/SimpleSources/dependent_source_one.js +15 -0
  44. data/spec/data/SimpleSources/replacement_source_one.js +13 -0
  45. data/spec/data/SimpleSources/simple_source_one.js +13 -0
  46. data/spec/data/SimpleSources/simple_source_two.js +13 -0
  47. data/spec/data/extension_1.js +15 -0
  48. data/spec/data/extension_2.js +15 -0
  49. data/spec/data/replacement.js +15 -0
  50. data/spec/jsus/container_spec.rb +72 -14
  51. data/spec/jsus/package_spec.rb +10 -128
  52. data/spec/jsus/packager_spec.rb +11 -11
  53. data/spec/jsus/pool_spec.rb +13 -22
  54. data/spec/jsus/source_file_spec.rb +66 -215
  55. data/spec/jsus/tag_spec.rb +24 -69
  56. data/spec/jsus/util/documenter_spec.rb +1 -1
  57. data/spec/jsus/util/post_processor/moocompat12_spec.rb +23 -0
  58. data/spec/jsus/util/post_processor/mooltie8_spec.rb +23 -0
  59. data/spec/jsus/util/post_processor/semicolon_spec.rb +21 -0
  60. data/spec/jsus/util/post_processors/base_spec.rb +6 -0
  61. data/spec/jsus/util/tree_spec.rb +3 -3
  62. data/spec/jsus/util/validator/base_spec.rb +4 -2
  63. data/spec/jsus/util/watcher_spec.rb +12 -2
  64. data/spec/shared/mixins_segs.rb +38 -0
  65. data/spec/spec_helper.rb +6 -0
  66. metadata +28 -10
  67. data/features/data/tmp2/package.js +0 -35
  68. data/features/data/tmp2/scripts.json +0 -13
  69. data/features/data/tmp2/tree.json +0 -26
  70. data/lib/jsus/compiler.rb +0 -28
  71. data/spec/shared/class_stubs.rb +0 -31
@@ -1,13 +0,0 @@
1
- {
2
- "Package": {
3
- "desc": "Jsus package with correct order set",
4
- "provides": [
5
- "Color",
6
- "Input.Color",
7
- "Package/Color"
8
- ],
9
- "requires": [
10
-
11
- ]
12
- }
13
- }
@@ -1,26 +0,0 @@
1
- {
2
- "Library": {
3
- "Color": {
4
- "desc": "A library to work with colors",
5
- "requires": [
6
-
7
- ],
8
- "provides": [
9
- "Color"
10
- ]
11
- }
12
- },
13
- "Widget": {
14
- "Input": {
15
- "Input.Color": {
16
- "desc": "Cool colorpicker for everyone to enjoy",
17
- "requires": [
18
- "Color"
19
- ],
20
- "provides": [
21
- "Input.Color"
22
- ]
23
- }
24
- }
25
- }
26
- }
@@ -1,28 +0,0 @@
1
- module Jsus::Compiler
2
- # Handles main features of jsus
3
- extend self
4
-
5
- def post_process!(content, postproc)
6
- postproc.each do |processor|
7
- case processor.strip
8
- when /^moocompat12$/i
9
- content.gsub!(/\/\/<1.2compat>.*?\/\/<\/1.2compat>/m, '')
10
- content.gsub!(/\/\*<1.2compat>\*\/.*?\/\*<\/1.2compat>\*\//m, '')
11
- when /^mooltie8$/i
12
- content.gsub!(/\/\/<ltIE8>.*?\/\/<\/ltIE8>/m, '')
13
- content.gsub!(/\/\*<ltIE8>\*\/.*?\/\*<\/ltIE8>\*\//m, '')
14
- else
15
- Jsus.logger.error "Unknown post-processor: #{processor}"
16
- end
17
- end
18
- end
19
-
20
- def generate_includes(package, includes_root, output_file)
21
- File.open(output_file, "w") do |f|
22
- c = Jsus::Container.new(*(package.source_files.to_a + package.linked_external_dependencies.to_a))
23
- paths = c.required_files(includes_root)
24
- f.puts Jsus::Util::CodeGenerator.generate_includes(paths)
25
- end
26
- end
27
-
28
- end
@@ -1,31 +0,0 @@
1
- # Stubs for classes that mimic jsus classes without being actually them
2
-
3
-
4
- class Source
5
- attr_accessor :provides
6
- attr_accessor :dependencies
7
- attr_accessor :content
8
- attr_accessor :filename
9
- attr_accessor :replaces
10
- def initialize(options = {})
11
- options.each do |attr, value|
12
- send("#{attr}=", value)
13
- end
14
- end
15
-
16
- def required_files
17
- [filename]
18
- end
19
- end
20
-
21
-
22
- class Package
23
- attr_accessor :name
24
-
25
- def initialize(options = {})
26
- options.each do |attr, value|
27
- send("#{attr}=", value)
28
- end
29
- end
30
- end
31
-