layered_stack-nextjs 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: f1dbe77ae8ff3abc373cc0f8c32efa81e6c04813af1076e5069bc90dbd99a9ac
4
+ data.tar.gz: 7eedc2bb172ace0c6c0feec5302f87855bcf8de3bb637d39b39bd0bb15085225
5
+ SHA512:
6
+ metadata.gz: 85759fe25a455f488ce0df904dbd22ddbbe569b953941771d4a0c719fac4606ca240b6fad05c2118ca847fc452e1b1c37bbe6cc2de28dce705860c1e965a452e
7
+ data.tar.gz: 06513dc4d095fabe041b9da5200b89b1cbc2ac0216638459005a1c04ac97799a050ecfd28a76f76be46b8feaa5747cba9a9844d0523cfa492834f6bd57d01c0b
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby -wU
2
+ require 'layered_stack_nextjs'
3
+ LayeredStackNextjs::Cli.start(ARGV)
@@ -0,0 +1,25 @@
1
+ require 'fileutils'
2
+ require 'erb'
3
+
4
+ module LayeredStackNextjs
5
+ class PageGenerator
6
+ TEMPLATE_SOURCE = File.expand_path('templates', __dir__).freeze
7
+
8
+ def create(page_name)
9
+ template_content = File.read(File.join(TEMPLATE_SOURCE, 'page.jsx.tt'))
10
+ template = ERB.new(template_content)
11
+
12
+ page_name_capitalized = page_name.split('_').map(&:capitalize).join
13
+
14
+ result = template.result_with_hash(
15
+ page_name_capitalized: page_name_capitalized,
16
+ page_name: page_name
17
+ )
18
+
19
+ dir_path = "frontend/src/app/#{page_name}"
20
+ FileUtils.mkdir_p(dir_path)
21
+
22
+ File.write("#{dir_path}/page.jsx", result)
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,7 @@
1
+ export default function <%= page_name_capitalized %>() {
2
+ return (
3
+ <div>
4
+ <h1>Welcome to the <%= page_name %> page!</h1>
5
+ </div>
6
+ );
7
+ }
@@ -0,0 +1,43 @@
1
+ require 'thor'
2
+ require 'logger'
3
+ require 'yaml'
4
+ require_relative '../generators/page_generator'
5
+
6
+ module LayeredStackNextjs
7
+ class Generate < Thor
8
+ def self.execute
9
+ new.execute
10
+ end
11
+
12
+ no_commands do
13
+ def execute
14
+ logger.info("> layered_stack-nextjs/generate")
15
+
16
+ yaml_content = YAML.load_file(File.join("app.yml"))
17
+ screens = yaml_content["screens"]
18
+ screens.each do |screen|
19
+ screen.each do |screen_name, screen_data|
20
+ if screen_data
21
+ logger.info("Generating screen #{screen_name}")
22
+ LayeredStackNextjs::PageGenerator.new.create(screen_name)
23
+ screen_data["sections"].each do |section|
24
+ section.each do |section_name, section_data|
25
+ logger.info("Section: #{section_name}")
26
+ logger.info("Section data: #{section_data}")
27
+ end
28
+ end
29
+ else
30
+ logger.error("Screen #{screen_name} not found in app.yml")
31
+ end
32
+ end
33
+ end
34
+ end
35
+
36
+ private
37
+
38
+ def logger
39
+ @logger ||= Logger.new(STDOUT)
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module LayeredStackNextjs
4
+ VERSION = '0.0.1'
5
+ end
@@ -0,0 +1,14 @@
1
+ require 'thor'
2
+ require 'fileutils'
3
+
4
+ # Require all .rb files in the layered_stack_nextjs folder recursively
5
+ Dir[File.join(__dir__, 'layered_stack_nextjs/**/*.rb')].each { |file| require_relative file }
6
+
7
+ module LayeredStackNextjs
8
+ class Cli < Thor
9
+ desc "generate", "Generates resources from ../app.yml"
10
+ def generate
11
+ LayeredStackNextjs::Generate.execute
12
+ end
13
+ end
14
+ end
metadata ADDED
@@ -0,0 +1,66 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: layered_stack-nextjs
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Layered Stack
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2024-09-22 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: thor
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.3.2
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.3.2
27
+ description: NextJS tools for Layered Stack
28
+ email:
29
+ - support@layeredstack.org
30
+ executables:
31
+ - layered_stack-nextjs
32
+ extensions: []
33
+ extra_rdoc_files: []
34
+ files:
35
+ - bin/layered_stack-nextjs
36
+ - lib/generators/page_generator.rb
37
+ - lib/generators/templates/page.jsx.tt
38
+ - lib/layered_stack_nextjs.rb
39
+ - lib/layered_stack_nextjs/generate.rb
40
+ - lib/layered_stack_nextjs/version.rb
41
+ homepage: https://www.layeredstack.org/
42
+ licenses:
43
+ - MIT
44
+ metadata:
45
+ homepage_uri: https://www.layeredstack.org/
46
+ source_code_uri: https://github.com/LayeredStack/nextjs
47
+ post_install_message:
48
+ rdoc_options: []
49
+ require_paths:
50
+ - lib
51
+ required_ruby_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: 3.3.4
56
+ required_rubygems_version: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ requirements: []
62
+ rubygems_version: 3.5.11
63
+ signing_key:
64
+ specification_version: 4
65
+ summary: Layered Stack NextJS
66
+ test_files: []