k_builder 0.0.19 → 0.0.20

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