k_builder 0.0.16 → 0.0.26
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 +4 -4
- data/README.md +33 -27
- data/STORIES.md +1 -1
- data/USAGE.md +92 -7
- data/k_builder.gemspec +3 -2
- data/lib/k_builder.rb +3 -1
- data/lib/k_builder/base_builder.rb +33 -26
- data/lib/k_builder/base_configuration.rb +35 -0
- data/lib/k_builder/builder.rb +4 -0
- data/lib/k_builder/configuration.rb +2 -13
- data/lib/k_builder/data_helper.rb +62 -0
- data/lib/k_builder/version.rb +1 -1
- data/usage/_out1.png +0 -0
- data/usage/_out2.png +0 -0
- data/usage/_out3.png +0 -0
- data/usage/_out4.png +0 -0
- data/usage/_out5.png +0 -0
- data/usage/_usage_folder_after.png +0 -0
- data/usage/_usage_folder_before.png +0 -0
- metadata +13 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ec75b1356060e7075bd481790769fb8f3fd80112a07247fb3a5ac1f6bac36993
|
|
4
|
+
data.tar.gz: 388c3f334b6864e973a4fbfd1f41d6bdbf769c3b58fb5d72a9bafeb847e11656
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e6937c692f052d1ec7b0f6abae35cce72e775e65a962e05ca21ba5dda647cb85c3215fb465e86ba76428bffc66038727afde3ca60666920773467bc36996cbef
|
|
7
|
+
data.tar.gz: 3988883cfe6543a2c97fe56c4b99bf634b4a77c3210eccf2d1e56711d045729144aa0735edd94238c400f9ed82fcf7db847343949e0d04b325fa66f52c0073b6
|
data/README.md
CHANGED
|
@@ -1,29 +1,6 @@
|
|
|
1
1
|
# K Builder
|
|
2
2
|
|
|
3
|
-
>
|
|
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
|
-
####
|
|
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
|
-
|
|
48
|
+
Check out usage.md for more details
|
|
65
49
|
|
|
66
50
|
```ruby
|
|
67
|
-
|
|
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
|
-
>
|
|
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,104 @@
|
|
|
1
1
|
# K Builder
|
|
2
2
|
|
|
3
|
-
>
|
|
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
|
-
###
|
|
9
|
+
### Configure And Build
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
Description for a simple example that shows up in the USAGE.MD
|
|
11
|
+
Print the configuration
|
|
14
12
|
|
|
15
13
|
```ruby
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
usecases_folder = File.join(Dir.getwd, 'spec', 'usecases')
|
|
15
|
+
|
|
16
|
+
KBuilder.configure do |config|
|
|
17
|
+
config.template_folder = File.join(usecases_folder, '.app_template')
|
|
18
|
+
config.global_template_folder = File.join(usecases_folder, '.global_template')
|
|
19
|
+
config.target_folder = File.join(usecases_folder, '.output')
|
|
18
20
|
end
|
|
21
|
+
|
|
22
|
+
puts JSON.pretty_generate(KBuilder.configuration.to_hash)
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
```javascript
|
|
26
|
+
{
|
|
27
|
+
"target_folder": "/Users/name/dev/kgems/k_builder/spec/usecases/.output",
|
|
28
|
+
"template_folder": "/Users/name/dev/kgems/k_builder/spec/usecases/.app_template",
|
|
29
|
+
"global_template_folder": "/Users/name/dev/kgems/k_builder/spec/usecases/.global_template"
|
|
30
|
+
}
|
|
19
31
|
```
|
|
32
|
+
|
|
33
|
+
#### Folder Structure (starting)
|
|
34
|
+
|
|
35
|
+
Example folder structure for this usecase before running the builder
|
|
36
|
+
|
|
37
|
+
> Note: app-templates will take preference over global templates
|
|
38
|
+
|
|
39
|
+

