k_builder 0.0.19 → 0.0.20

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: f81ce6d464232f632884a2d3c1e04c180551644bf5ce9202a4a5d4a2e20d5c40
4
- data.tar.gz: bdc67f51753f3b63944b88ad3f739ba4710bf0981190fd9d7b8ce69eea6493aa
3
+ metadata.gz: 233147b0fb7e62c215440174858e3e2d4d8a88be8eb0ffa2b86b477999df32da
4
+ data.tar.gz: d27c54f6cb2191ec43b9f01c05d681ccc1e6fb944acf89fac58ab21536fa7447
5
5
  SHA512:
6
- metadata.gz: db0ac5f45c53b1a4d7d58e9acfd5bd106402039f1d28d81c998d3279f4b1177980817b284362cd272853735f02eb492a8d131cbcade21dacf707132269b84c75
7
- data.tar.gz: 24ff7bfeefa7db10f9a028cbda7695f171a5d7d6095be2a23637a9d3e7e727323512962414d5236d6961d4864aa4aad3521770f33120f2df07740671878a9e70
6
+ metadata.gz: 4e1ae20794f2150f94270e1d724fb7d6cf6bab372613a29d11d08f5f75ee13d73303e90738009e02ba33ebc86f5588680301a670502a723b276f233e20985b62
7
+ data.tar.gz: 566b9f413d35f10f503f12e3832ef7c804a0a6022d33a058769cc46c419989ce410cb70ff10b6646f360c9c6c9a9a3e54676de9686f06be88779f468fb2544bf
data/README.md CHANGED
@@ -1,29 +1,6 @@
1
1
  # K Builder
2
2
 
3
- > K Builder provides various fluent builders for initializing applications with different language requirements
4
-
5
- ## ToDo
6
-
7
- - BuildWatcher (as a builder)
8
- - AppBuilder
9
- - BaseBuilder
10
- - WebBuilder
11
- - PackageBuilder
12
- - Webpack5Builder
13
- - ReactBuilder
14
- - SlideDeckBuilder
15
- - JavscriptBuilder
16
- - SolutionBuilder
17
- - DotnetBuilder
18
- - C#Console
19
- - C#Mvc
20
- - RubyBuilder
21
- - RubyGem
22
- - RailsApp
23
- - PythonBuilder
24
- - DddBuilder
25
- - DddGenerator
26
-
3
+ > KBuilder provides various fluent builders and code generators for initializing applications with different language requirements
27
4
 
28
5
  ## Installation
29
6
 
@@ -59,12 +36,41 @@ See all [usage examples](./USAGE.md)
59
36
 
60
37
  ### Basic Example
61
38
 
62
- #### Basic example
39
+ #### Configure and Run
40
+
41
+ Setup configuration for KBuilder
42
+
43
+ Generate two files:
44
+
45
+ 1. main.rb is based on class.rb from app_template
46
+ 2. configuration.log.txt is based on an inline template
63
47
 
64
- Description for a basic example to be featured in the main README.MD file
48
+ Check out usage.md for more details
65
49
 
66
50
  ```ruby
67
- class SomeRuby; end
51
+ usecases_folder = File.join(Dir.getwd, 'spec', 'usecases')
52
+
53
+ KBuilder.configure do |config|
54
+ config.template_folder = File.join(usecases_folder, '.app_template')
55
+ config.global_template_folder = File.join(usecases_folder, '.global_template')
56
+ config.target_folder = File.join(usecases_folder, '.output')
57
+ end
58
+
59
+ template = <<~TEXT
60
+ Configured Template Folder : {{a}}
61
+ Configured Global Template Folder : {{b}}
62
+ Configured Output Folder : {{c}}
63
+ TEXT
64
+
65
+ builder = KBuilder::Builder.init
66
+
67
+ builder.add_file('main.rb', template_file: 'class.rb', name: 'main').add_file(
68
+ 'configuration.log.txt',
69
+ template: template,
70
+ a: builder.template_folder,
71
+ b: builder.global_template_folder,
72
+ c: builder.target_folder
73
+ )
68
74
  ```
