jsus 0.3.6 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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
-