card-mod-script 0.11.7 → 0.13.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +6 -0
  3. data/{lib/javascript → assets/script}/decko/autosave.js.coffee +0 -0
  4. data/{lib/javascript → assets/script}/decko/bridge.js.coffee +0 -0
  5. data/{lib/javascript → assets/script}/decko/card_menu.js.coffee +0 -0
  6. data/{lib/javascript → assets/script}/decko/components.js.coffee +0 -5
  7. data/{lib/javascript → assets/script}/decko/decko.js.coffee +0 -3
  8. data/{lib/javascript → assets/script}/decko/doubleclick.js.coffee +0 -0
  9. data/{lib/javascript → assets/script}/decko/editor.js.coffee +0 -0
  10. data/{lib/javascript → assets/script}/decko/filter.js.coffee +0 -0
  11. data/{lib/javascript → assets/script}/decko/filter_items.js.coffee +0 -0
  12. data/{lib/javascript → assets/script}/decko/filter_links.js.coffee +0 -0
  13. data/{lib/javascript → assets/script}/decko/follow.js.coffee +0 -0
  14. data/{lib/javascript → assets/script}/decko/layout.js.coffee +0 -0
  15. data/{lib/javascript → assets/script}/decko/link_editor.js.coffee +0 -0
  16. data/{lib/javascript → assets/script}/decko/mod.js.coffee +0 -0
  17. data/{lib/javascript → assets/script}/decko/modal.js.coffee +0 -0
  18. data/{lib/javascript → assets/script}/decko/name_editor.js.coffee +1 -2
  19. data/{lib/javascript → assets/script}/decko/navbox.js.coffee +0 -0
  20. data/{lib/javascript → assets/script}/decko/nest_editor.js.coffee +0 -0
  21. data/{lib/javascript → assets/script}/decko/nest_editor_name.js.coffee +0 -0
  22. data/{lib/javascript → assets/script}/decko/nest_editor_options.js.coffee +0 -0
  23. data/{lib/javascript → assets/script}/decko/nest_editor_rules.js.coffee +0 -0
  24. data/{lib/javascript → assets/script}/decko/overlay.js.coffee +0 -0
  25. data/{lib/javascript → assets/script}/decko/recaptcha.js.coffee +0 -0
  26. data/{lib/javascript → assets/script}/decko/selectable_filtered_content.js.coffee +0 -0
  27. data/{lib/javascript → assets/script}/decko/slot.js.coffee +5 -1
  28. data/{lib/javascript → assets/script}/decko/slot_ready.js.coffee +0 -0
  29. data/{lib/javascript → assets/script}/decko/slotter.js.coffee +0 -0
  30. data/{lib/javascript → assets/script}/decko/upload.js.coffee +0 -0
  31. data/{lib/javascript → assets/script}/jquery-ui.js +0 -0
  32. data/{lib/javascript → assets/script}/jquery.autosize.js +0 -0
  33. data/assets/script/manifest.yml +44 -0
  34. data/{lib/javascript → assets/script}/script_pointer_config.js.coffee +0 -0
  35. data/{lib/javascript → assets/script}/script_pointer_list_editor.js.coffee +0 -0
  36. data/db/migrate_core_cards/20200804112348_add_mod_script_assets_type.rb +30 -0
  37. data/file/mod_script_script_decko_machine_output/file.js +2710 -0
  38. data/file/mod_script_script_jquery_machine_output/file.js +12924 -0
  39. data/set/abstract/{script.rb → 00_script.rb} +8 -3
  40. data/set/abstract/01_asset_script.rb +25 -0
  41. data/set/abstract/01_java_script.rb +9 -0
  42. data/set/abstract/02_coffee_script.rb +25 -0
  43. data/set/abstract/03_asset_java_script.rb +4 -0
  44. data/set/abstract/04_asset_coffee_script.rb +4 -0
  45. data/set/abstract/script_asset_list.rb +32 -0
  46. data/set/all/head_javascript.rb +75 -0
  47. data/set/right/script.rb +18 -7
  48. data/set/type/coffee_script.rb +1 -23
  49. data/set/type/java_script.rb +1 -7
  50. data/set/type/local_script_folder_group.rb +2 -0
  51. data/set/type/local_script_manifest_group.rb +2 -0
  52. data/set/type/mod_script_assets.rb +21 -0
  53. metadata +70 -47
  54. data/set/self/01_script_libraries.rb +0 -1
  55. data/set/self/script_decko.rb +0 -12
  56. data/set/self/script_editors.rb +0 -1
  57. data/set/self/script_jquery.rb +0 -10
  58. data/set/self/script_jquery_helper.rb +0 -14
  59. data/set/self/script_pointer_config.rb +0 -9
