k_builder 0.0.23 → 0.0.25
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/USAGE.md +7 -7
- data/lib/k_builder/base_configuration.rb +19 -90
- data/lib/k_builder/version.rb +1 -1
- data/{_out1.png → usage/_out1.png} +0 -0
- data/{_out2.png → usage/_out2.png} +0 -0
- data/{_out3.png → usage/_out3.png} +0 -0
- data/{_out4.png → usage/_out4.png} +0 -0
- data/{_out5.png → usage/_out5.png} +0 -0
- data/{_usage_folder_after.png → usage/_usage_folder_after.png} +0 -0
- data/{_usage_folder_before.png → usage/_usage_folder_before.png} +0 -0
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: abc9118f3f615884f1f0176c77ecfffa90bdf5d198c2c4d554df2a4c524b2ea6
|
4
|
+
data.tar.gz: c40ea449aaad67a03c946b9fbe5e9e132917e7632138b9321c74b925c10f8560
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e1b1ff0f3c742e69305d1dbd3b6ec1a34a70c0b9bf0a4a2f9ab0e25451dfba4a873281b65fd13af217c9785a4e795cfc7eb766da395d8f14bcf1012ddb51a37
|
7
|
+
data.tar.gz: e7fd23e135807ebf5f491765ba854fb0fe8ac0fcec1e5f3963e974ae6c1d40d8344dc46685c270b2141279ab3dcf8a7ad4cc906a34a965f8106e22845711eff9
|
data/USAGE.md
CHANGED
@@ -36,7 +36,7 @@ Example folder structure for this usecase before running the builder
|
|
36
36
|
|
37
37
|
> Note: app-templates will take preference over global templates
|
38
38
|
|
39
|
-

|
39
|
+

|
40
40
|
|
41
41
|
#### Run builder
|
42
42
|
|
@@ -81,24 +81,24 @@ builder
|
|
81
81
|
|
82
82
|
Folder structure after running the builder
|
83
83
|
|
84
|
-

|
84
|
+

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

|
88
|
+

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

|
92
|
+

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

|
96
|
+

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

|
100
|
+

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

|
104
|
+

