pagehook-rails 0.0.12 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e38510872d144722cfaaa545e9d8b8232dae194232fe8e6b9e69c16f72fc9af0
4
- data.tar.gz: c604c0bb14c6d6874c5e40f101d4da8fa1477592d3b785422e6a24f05c6e9b9c
3
+ metadata.gz: a1233e455124a9255cf37b940682d2df66e7eafc0e76ebd683f4eeebb0ef8623
4
+ data.tar.gz: 7ae8e6be99a95183bbb6879accb037f898f8eb0aa9614283c430a30144d6fedc
5
5
  SHA512:
6
- metadata.gz: 29748110d76e55d055e10f4d0d36071b162f72c2846b689cf81c2fe213d62b8aa473dbba91a8e3660d9506e75b8935d4a93b93ef91b0e61cdcec1ea759622f5b
7
- data.tar.gz: 8a9018066c860df05caec9891e7542846a3a2c0673fd9e5fc5982c1fb775a3bcbf9ec8c57240f86ea3a4c0105ba632043a0cbdad8bf902bbd960c810190d58d7
6
+ metadata.gz: 85584053052956a9daea5450062c42d6f4086f6919411a648c0aa9db484e6d56d671f7e268b2221fc5ed23ad4eef03bd07f51053ae79ec6dcd30953e7ba804c5
7
+ data.tar.gz: ac5cc2da3288405507820c6825c14675a771b40ffd4d9d2e8925252166bc9fef26f5e2efeb4ab18951bc8c078b13be25993d636f0336e0c1df28d6e02f8a9878
data/README.md CHANGED
@@ -15,9 +15,7 @@ And then execute:
15
15
 
16
16
  $ bundle
17
17
  $ rails g pagehook:install
18
- # Or `rails g pagehook:install --lang coffee` if you like CoofeeScript
19
-
20
- If you use turbolinks, you should load `pagehook_rails` after `turbolinks` in `app/assets/javascripts/application.js`.
18
+ # Or `rails g pagehook:install --lang js` if you dont use TypeScript
21
19
 
22
20
 
23
21
  View helper
@@ -25,7 +23,7 @@ View helper
25
23
 
26
24
  `pagehook` view helper method generates "trigger element".
27
25
 
28
- <%= pagehook("articles/index", id: 123) %>
26
+ <%= pagehook("articles/index", {id: 123}) %>
29
27
 
30
28
  This generates following HTML.
31
29
 
@@ -38,15 +36,14 @@ Generator
38
36
  `rails g pagehook path/to/view` generates hook definition template.
39
37
 
40
38
  $ rails g pagehook articles/index