|
|
40
|
+
|
|
41
|
+
#### Run builder
|
|
42
|
+
|
|
43
|
+
This example builder will add 4 files into the output folder.
|
|
44
|
+
|
|
45
|
+
1. `main.rb` is based on `class.rb` from `app_template`
|
|
46
|
+
2. `person.rb` & `address.rb` are based on `model.rb` from `global_template`
|
|
47
|
+
3. `configuration.log.txt` is based on an inline template
|
|
48
|
+
|
|
49
|
+
```ruby
|
|
50
|
+
template = <<~TEXT
|
|
51
|
+
Configured Template Folder : {{a}}
|
|
52
|
+
Configured Global Template Folder : {{b}}
|
|
53
|
+
Configured Output Folder : {{c}}
|
|
54
|
+
TEXT
|
|
55
|
+
|
|
56
|
+
builder = KBuilder::Builder.init
|
|
57
|
+
|
|
58
|
+
builder
|
|
59
|
+
.add_file('main.rb', template_file: 'class.rb', name: 'main')
|
|
60
|
+
.add_file('person.rb',
|
|
61
|
+
template_file: 'model.rb',
|
|
62
|
+
name: 'person',
|
|
63
|
+
fields: %i[first_name last_name])
|
|
64
|
+
.add_file('address.rb',
|
|
65
|
+
template_file: 'model.rb',
|
|
66
|
+
name: 'address',
|
|
67
|
+
fields: %i[street1 street2 post_code state])
|
|
68
|
+
.add_file('configuration.log.txt',
|
|
69
|
+
template: template,
|
|
70
|
+
a: builder.template_folder,
|
|
71
|
+
b: builder.global_template_folder,
|
|
72
|
+
c: builder.target_folder)
|
|
73
|
+
.add_file('css/index.css',
|
|
74
|
+
template: '{{#each colors}} .{{.}} { color: {{.}} } {{/each}}',
|
|
75
|
+
colors: ['red', 'blue', 'green'],
|
|
76
|
+
pretty: true)
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
#### Folder Structure (after)
|
|
81
|
+
|
|
82
|
+
Folder structure after running the builder
|
|
83
|
+
|
|
84
|
+

|
|
85
|
+
|
|
86
|
+
#### main.rb
|
|
87
|
+
|
|
88
|
+

|
|
89
|
+
|
|
90
|
+
#### person.rb
|
|
91
|
+
|
|
92
|
+

|
|
93
|
+
|
|
94
|
+
#### address.rb
|
|
95
|
+
|
|
96
|
+

|
|
97
|
+
|
|
98
|
+
#### configuration.log.txt
|
|
99
|
+
|
|
100
|
+

|
|
101
|
+
|
|
102
|
+
#### css/index.css
|
|
103
|
+
|
|
104
|
+

|
data/k_builder.gemspec
CHANGED
|
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
|
|
|
13
13
|
spec.description = <<-TEXT
|
|
14
14
|
K Builder provides various fluent builders for initializing applications with different language requirements
|
|
15
15
|
TEXT
|
|
16
|
-
spec.homepage = 'http://appydave.com/gems/k-builder'
|
|
16
|
+
spec.homepage = 'http://appydave.com' # /gems/k-builder'
|
|
17
17
|
spec.license = 'MIT'
|
|
18
18
|
|
|
19
19
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
|
@@ -39,5 +39,6 @@ Gem::Specification.new do |spec|
|
|
|
39
39
|
# spec.extensions = ['ext/k_builder/extconf.rb']
|
|
40
40
|
|
|
41
41
|
spec.add_dependency 'handlebars-helpers', '~> 0'
|
|
42
|
-
# spec.add_dependency
|
|
42
|
+
# spec.add_dependency "anyway_config" , ">= 2.0.0"
|
|
43
|
+
# spec.add_dependency "config" , ">= 3.0.0"
|
|
43
44
|
end
|
data/lib/k_builder.rb
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'k_builder/version'
|
|
4
|
-
require 'k_builder/configuration'
|
|
5
4
|
require 'k_builder/base_builder'
|
|
5
|
+
require 'k_builder/base_configuration'
|
|
6
6
|
require 'k_builder/builder'
|
|
7
|
+
require 'k_builder/configuration'
|
|
8
|
+
require 'k_builder/data_helper'
|
|
7
9
|
|
|
8
10
|
require 'handlebars/helpers/template'
|
|
9
11
|
|
|
@@ -70,35 +70,42 @@ module KBuilder
|
|
|
70
70
|
hash
|
|
71
71
|
end
|
|
72
72
|
|
|
73
|
-
#
|
|
74
|
-
#
|
|
75
|
-
#
|
|
76
|
-
#
|
|
77
|
-
#
|
|
78
|
-
#
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
73
|
+
# TODO
|
|
74
|
+
# Support Nesting
|
|
75
|
+
# Support Generation fo the following
|
|
76
|
+
# - fluent set_
|
|
77
|
+
# - Support setter (non-fluent)
|
|
78
|
+
# - Support getter (non-fluent)
|
|
79
|
+
|
|
80
|
+
# # builds a nested structure by either builder block or hash
|
|
81
|
+
# # @param data_structure [type=DataStructure]
|
|
82
|
+
# # @param builder [type=Builder]
|
|
83
|
+
# # @param attributes [type=Hash|DataStructure instance]
|
|
84
|
+
# # @param &block
|
|
85
|
+
# #
|
|
86
|
+
# # @return [type=Hash]
|
|
87
|
+
# def build_nested(data_structure, builder, attributes = {}, &block)
|
|
88
|
+
# if block_given?
|
|
89
|
+
# builder.build(&block).to_h
|
|
90
|
+
# else
|
|
91
|
+
# build_hash(data_structure, attributes)
|
|
92
|
+
# end
|
|
93
|
+
# end
|
|
87
94
|
|
|
88
95
|
private
|
|
89
96
|
|
|
90
|
-
#
|
|
91
|
-
# @param data_structure [type=DataStructure]
|
|
92
|
-
# @param attributes [type=Hash, DataStructure]
|
|
93
|
-
#
|
|
94
|
-
# @return [type=Hash]
|
|
95
|
-
def build_hash(data_structure, attributes)
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
end
|
|
97
|
+
# #
|
|
98
|
+
# # @param data_structure [type=DataStructure]
|
|
99
|
+
# # @param attributes [type=Hash, DataStructure]
|
|
100
|
+
# #
|
|
101
|
+
# # @return [type=Hash]
|
|
102
|
+
# def build_hash(data_structure, attributes)
|
|
103
|
+
# if attributes.is_a?(data_structure)
|
|
104
|
+
# attributes.to_h
|
|
105
|
+
# else
|
|
106
|
+
# data_structure.new(attributes).to_h
|
|
107
|
+
# end
|
|
108
|
+
# end
|
|
102
109
|
|
|
103
110
|
# Defines all of the necessary builder setter methods
|
|
104
111
|
#
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module KBuilder
|
|
4
|
+
# Base configuration object for all k_builder* GEM
|
|
5
|
+
class BaseConfiguration
|
|
6
|
+
def self.attach_to(klass_me, klass_target, accessor_name)
|
|
7
|
+
# Create a memoized getter to an instance of the attaching class (:klass_me)
|
|
8
|
+
#
|
|
9
|
+
# def third_party
|
|
10
|
+
# @third_party ||= KBuilder::ThirdPartyGem::Configuration.new
|
|
11
|
+
# end
|
|
12
|
+
klass_target.send(:define_method, accessor_name) do
|
|
13
|
+
return instance_variable_get("@#{accessor_name}") if instance_variable_defined?("@#{accessor_name}")
|
|
14
|
+
|
|
15
|
+
instance_variable_set("@#{accessor_name}", klass_me.new)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def to_hash
|
|
20
|
+
hash = {}
|
|
21
|
+
instance_variables.each do |var|
|
|
22
|
+
value = instance_variable_get(var)
|
|
23
|
+
|
|
24
|
+
value = value.to_hash if value.is_a?(KBuilder::BaseConfiguration)
|
|
25
|
+
|
|
26
|
+
hash[var.to_s.delete('@')] = value
|
|
27
|
+
end
|
|
28
|
+
hash
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def kv(name, value)
|
|
32
|
+
puts "#{name.rjust(30)} : #{value}"
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
data/lib/k_builder/builder.rb
CHANGED
|
@@ -105,11 +105,13 @@ module KBuilder
|
|
|
105
105
|
end
|
|
106
106
|
|
|
107
107
|
# Setter for template folder
|
|
108
|
+
# Refactor: Make Private
|
|
108
109
|
def template_folder=(value)
|
|
109
110
|
hash['template_folder'] = File.expand_path(value)
|
|
110
111
|
end
|
|
111
112
|
|
|
112
113
|
# Getter for template folder
|
|
114
|
+
# Refactor: generate
|
|
113
115
|
def template_folder
|
|
114
116
|
hash['template_folder']
|
|
115
117
|
end
|
|
@@ -125,11 +127,13 @@ module KBuilder
|
|
|
125
127
|
end
|
|
126
128
|
|
|
127
129
|
# Setter for global template folder
|
|
130
|
+
# Refactor: Make Private
|
|
128
131
|
def global_template_folder=(value)
|
|
129
132
|
hash['global_template_folder'] = File.expand_path(value)
|
|
130
133
|
end
|
|
131
134
|
|
|
132
135
|
# Setter for global template folder
|
|
136
|
+
# Refactor: generate
|
|
133
137
|
def global_template_folder
|
|
134
138
|
hash['global_template_folder']
|
|
135
139
|
end
|
|
@@ -20,12 +20,13 @@ module KBuilder
|
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
# Configuration class
|
|
23
|
-
class Configuration
|
|
23
|
+
class Configuration < BaseConfiguration
|
|
24
24
|
attr_accessor :target_folder
|
|
25
25
|
attr_accessor :template_folder
|
|
26
26
|
attr_accessor :global_template_folder
|
|
27
27
|
|
|
28
28
|
def initialize
|
|
29
|
+
super
|
|
29
30
|
@target_folder = Dir.getwd
|
|
30
31
|
@template_folder = File.join(Dir.getwd, '.templates')
|
|
31
32
|
@global_template_folder = nil
|
|
@@ -38,17 +39,5 @@ module KBuilder
|
|
|
38
39
|
kv 'template_folder' , template_folder
|
|
39
40
|
kv 'global_template_folder', global_template_folder
|
|
40
41
|
end
|
|
41
|
-
|
|
42
|
-
def to_hash
|
|
43
|
-
hash = {}
|
|
44
|
-
instance_variables.each { |var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
|
|
45
|
-
hash
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
private
|
|
49
|
-
|
|
50
|
-
def kv(name, value)
|
|
51
|
-
puts "#{name.rjust(30)} : #{value}"
|
|
52
|
-
end
|
|
53
42
|
end
|
|
54
43
|
end
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Attach data helper to the KBuilder module
|
|
4
|
+
module KBuilder
|
|
5
|
+
# Data helpers/utils for Kbuilder
|
|
6
|
+
class << self
|
|
7
|
+
attr_writer :data
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def self.data
|
|
11
|
+
@data ||= DataHelper.new
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Helper methods attached to the namespace for working with Data
|
|
15
|
+
#
|
|
16
|
+
# Usage: KBuilder.data.to_struct(data)
|
|
17
|
+
class DataHelper
|
|
18
|
+
# Convert a hash into a deep OpenStruct or array an array
|
|
19
|
+
# of objects into an array of OpenStruct
|
|
20
|
+
def to_struct(data)
|
|
21
|
+
case data
|
|
22
|
+
when Hash
|
|
23
|
+
OpenStruct.new(data.transform_values { |v| to_struct(v) })
|
|
24
|
+
|
|
25
|
+
when Array
|
|
26
|
+
data.map { |o| to_struct(o) }
|
|
27
|
+
|
|
28
|
+
else
|
|
29
|
+
# Some primitave type: String, True/False, Symbol or an ObjectStruct
|
|
30
|
+
data
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
|
35
|
+
def struct_to_hash(data)
|
|
36
|
+
# No test yet
|
|
37
|
+
if data.is_a?(Array)
|
|
38
|
+
return data.map { |v| v.is_a?(OpenStruct) ? struct_to_hash(v) : v }
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
data.each_pair.with_object({}) do |(key, value), hash|
|
|
42
|
+
case value
|
|
43
|
+
when OpenStruct
|
|
44
|
+
hash[key] = struct_to_hash(value)
|
|
45
|
+
when Array
|
|
46
|
+
# No test yet
|
|
47
|
+
values = value.map { |v| v.is_a?(OpenStruct) ? struct_to_hash(v) : v }
|
|
48
|
+
hash[key] = values
|
|
49
|
+
else
|
|
50
|
+
hash[key] = value
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
# rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
|
55
|
+
|
|
56
|
+
def clean_symbol(value)
|
|
57
|
+
return value if value.nil?
|
|
58
|
+
|
|
59
|
+
value.is_a?(Symbol) ? value.to_s : value
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
end
|
data/lib/k_builder/version.rb
CHANGED
data/usage/_out1.png
ADDED
|
Binary file
|
data/usage/_out2.png
ADDED
|
Binary file
|
data/usage/_out3.png
ADDED
|
Binary file
|
data/usage/_out4.png
ADDED
|
Binary file
|
data/usage/_out5.png
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
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.
|
|
4
|
+
version: 0.0.26
|
|
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-
|
|
11
|
+
date: 2021-03-15 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: handlebars-helpers
|
|
@@ -54,14 +54,23 @@ files:
|
|
|
54
54
|
- k_builder.gemspec
|
|
55
55
|
- lib/k_builder.rb
|
|
56
56
|
- lib/k_builder/base_builder.rb
|
|
57
|
+
- lib/k_builder/base_configuration.rb
|
|
57
58
|
- lib/k_builder/builder.rb
|
|
58
59
|
- lib/k_builder/configuration.rb
|
|
60
|
+
- lib/k_builder/data_helper.rb
|
|
59
61
|
- lib/k_builder/version.rb
|
|
60
|
-
|
|
62
|
+
- usage/_out1.png
|
|
63
|
+
- usage/_out2.png
|
|
64
|
+
- usage/_out3.png
|
|
65
|
+
- usage/_out4.png
|
|
66
|
+
- usage/_out5.png
|
|
67
|
+
- usage/_usage_folder_after.png
|
|
68
|
+
- usage/_usage_folder_before.png
|
|
69
|
+
homepage: http://appydave.com
|
|
61
70
|
licenses:
|
|
62
71
|
- MIT
|
|
63
72
|
metadata:
|
|
64
|
-
homepage_uri: http://appydave.com
|
|
73
|
+
homepage_uri: http://appydave.com
|
|
65
74
|
source_code_uri: https://github.com/klueless-io/k_builder
|
|
66
75
|
changelog_uri: https://github.com/klueless-io/k_builder/commits/master
|
|
67
76
|
post_install_message:
|