69
75
 
70
76
  ## Development
data/STORIES.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # K Builder
2
2
 
3
- > K Builder provides various fluent builders for initializing applications with different language requirements
3
+ > KBuilder provides various fluent builders and code generators for initializing applications with different language requirements
4
4
 
5
5
  As a Polyglot Developer, I want to be up and running in any development language with consistency, so I am productive and using best practices
6
6
 
data/USAGE.md CHANGED
@@ -1,19 +1,72 @@
1
1
  # K Builder
2
2
 
3
- > K Builder provides various fluent builders for initializing applications with different language requirements
3
+ > KBuilder provides various fluent builders and code generators for initializing applications with different language requirements
4
4
 
5
5
  As a Polyglot Developer, I want to be up and running in any development language with consistency, so I am productive and using best practices
6
6
 
7
7
  ## Usage
8
8
 
9
- ### Sample Classes
9
+ ### Configure And Build
10
10
 
11
- #### Simple example
11
+ Print the configuration
12
12
 
13
- Description for a simple example that shows up in the USAGE.MD
13
+ ```ruby
14
+ config = KBuilder.configuration.to_hash
15
+ puts JSON.pretty_generate(config)
16
+ ```
17
+
18
+ ```javascript
19
+ {
20
+ "target_folder": "/Users/name/dev/kgems/k_builder/spec/usecases/.output",
21
+ "template_folder": "/Users/name/dev/kgems/k_builder/spec/usecases/.app_template",
22
+ "global_template_folder": "/Users/name/dev/kgems/k_builder/spec/usecases/.global_template"
23
+ }
24
+ ```
25
+
26
+ #### Folder Structure (starting)
27
+
28
+ Example folder structure for this usecase before running the builder
29
+
30
+ > Note: app-templates will take preference over global templates
31
+
32
+ ![](_usage_folder_before.png)
33
+
34
+ #### Run builder
35
+
36
+ This example builder will add 4 files into the output folder.
37
+
38
+ 1. main.rb is based on class.rb from app_template
39
+ 2. person.rb & address.rb are based on model.rb from global_template
40
+ 3. configuration.log.txt is based on an inline template
14
41
 
15
42
  ```ruby
16
- class SomeRuby
17
- def initialize; end
18
- end
43
+ template = <<~TEXT
44
+ Configured Template Folder : {{a}}
45
+ Configured Global Template Folder : {{b}}
46
+ Configured Output Folder : {{c}}
47
+ TEXT
48
+
49
+ builder = KBuilder::Builder.init
50
+
51
+ builder.add_file('main.rb', template_file: 'class.rb', name: 'main').add_file(
52
+ 'person.rb',
53
+ template_file: 'model.rb', name: 'person', fields: %i[first_name last_name]
54
+ ).add_file(
55
+ 'address.rb',
56
+ template_file: 'model.rb',
57
+ name: 'address',
58
+ fields: %i[street1 street2 post_code state]
59
+ ).add_file(
60
+ 'configuration.log.txt',
61
+ template: template,
62
+ a: builder.template_folder,
63
+ b: builder.global_template_folder,
64
+ c: builder.target_folder
65
+ ).add_file('css/index.css', template_file: 'class.rb', colors: 'main')
19
66
  ```
67
+
68
+ #### Folder Structure (after)
69
+
70
+ Folder structure after running the builder
71
+
72
+ ![](_usage_folder_after.png)
Binary file
Binary file
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KBuilder
4
- VERSION = '0.0.19'
4
+ VERSION = '0.0.20'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: k_builder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.19
4
+ version: 0.0.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-13 00:00:00.000000000 Z
11
+ date: 2021-03-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: handlebars-helpers
@@ -44,6 +44,8 @@ files:
44
44
  - Rakefile
45
45
  - STORIES.md
46
46
  - USAGE.md
47
+ - _usage_folder_after.png
48
+ - _usage_folder_before.png
47
49
  - bin/console
48
50
  - bin/k
49
51
  - bin/kgitsync