card-mod-script 0.11.7 → 0.13.2

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 (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