@@ -1,5 +1,6 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
+ require "coderay"
3
4
  require "uglifier"
4
5
 
5
6
  def self.included host_class
@@ -12,7 +13,7 @@ end
12
13
 
13
14
  def standard_machine_input
14
15
  js = format(:js)._render_core
15
- js = compress_js js if compress_js?
16
+ js = compress js if compress?
16
17
  comment_with_source js
17
18
  end
18
19
 
@@ -20,7 +21,7 @@ def comment_with_source js
20
21
  "//#{name}\n#{js}"
21
22
  end
22
23
 
23
- def compress_js input
24
+ def compress input
24
25
  Uglifier.compile input
25
26
  rescue StandardError => e
26
27
  # CoffeeScript is compiled in a view
@@ -38,7 +39,7 @@ def compression_error_message e
38
39
  end
39
40
  end
40
41
 
41
- def compress_js?
42
+ def compress?
42
43
  Cardio.config.compress_javascript
43
44
  end
44
45
 
@@ -75,6 +76,10 @@ format :html do
75
76
  process_content highlight(script)
76
77
  end
77
78
 
79
+ view :javascript_include_tag do
80
+ javascript_include_tag card.machine_output_url # path(format: :js)
81
+ end
82
+
78
83
  def highlight script
79
84
  ::CodeRay.scan(script, :js).div
80
85
  end