41
- create app/assets/javascripts/pagehook/articles/index.coffee
42
- $ cat app/assets/javascripts/pagehook/articles/index.coffee
43
- //= require pagehook_rails
44
- Pagehook.register("articles/index", function(data) {
45
- // Your code
39
+ create app/javascript/pagehook/articles/index.ts
40
+ $ cat app/javascript/pagehook/articles/index.ts
41
+ import Pagehook from "pagehook"
42
+ Pagehook.register("articles/index", (data: any) => {
43
+ console.log(data);
46
44
  });
47
45
 
48
-
49
- You can also do `rails g pagehook path/to/view --lang coffee` to generate .coffee rather than .js.
46
+ You can also do `rails g pagehook path/to/view --lang js` to generate .js rather than .ts.
50
47
 
51
48
 
52
49
  Contributing
@@ -1,17 +1,30 @@
1
1
  module Pagehook
2
2
  class InstallGenerator < Rails::Generators::Base
3
3
  source_root File.expand_path("../templates", __FILE__)
4
- class_option :lang, type: :string, default: "js"
4
+ class_option :lang, type: :string, default: "ts"
5
+
6
+ def install
7
+ run "yarn add pagehook@^0.1.4"
8
+ end
5
9
 
6
10
  def copy_loader
7
11
  case options[:lang].downcase
8
- when "coffee", "coffeescript"
9
- copy_file "pagehook_rails.coffee", "app/assets/javascripts/pagehook_rails.coffee"
10
12
  when "js", "javascript"
11
- copy_file "pagehook_rails.js", "app/assets/javascripts/pagehook_rails.js"
13
+ copy_file "pagehook_rails.js", "app/javascript/pagehook_rails.js"
14
+ copy_file "global.js", "app/javascript/pagehook/global.js"
15
+ when "ts", "typescript"
16
+ copy_file "pagehook_rails.ts", "app/javascript/pagehook_rails.ts"
17
+ copy_file "global.ts", "app/javascript/pagehook/global.ts"
12
18
  else
13
19
  raise "Unknown language: #{lang}"
14
20
  end
21
+
22
+ case
23
+ when File.exists?("app/javascript/packs/application.ts")
24
+ append_file_with_newline "app/javascript/packs/application.ts", %(\nimport "../pagehook_rails")
25
+ when File.exists?("app/javascript/packs/application.js")
26
+ append_file_with_newline "app/javascript/packs/application.js", %(\nimport "../pagehook_rails")
27
+ end
15
28
  end
16
29
  end
17
30
  end
@@ -0,0 +1,4 @@
1
+ import Pagehook from "pagehook"
2
+ Pagehook.register("@global", function() {
3
+ // Your code
4
+ });
@@ -0,0 +1,4 @@
1
+ import Pagehook from "pagehook"
2
+ Pagehook.register("@global", () => {
3
+ // Your code
4
+ });
@@ -1,8 +1,13 @@
1
- //= require pagehook_rails/pagehook
2
1
  // Register event handler
3
- if (typeof(Turbolinks) === "undefined") {
4
- document.addEventListener("DOMContentLoaded", Pagehook.handler);
5
- } else {
6
- document.addEventListener("turbolinks:load", Pagehook.handler);
7
- document.addEventListener("page:load", Pagehook.handler);
8
- }
2
+ import Pagehook from "pagehook";
3
+ document.addEventListener("DOMContentLoaded", Pagehook.handler);
4
+
5
+ const requireHook = require.context(
6
+ "./pagehook",
7
+ true, // Whether or not to look in subfolders
8
+ /[a-z0-9_]+\.(js|ts)$/u,
9
+ );
10
+
11
+ requireHook.keys().forEach((fileName) => {
12
+ requireHook(fileName);
13
+ });
@@ -0,0 +1,22 @@
1
+ // Register event handler
2
+ import Pagehook from "pagehook";
3
+ document.addEventListener("DOMContentLoaded", Pagehook.handler);
4
+
5
+ // Require all hooks in ./pagehook
6
+ interface RequireHook {
7
+ (fileName: string): object | {default: object};
8
+ keys: () => string[];
9
+ }
10
+ interface NodeRequireWithContext extends NodeRequire {
11
+ context: (a: string, b: boolean, c: RegExp) => RequireHook;
12
+ }
13
+
14
+ const requireHook = (require as NodeRequireWithContext).context(
15
+ "./pagehook",
16
+ true, // Whether or not to look in subfolders
17
+ /[a-z0-9_]+\.(js|ts)$/u,
18
+ );
19
+
20
+ requireHook.keys().forEach((fileName: string) => {
21
+ requireHook(fileName);
22
+ });
@@ -1,13 +1,13 @@
1
1
  class PagehookGenerator < Rails::Generators::NamedBase
2
2
  source_root File.expand_path("../templates", __FILE__)
3
- class_option :lang, type: :string, default: "js"
3
+ class_option :lang, type: :string, default: "ts"
4
4
 
5
5
  def generate_script
6
6
  case options[:lang].downcase
7
- when "coffee", "coffeescript"
8
- template "hook.coffee.erb", "app/assets/javascripts/pagehook/#{view_path}.coffee"
9
7
  when "js", "javascript"
10
- template "hook.js.erb", "app/assets/javascripts/pagehook/#{view_path}.js"
8
+ template "hook.js.erb", "app/javascript/pagehook/#{view_path}.js"
9
+ when "ts", "typescript"
10
+ template "hook.ts.erb", "app/javascript/pagehook/#{view_path}.ts"
11
11
  else
12
12
  raise "Unknown language: #{lang}"
13
13
  end
@@ -1,4 +1,4 @@
1
- //= require pagehook_rails
1
+ import Pagehook from "pagehook"
2
2
  Pagehook.register("<%= view_path %>", function(data) {
3
- // Your code
3
+ // Your code
4
4
  });
@@ -0,0 +1,4 @@
1
+ import Pagehook from "pagehook"
2
+ Pagehook.register("<%= view_path %>", (data: any) => {
3
+ // Your code
4
+ });
@@ -3,7 +3,7 @@ module PagehookRails
3
3
  isolate_namespace PagehookRails
4
4
 
5
5
  initializer "pagehook-rails.action_controller" do |app|
6
- ActiveSupport.on_load :action_controller do
6
+ Rails.application.reloader.to_prepare do
7
7
  ActionController::Base.helper PagehookRails::PagehookHelper
8
8
  end
9
9
  end
@@ -1,3 +1,3 @@
1
1
  module PagehookRails
2
- VERSION = "0.0.12"
2
+ VERSION = "0.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pagehook-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - labocho
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-11-05 00:00:00.000000000 Z
11
+ date: 2022-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '3.1'
19
+ version: '6.1'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '3.1'
26
+ version: '6.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: loofah
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -42,18 +42,32 @@ dependencies:
42
42
  name: nokogiri
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 1.8.1
47
+ version: 1.10.4
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 1.8.1
54
+ version: 1.10.4
55
55
  - !ruby/object:Gem::Dependency
56
- name: sqlite3
56
+ name: bootsnap
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: listen
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - ">="
@@ -80,6 +94,20 @@ dependencies:
80
94
  - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: sqlite3
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '1.4'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '1.4'
83
111
  description: Rails plugin integrates Pagehook (https://github.com/labocho/pagehook)
84
112
  email:
85
113
  - labocho@penguinlab.jp
@@ -90,21 +118,22 @@ files:
90
118
  - MIT-LICENSE
91
119
  - README.md
92
120
  - Rakefile
93
- - app/assets/javascripts/pagehook_rails/pagehook.js
94
121
  - app/helpers/pagehook_rails/pagehook_helper.rb
95
122
  - lib/generators/pagehook/install/install_generator.rb
96
- - lib/generators/pagehook/install/templates/pagehook_rails.coffee
123
+ - lib/generators/pagehook/install/templates/global.js
124
+ - lib/generators/pagehook/install/templates/global.ts
97
125
  - lib/generators/pagehook/install/templates/pagehook_rails.js
126
+ - lib/generators/pagehook/install/templates/pagehook_rails.ts
98
127
  - lib/generators/pagehook/pagehook_generator.rb
99
- - lib/generators/pagehook/templates/hook.coffee.erb
100
128
  - lib/generators/pagehook/templates/hook.js.erb
129
+ - lib/generators/pagehook/templates/hook.ts.erb
101
130
  - lib/pagehook-rails.rb
102
131
  - lib/pagehook-rails/engine.rb
103
132
  - lib/pagehook-rails/version.rb
104
133
  homepage: https://github.com/labocho/pagehook-rails
105
134
  licenses: []
106
135
  metadata: {}
107
- post_install_message:
136
+ post_install_message:
108
137
  rdoc_options: []
109
138
  require_paths:
110
139
  - lib
@@ -119,9 +148,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
119
148
  - !ruby/object:Gem::Version
120
149
  version: '0'
121
150
  requirements: []
122
- rubyforge_project:
123
- rubygems_version: 2.7.6
124
- signing_key:
151
+ rubygems_version: 3.3.3
152
+ signing_key:
125
153
  specification_version: 4
126
154
  summary: Rails plugin integrates Pagehook (https://github.com/labocho/pagehook)
127
155
  test_files: []
@@ -1,82 +0,0 @@
1
- !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var o;"undefined"!=typeof window?o=window:"undefined"!=typeof global?o=global:"undefined"!=typeof self&&(o=self),o.Pagehook=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
2
- "use strict";
3
-
4
- // constructor
5
- var Pagehook = function() {
6
- this.definitions = {};
7
- this.handler = this.handlerUnbound.bind(this);
8
- };
9
-
10
- // constant
11
- Pagehook.GLOBAL_HOOK_NAME = "@global";
12
- Pagehook.ATTRIBUTE_NAME = "data-pagehook";
13
-
14
- // static methods
15
- Pagehook.register = function(name_or_map, func) {
16
- this.instance.register(name_or_map, func);
17
- };
18
-
19
- Pagehook.dispatch = function(name, arg) {
20
- this.instance.dispatch(name, arg);
21
- };
22
-
23
- // Pagehook.register "name", (arg)-> ...
24
- // // or
25
- // Pagehoook.register
26
- // name: (arg)->
27
- Pagehook.prototype.register = function(name_or_map, func) {
28
- var name;
29
-
30
- if (typeof(name_or_map) === "string") {
31
- if (!this.definitions[name_or_map]) {
32
- this.definitions[name_or_map] = [];
33
- }
34
- this.definitions[name_or_map].push(func);
35
- } else {
36
- for (name in name_or_map) {
37
- this.register(name, name_or_map[name]);
38
- }
39
- }
40
- };
41
-
42
- // Pagehook.dispatch("name", {foo: 1, bar: 2})
43
- Pagehook.prototype.dispatch = function(name, arg) {
44
- if (this.definitions[name]) {
45
- this.definitions[name].forEach(function(func) {
46
- func(arg);
47
- });
48
- } else {
49
- if (name !== Pagehook.GLOBAL_HOOK_NAME) {
50
- console.log("Pagehook for " + name + " is undefined");
51
- }
52
- }
53
- };
54
-
55
- // Event handler for DOMContentLoaded or turbolinks:load (turbolinks)
56
- // Use `handler` property instead of this
57
- Pagehook.prototype.handlerUnbound = function() {
58
- var elements, i, e, name, arg;
59
-
60
- this.dispatch(Pagehook.GLOBAL_HOOK_NAME);
61
-
62
- elements = document.querySelectorAll("[" + Pagehook.ATTRIBUTE_NAME + "]");
63
- for (i = 0; i < elements.length; i++) {
64
- e = elements[i];
65
- name = e.getAttribute(Pagehook.ATTRIBUTE_NAME);
66
- arg = this.isBlank(e.textContent) ? undefined : JSON.parse(e.textContent);
67
- this.dispatch(name, arg);
68
- }
69
- };
70
-
71
- Pagehook.prototype.isBlank = function(string) {
72
- return !!(string.match(/^\s*$/));
73
- };
74
-
75
- // instanciate singleton object
76
- Pagehook.instance = new Pagehook();
77
- Pagehook.handler = Pagehook.instance.handler;
78
-
79
- module.exports = Pagehook;
80
-
81
- },{}]},{},[1])(1)
82
- });
@@ -1,7 +0,0 @@
1
- #= require pagehook_rails/pagehook
2
- # Register event handler
3
- if typeof(Turbolinks) == "undefined"
4
- document.addEventListener("DOMContentLoaded", Pagehook.handler)
5
- else
6
- document.addEventListener("turbolinks:load", Pagehook.handler)
7
- document.addEventListener("page:load", Pagehook.handler)
@@ -1,3 +0,0 @@
1
- #= require pagehook_rails
2
- Pagehook.register "<%= view_path %>", (data) ->
3
- # Your code