|
@@ -3,104 +3,33 @@
|
|
3
3
|
module KBuilder
|
4
4
|
# Base configuration object for all k_builder* GEM
|
5
5
|
class BaseConfiguration
|
6
|
-
def
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
# All of this code should be extracted into a module
|
17
|
-
#
|
18
|
-
# The module should then be extracted out into a GEM so that
|
19
|
-
# I can include it as needed. The GEM might be called
|
20
|
-
# (dynamic attributes) and would allow a regular class to act like an OpenStruct
|
21
|
-
# K-DSL uses data hash, while base configuration uses instance variables
|
22
|
-
|
23
|
-
def respond_to_missing?(name, *_args, &_block)
|
24
|
-
# puts 'respond_to_missing?'
|
25
|
-
# puts "respond_to_missing: #{name}"
|
26
|
-
n = name.to_s
|
27
|
-
n = n[0..-2] if n.end_with?('=')
|
28
|
-
|
29
|
-
if n.end_with?('?')
|
30
|
-
super
|
31
|
-
else
|
32
|
-
# This has not been fully tested
|
33
|
-
instance_variable_defined?("@#{n}") || super
|
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)
|
34
16
|
end
|
35
17
|
end
|
36
18
|
|
37
|
-
def
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
add_getter_or_param_method(name)
|
42
|
-
add_setter_method(name)
|
43
|
-
|
44
|
-
send(name, args[0]) if args.length == 1 # name.end_with?('=')
|
45
|
-
|
46
|
-
super unless self.class.method_defined?(name)
|
47
|
-
end
|
48
|
-
|
49
|
-
# Handles Getter method and method with single parameter
|
50
|
-
# object.my_name
|
51
|
-
# object.my_name('david')
|
52
|
-
def add_getter_or_param_method(name)
|
53
|
-
# L.progress(1, 'add_getter_or_param_method')
|
54
|
-
self.class.class_eval do
|
55
|
-
# L.progress(2, 'add_getter_or_param_method')
|
56
|
-
name = name.to_s.gsub(/=$/, '')
|
57
|
-
# L.progress(3, 'add_getter_or_param_method')
|
58
|
-
# L.kv 'name', name
|
59
|
-
define_method(name) do |*args|
|
60
|
-
# L.progress(4, 'add_getter_or_param_method')
|
61
|
-
# L.kv 'add_getter_or_param_method', name
|
62
|
-
raise KBuilder::Error, 'Multiple setting values is not supported' if args.length > 1
|
19
|
+
def to_hash
|
20
|
+
hash = {}
|
21
|
+
instance_variables.each do |var|
|
22
|
+
value = instance_variable_get(var)
|
63
23
|
|
64
|
-
|
65
|
-
get_value(name)
|
66
|
-
else
|
67
|
-
send("#{name}=", args[0])
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
24
|
+
value = value.to_hash if value.is_a?(KBuilder::BaseConfiguration)
|
72
25
|
|
73
|
-
|
74
|
-
# object.my_name = 'david'
|
75
|
-
def add_setter_method(name)
|
76
|
-
# L.progress(1, 'add_setter_method')
|
77
|
-
self.class.class_eval do
|
78
|
-
# L.progress(2, 'add_setter_method')
|
79
|
-
name = name.to_s.gsub(/=$/, '')
|
80
|
-
# L.progress(3, 'add_setter_method')
|
81
|
-
# L.kv 'add_setter_method', name
|
82
|
-
define_method("#{name}=") do |value|
|
83
|
-
# L.progress(4, 'add_setter_method')
|
84
|
-
# L.kv 'name', name
|
85
|
-
# L.kv 'value', value
|
86
|
-
instance_variable_set("@#{name}", value)
|
87
|
-
# my_data[name.to_s] = value
|
88
|
-
end
|
26
|
+
hash[var.to_s.delete('@')] = value
|
89
27
|
end
|
28
|
+
hash
|
90
29
|
end
|
91
30
|
|
92
|
-
def
|
93
|
-
|
31
|
+
def kv(name, value)
|
32
|
+
puts "#{name.rjust(30)} : #{value}"
|
94
33
|
end
|
95
34
|
end
|
96
|
-
|
97
|
-
# class L
|
98
|
-
# def self.progress(index, label)
|
99
|
-
# puts "#{index} - #{label}"
|
100
|
-
# end
|
101
|
-
|
102
|
-
# def self.kv(name, value)
|
103
|
-
# puts "#{name.rjust(30)} : #{value}"
|
104
|
-
# end
|
105
|
-
# end
|
106
35
|
end
|
data/lib/k_builder/version.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
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.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Cruwys
|
@@ -44,13 +44,6 @@ files:
|
|
44
44
|
- Rakefile
|
45
45
|
- STORIES.md
|
46
46
|
- USAGE.md
|
47
|
-
- _out1.png
|
48
|
-
- _out2.png
|
49
|
-
- _out3.png
|
50
|
-
- _out4.png
|
51
|
-
- _out5.png
|
52
|
-
- _usage_folder_after.png
|
53
|
-
- _usage_folder_before.png
|
54
47
|
- bin/console
|
55
48
|
- bin/k
|
56
49
|
- bin/kgitsync
|
@@ -65,6 +58,13 @@ files:
|
|
65
58
|
- lib/k_builder/builder.rb
|
66
59
|
- lib/k_builder/configuration.rb
|
67
60
|
- lib/k_builder/version.rb
|
61
|
+
- usage/_out1.png
|
62
|
+
- usage/_out2.png
|
63
|
+
- usage/_out3.png
|
64
|
+
- usage/_out4.png
|
65
|
+
- usage/_out5.png
|
66
|
+
- usage/_usage_folder_after.png
|
67
|
+
- usage/_usage_folder_before.png
|
68
68
|
homepage: http://appydave.com
|
69
69
|
licenses:
|
70
70
|
- MIT
|