@@ -0,0 +1,25 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ require "coffee-script"
4
+
5
+ include_set Abstract::AssetFile
6
+
7
+ def compress?
8
+ @minimize
9
+ end
10
+
11
+ format :js do
12
+ view :source do
13
+ if @local
14
+ card.machine_output_url
15
+ else
16
+ source
17
+ end
18
+ end
19
+ end
20
+
21
+ format :html do
22
+ view :javascript_include_tag do
23
+ javascript_include_tag card.machine_output_url
24
+ end
25
+ end
@@ -0,0 +1,9 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ include_set Abstract::Script
4
+
5
+ format :js do
6
+ view :core do
7
+ _render_raw
8
+ end
9
+ end
@@ -0,0 +1,25 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ require "coffee-script"
4
+
5
+ include_set Abstract::Script
6
+
7
+ format :html do
8
+ def ace_mode
9
+ :coffee
10
+ end
11
+ end
12
+
13
+ format do
14
+ view :core do
15
+ compile_coffee _render_raw
16
+ end
17
+
18
+ def compile_coffee script
19
+ ::CoffeeScript.compile script
20
+ rescue StandardError => e
21
+ line_nr = e.to_s.match(/\[stdin\]:(\d*)/)&.capture(0)&.to_i
22
+ line = script.lines[line_nr - 1] if line_nr
23
+ raise Card::Error, "CoffeeScript::Error (#{card.name}): #{e.message}: #{line}"
24
+ end
25
+ end
@@ -0,0 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ include_set Abstract::AssetScript
4
+ include_set Abstract::JavaScript
@@ -0,0 +1,4 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ include_set Abstract::AssetScript
4
+ include_set Abstract::CoffeeScript
@@ -0,0 +1,32 @@
1
+ include_set Abstract::Machine
2
+ include_set Abstract::MachineInput
3
+ include_set Abstract::AssetList
4
+
5
+ machine_input { standard_machine_input }
6
+ store_machine_output filetype: "js"
7
+
8
+ def new_asset_constants path
9
+ if path.ends_with? ".js.coffee"
10
+ coffeescript_constants
11
+ elsif path.ends_with? ".js"
12
+ javascript_constants
13
+ end
14
+ end
15
+
16
+ def coffeescript_constants
17
+ { type_id: CoffeeScriptID, set_module: Abstract::AssetCoffeeScript }
18
+ end
19
+
20
+ def javascript_constants
21
+ { type_id: JavaScriptID, set_module: Abstract::AssetJavaScript }
22
+ end
23
+
24
+ def standard_machine_input
25
+ render_items_and_compress :js
26
+ end
27
+
28
+ format :html do
29
+ view :javascript_include_tag do
30
+ javascript_include_tag card.machine_output_url
31
+ end
32
+ end
@@ -0,0 +1,75 @@
1
+ format :html do
2
+ def views_in_head
3
+ super + %w[
4
+ decko_script_variables
5
+ head_javascript
6
+ html5shiv_tag
7
+ script_config_and_initiation
8
+ ]
9
+ end
10
+
11
+ view :decko_script_variables, unknown: true, cache: :never, perms: :none do
12
+ javascript_tag do
13
+ decko_script_variables.each_with_object("") do |(k, v), string|
14
+ string << "#{k}=#{script_variable_to_js v};\n"
15
+ end
16
+ end
17
+ end
18
+
19
+ view :head_javascript, unknown: true, cache: :never, perms: :none do
20
+ Array.wrap(head_javascript_paths).reject(&:empty?).join("\n")
21
+ end
22
+
23
+ view :html5shiv_tag, unknown: true, perms: :none do
24
+ nest :script_html5shiv_printshiv, view: :script_tag
25
+ end
26
+
27
+ view :script_config_and_initiation, unknown: true, perms: :none do
28
+ javascript_tag do
29
+ (mod_js_configs << trigger_slot_ready).join "\n\n"
30
+ end
31
+ end
32
+
33
+ view :javascript_include_tag, unknown: true, perms: :none do
34
+ "\n<!-- javascript_include_tag not overridden for #{card.name} -->\n"
35
+ end
36
+
37
+ def decko_script_variables
38
+ {
39
+ "window.decko": { rootUrl: card_url("") },
40
+ "decko.doubleClick": Card.config.double_click,
41
+ "decko.cssPath": head_stylesheet_path,
42
+ "decko.currentUserId": (Auth.current_id if Auth.signed_in?)
43
+ }
44
+ end
45
+
46
+ def head_javascript_paths
47
+ return unless (asset_card = param_or_rule_card :script)
48
+
49
+ asset_card.item_cards.map do |script|
50
+ script.format(:html).render :javascript_include_tag
51
+ end
52
+ end
53
+
54
+ private
55
+
56
+ def trigger_slot_ready
57
+ "$('document').ready(function() { $('.card-slot').trigger('slotReady'); })"
58
+ end
59
+
60
+ def script_variable_to_js value
61
+ return "'#{value}'" unless value.is_a? Hash
62
+
63
+ vars = value.each_with_object("") do |(k, v), string|
64
+ string << "#{k}: #{script_variable_to_js v}"
65
+ end
66
+ "{ #{vars} }"
67
+ end
68
+
69
+ def mod_js_configs
70
+ mod_js_config.map do |codename, js_decko_function|
71
+ config_json = escape_javascript Card::Rule.global_setting(codename)
72
+ "decko.#{js_decko_function}('#{config_json}')"
73
+ end
74
+ end
75
+ end
data/set/right/script.rb CHANGED
@@ -1,18 +1,29 @@
1
- include_set Abstract::Machine
2
-
3
- store_machine_output filetype: "js"
1
+ include_set Abstract::Pointer
4
2
 
5
3
  def ok_to_read
6
4
  true
7
5
  end
8
6
 
9
- view :javascript_include_tag do
10
- %(
11
- <script src="#{card.machine_output_url}" type="text/javascript"></script>
12
- )
7
+ def refresh_output force: false
8
+ item_cards.each do |item_card|
9
+ # puts "refreshing #{item_card.name}".yellow
10
+ item_card.try :refresh_output, force: force
11
+ end
12
+ end
13
+
14
+ def regenerate_machine_output
15
+ item_cards.each do |item_card|
16
+ item_card.try :regenerate_machine_output
17
+ end
13
18
  end
14
19
 
15
20
  format :html do
21
+ view :javascript_include_tag do
22
+ card.item_cards.map do |script|
23
+ script.format(:html).render :javascript_include_tag
24
+ end
25
+ end
26
+
16
27
  def raw_help_text
17
28
  "JavaScript (or CoffeeScript) for card's page."
18
29
  end
