js_generator 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ccd932f58631b5d8283c9efd1dcfcba05f98be590d217e2fff97400efa03c89
4
- data.tar.gz: d5321b751356cd4b1ae09039ec1e262f6353845622cb5bab80a8f7ca85b5e7b2
3
+ metadata.gz: 88afa71a7677e1054d6cc26bf8ab941c1d8ca3e7cfcaa8871fa7db12db4a0021
4
+ data.tar.gz: e9e09056120f59f969a0f5846d26b5543f1a98eeb824dd2afdb4e5373daa04a6
5
5
  SHA512:
6
- metadata.gz: eb460c52a67baeecbb05256a19e0d5cd91414d9754a84676887407d4abc927e08d9c0235f12736fcfb835ab1d69a67d4111bc5fb0a075bc8c9d87bb858538f6e
7
- data.tar.gz: 534eff68babe22e0df2831e70e7c02f9b6e9aa85484a8b29cb76b2daf4c2e119dc62c619c4a6cedb75e6381f1fe1d315435b7946aea8f1d6dc0813d2a57fca44
6
+ metadata.gz: cac54a91960d699fa10536ee03200f7f5e899c928a12b4cfd909661ae8580bc38f586d434b4c947eef32b6be943909628a7cb3e2b29b73448796f0df554a72e0
7
+ data.tar.gz: ce9fe42f6f38018f1462110adc3c23ce55f88da629ecde0713468e442e00b92b643029ac44b4878a8fe7ca9b7bcfe527bfce79f8f611c4396703659b69877d60
@@ -1,17 +1,14 @@
1
1
  require 'dotenv'
2
2
  Dotenv.load
3
- require_relative './syntax_builder/namespaced'
3
+ require_relative './syntax_builder/with_namespace'
4
4
  require_relative './syntax_builder/without_namespace'
5
5
 
6
6
  module JsGenerator
7
7
  class AppJs
8
- attr_reader :namespace, :model_name, :action_name, :top_level_js_namespace
8
+ attr_reader :syntax_builder
9
9
 
10
- def initialize(setup_js)
11
- @namespace = setup_js.namespace
12
- @model_name = setup_js.model_name
13
- @action_name = setup_js.action_name
14
- @top_level_js_namespace = setup_js.top_level_js_namespace
10
+ def initialize(syntax_builder)
11
+ @syntax_builder = syntax_builder
15
12
  end
16
13
 
17
14
  def append_script
@@ -19,19 +16,5 @@ module JsGenerator
19
16
  f << syntax_builder.script_for_append
20
17
  end
21
18
  end
22
-
23
- def action_namespace
24
- syntax_builder.action_namespace
25
- end
26
-
27
- private
28
-
29
- def syntax_builder
30
- if namespace.present?
31
- SyntaxBuilder::Namespaced.new(self)
32
- else
33
- SyntaxBuilder::WithoutNamespaced.new(self)
34
- end
35
- end
36
19
  end
37
20
  end
@@ -3,11 +3,11 @@ module JsGenerator
3
3
  class SyntaxBuilderBase
4
4
  attr_reader :namespace, :model_name, :action_name, :top_level_js_namespace
5
5
 
6
- def initialize(app_js)
7
- @namespace = app_js.namespace
8
- @model_name = app_js.model_name
9
- @action_name = app_js.action_name
10
- @top_level_js_namespace = app_js.top_level_js_namespace
6
+ def initialize(setup_js)
7
+ @namespace = setup_js.namespace
8
+ @model_name = setup_js.model_name
9
+ @action_name = setup_js.action_name
10
+ @top_level_js_namespace = setup_js.top_level_js_namespace
11
11
  end
12
12
 
13
13
  private
@@ -2,7 +2,7 @@ require_relative './syntax_builder_base'
2
2
 
3
3
  module JsGenerator
4
4
  module SyntaxBuilder
5
- class Namespaced < SyntaxBuilderBase
5
+ class WithNamespace < SyntaxBuilderBase
6
6
  def action_namespace
7
7
  "window.#{top_level_js_namespace}.#{namespace.capitalize}.#{model_name.capitalize.pluralize}.#{action_name.capitalize}"
8
8
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module JsGenerator
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
@@ -1,15 +1,15 @@
1
1
  module JsGenerator
2
2
  class ViewFile
3
- attr_reader :namespace, :model_name, :action_name, :setup_js
3
+ attr_reader :namespace, :model_name, :action_name, :syntax_builder
4
4
 
5
- def initialize(setup_js)
5
+ def initialize(setup_js, syntax_builder)
6
6
  @namespace = setup_js.namespace
7
7
  @model_name = setup_js.model_name
8
8
  @action_name = setup_js.action_name
9
- @setup_js = setup_js
9
+ @syntax_builder = syntax_builder
10
10
  end
11
11
 
12
- def append_script
12
+ def append_script_tag
13
13
  File.open(file_path, 'a') { |f| f << script_tag }
14
14
  end
15
15
 
@@ -22,7 +22,7 @@ module JsGenerator
22
22
  def script_tag
23
23
  <<~TEXT
24
24
  <script>
25
- #{AppJs.new(setup_js).action_namespace}();
25
+ #{syntax_builder.action_namespace}();
26
26
  </script>
27
27
  TEXT
28
28
  end
data/lib/js_generator.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative "js_generator/version"
3
+ require 'active_support/core_ext/module/delegation'
4
+ require_relative 'js_generator/version'
4
5
  require_relative 'js_generator/js_for_view'
5
6
  require_relative 'js_generator/app_js'
6
7
  require_relative 'js_generator/view_file'
@@ -24,9 +25,35 @@ module JsGenerator
24
25
  raise Error.new('Please set TOP_LEVEL_JS_NAMESPACE in .env')
25
26
  end
26
27
 
27
- JsForView.new(self).create_file
28
- AppJs.new(self).append_script
29
- ViewFile.new(self).append_script
28
+ create_file
29
+ append_script
30
+ append_script_tag
31
+ end
32
+
33
+ delegate :create_file, to: :js_for_view
34
+ delegate :append_script, to: :app_js
35
+ delegate :append_script_tag, to: :view_file
36
+
37
+ private
38
+
39
+ def js_for_view
40
+ JsForView.new(self)
41
+ end
42
+
43
+ def app_js
44
+ AppJs.new(syntax_builder)
45
+ end
46
+
47
+ def view_file
48
+ ViewFile.new(self, syntax_builder)
49
+ end
50
+
51
+ def syntax_builder
52
+ if namespace.present?
53
+ SyntaxBuilder::WithNamespace.new(self)
54
+ else
55
+ SyntaxBuilder::WithoutNamespaced.new(self)
56
+ end
30
57
  end
31
58
  end
32
59
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: js_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - kenzo-tanaka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-27 00:00:00.000000000 Z
11
+ date: 2021-11-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dotenv
@@ -45,8 +45,8 @@ files:
45
45
  - lib/js_generator.rb
46
46
  - lib/js_generator/app_js.rb
47
47
  - lib/js_generator/js_for_view.rb
48
- - lib/js_generator/syntax_builder/namespaced.rb
49
48
  - lib/js_generator/syntax_builder/syntax_builder_base.rb
49
+ - lib/js_generator/syntax_builder/with_namespace.rb
50
50
  - lib/js_generator/syntax_builder/without_namespace.rb
51
51
  - lib/js_generator/version.rb
52
52
  - lib/js_generator/view_file.rb