@@ -1,25 +1,3 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
- require "coffee-script"
4
-
5
- include_set Abstract::Script
6
-
7
- format :html do
8
- def ace_mode
9
- :coffee
10
- end
11
- end
12
-
13
- format do
14
- view :core do
15
- compile_coffee _render_raw
16
- end
17
-
18
- def compile_coffee script
19
- ::CoffeeScript.compile script
20
- rescue StandardError => e
21
- line_nr = e.to_s.match(/\[stdin\]:(\d*)/)&.capture(0)&.to_i
22
- line = script.lines[line_nr - 1] if line_nr
23
- raise Card::Error, "CoffeeScript::Error (#{card.name}): #{e.message}: #{line}"
24
- end
25
- end
3
+ include_set Abstract::CoffeeScript
@@ -1,9 +1,3 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
- include_set Abstract::Script
4
-
5
- format :js do
6
- view :core do
7
- _render_raw
8
- end
9
- end
3
+ include_set Abstract::JavaScript
@@ -0,0 +1,2 @@
1
+ include_set Abstract::LocalFolderGroup
2
+ include_set Abstract::ScriptAssetList
@@ -0,0 +1,2 @@
1
+ include_set Abstract::LocalManifestGroup
2
+ include_set Abstract::ScriptAssetList
@@ -0,0 +1,21 @@
1
+ include_set Abstract::ModAssets
2
+
3
+ def subpath
4
+ "script"
5
+ end
6
+
7
+ def local_folder_group_type_id
8
+ ::Card::LocalScriptFolderGroupID
9
+ end
10
+
11
+ def local_manifest_group_type_id
12
+ ::Card::LocalScriptManifestGroupID
13
+ end
14
+
15
+ format :html do
16
+ view :javascript_include_tag do
17
+ card.item_cards.map do |icard|
18
+ nest icard, view: :javascript_include_tag
19
+ end.join("\n")
20
+ end
21
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: card-mod-script
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.7
4
+ version: 0.13.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ethan McCutchen
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-08-01 00:00:00.000000000 Z
13
+ date: 2021-08-06 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: card
@@ -18,42 +18,56 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 1.101.7
21
+ version: 1.103.2
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 1.101.7
28
+ version: 1.103.2
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: card-mod-machines
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - '='
34
34
  - !ruby/object:Gem::Version
35
- version: 0.11.7
35
+ version: 0.13.2
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - '='
41
41
  - !ruby/object:Gem::Version
42
- version: 0.11.7
42
+ version: 0.13.2
43
+ - !ruby/object:Gem::Dependency
44
+ name: card-mod-assets
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - '='
48
+ - !ruby/object:Gem::Version
49
+ version: 0.13.2
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - '='
55
+ - !ruby/object:Gem::Version
56
+ version: 0.13.2
43
57
  - !ruby/object:Gem::Dependency
44
58
  name: card-mod-list
45
59
  requirement: !ruby/object:Gem::Requirement
46
60
  requirements:
47
61
  - - '='
48
62
  - !ruby/object:Gem::Version
49
- version: 0.11.7
63
+ version: 0.13.2
50
64
  type: :runtime
51
65
  prerelease: false
52
66
  version_requirements: !ruby/object:Gem::Requirement
53
67
  requirements:
54
68
  - - '='
55
69
  - !ruby/object:Gem::Version
56
- version: 0.11.7
70
+ version: 0.13.2
57
71
  description: ''
58
72
  email:
59
73
  - info@decko.org
@@ -61,54 +75,63 @@ executables: []
61
75
  extensions: []
62
76
  extra_rdoc_files: []
63
77
  files:
64
- - lib/javascript/decko/autosave.js.coffee
65
- - lib/javascript/decko/bridge.js.coffee
66
- - lib/javascript/decko/card_menu.js.coffee
67
- - lib/javascript/decko/components.js.coffee
68
- - lib/javascript/decko/decko.js.coffee
69
- - lib/javascript/decko/doubleclick.js.coffee
70
- - lib/javascript/decko/editor.js.coffee
71
- - lib/javascript/decko/filter.js.coffee
72
- - lib/javascript/decko/filter_items.js.coffee
73
- - lib/javascript/decko/filter_links.js.coffee
74
- - lib/javascript/decko/follow.js.coffee
75
- - lib/javascript/decko/layout.js.coffee
76
- - lib/javascript/decko/link_editor.js.coffee
77
- - lib/javascript/decko/mod.js.coffee
78
- - lib/javascript/decko/modal.js.coffee
79
- - lib/javascript/decko/name_editor.js.coffee
80
- - lib/javascript/decko/navbox.js.coffee
81
- - lib/javascript/decko/nest_editor.js.coffee
82
- - lib/javascript/decko/nest_editor_name.js.coffee
83
- - lib/javascript/decko/nest_editor_options.js.coffee
84
- - lib/javascript/decko/nest_editor_rules.js.coffee
85
- - lib/javascript/decko/overlay.js.coffee
86
- - lib/javascript/decko/recaptcha.js.coffee
87
- - lib/javascript/decko/selectable_filtered_content.js.coffee
88
- - lib/javascript/decko/slot.js.coffee
89
- - lib/javascript/decko/slot_ready.js.coffee
90
- - lib/javascript/decko/slotter.js.coffee
91
- - lib/javascript/decko/upload.js.coffee
92
- - lib/javascript/jquery-ui.js
93
- - lib/javascript/jquery.autosize.js
78
+ - README.md
79
+ - assets/script/decko/autosave.js.coffee
80
+ - assets/script/decko/bridge.js.coffee
81
+ - assets/script/decko/card_menu.js.coffee
82
+ - assets/script/decko/components.js.coffee
83
+ - assets/script/decko/decko.js.coffee
84
+ - assets/script/decko/doubleclick.js.coffee
85
+ - assets/script/decko/editor.js.coffee
86
+ - assets/script/decko/filter.js.coffee
87
+ - assets/script/decko/filter_items.js.coffee
88
+ - assets/script/decko/filter_links.js.coffee
89
+ - assets/script/decko/follow.js.coffee
90
+ - assets/script/decko/layout.js.coffee
91
+ - assets/script/decko/link_editor.js.coffee
92
+ - assets/script/decko/mod.js.coffee
93
+ - assets/script/decko/modal.js.coffee
94
+ - assets/script/decko/name_editor.js.coffee
95
+ - assets/script/decko/navbox.js.coffee
96
+ - assets/script/decko/nest_editor.js.coffee
97
+ - assets/script/decko/nest_editor_name.js.coffee
98
+ - assets/script/decko/nest_editor_options.js.coffee
99
+ - assets/script/decko/nest_editor_rules.js.coffee
100
+ - assets/script/decko/overlay.js.coffee
101
+ - assets/script/decko/recaptcha.js.coffee
102
+ - assets/script/decko/selectable_filtered_content.js.coffee
103
+ - assets/script/decko/slot.js.coffee
104
+ - assets/script/decko/slot_ready.js.coffee
105
+ - assets/script/decko/slotter.js.coffee
106
+ - assets/script/decko/upload.js.coffee
107
+ - assets/script/jquery-ui.js
108
+ - assets/script/jquery.autosize.js
109
+ - assets/script/manifest.yml
110
+ - assets/script/script_pointer_config.js.coffee
111
+ - assets/script/script_pointer_list_editor.js.coffee
112
+ - db/migrate_core_cards/20200804112348_add_mod_script_assets_type.rb
113
+ - file/mod_script_script_decko_machine_output/file.js
114
+ - file/mod_script_script_jquery_machine_output/file.js
94
115
  - lib/javascript/jquery.iframe-transport.js
95
116
  - lib/javascript/script_html5shiv_printshiv.js
96
- - lib/javascript/script_pointer_config.js.coffee
97
- - lib/javascript/script_pointer_list_editor.js.coffee
98
117
  - lib/javascript/theme-textmate.js
99
- - set/abstract/script.rb
118
+ - set/abstract/00_script.rb
119
+ - set/abstract/01_asset_script.rb
120
+ - set/abstract/01_java_script.rb
121
+ - set/abstract/02_coffee_script.rb
122
+ - set/abstract/03_asset_java_script.rb
123
+ - set/abstract/04_asset_coffee_script.rb
124
+ - set/abstract/script_asset_list.rb
125
+ - set/all/head_javascript.rb
100
126
  - set/right/script.rb
101
- - set/self/01_script_libraries.rb
102
127
  - set/self/script.rb
103
- - set/self/script_decko.rb
104
- - set/self/script_editors.rb
105
128
  - set/self/script_html5shiv_printshiv.rb
106
- - set/self/script_jquery.rb
107
- - set/self/script_jquery_helper.rb
108
129
  - set/self/script_mods.rb
109
- - set/self/script_pointer_config.rb
110
130
  - set/type/coffee_script.rb
111
131
  - set/type/java_script.rb
132
+ - set/type/local_script_folder_group.rb
133
+ - set/type/local_script_manifest_group.rb
134
+ - set/type/mod_script_assets.rb
112
135
  - vendor/jquery_file_upload/CONTRIBUTING.md
113
136
  - vendor/jquery_file_upload/LICENSE.txt
114
137
  - vendor/jquery_file_upload/README.md