[why] expand erb templates need a class to save context
[how] Context class provider a readable property @info, it will save the context required by erb, and a expand_erb method, it can expand a erb templates based on @info.
Signed-off-by: Xiao Shenwei xiaoshenwei96@163.com --- providers/lib/context.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 providers/lib/context.rb
diff --git a/providers/lib/context.rb b/providers/lib/context.rb new file mode 100644 index 0000000..1ea36b0 --- /dev/null +++ b/providers/lib/context.rb @@ -0,0 +1,29 @@ +# SPDX-License-Identifier: MulanPSL-2.0+ +# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved. +# frozen_string_literal: true + +require 'erb' +require_relative "#{ENV['LKP_SRC']}/lib/hashugar" + +# saves the context required by expand erb templates +class Context + attr_reader :info + + def initialize(mac, hostname, queues) + @info = { + 'mac' => mac, + 'hostname' => hostname, + 'queues' => queues + } + end + + def merge!(hash) + @info.merge!(hash) + end + + def expand_erb(template, context_hash = {}) + @info.merge!(context_hash) + context = Hashugar.new(@info).instance_eval { binding } + ERB.new(template, nil, '%').result(context) + end +end
On Tue, Jan 26, 2021 at 03:55:35PM +0800, Xiao Shenwei wrote:
[why] expand erb templates need a class to save context
[how] Context class provider a readable property @info, it will save the context required by erb, and a expand_erb method, it can expand a erb templates based on @info.
Signed-off-by: Xiao Shenwei xiaoshenwei96@163.com
providers/lib/context.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 providers/lib/context.rb
diff --git a/providers/lib/context.rb b/providers/lib/context.rb new file mode 100644 index 0000000..1ea36b0 --- /dev/null +++ b/providers/lib/context.rb @@ -0,0 +1,29 @@
miss shebang ?
Thanks, Liushaofei
+# SPDX-License-Identifier: MulanPSL-2.0+ +# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved. +# frozen_string_literal: true
+require 'erb' +require_relative "#{ENV['LKP_SRC']}/lib/hashugar"
+# saves the context required by expand erb templates +class Context
- attr_reader :info
- def initialize(mac, hostname, queues)
- @info = {
'mac' => mac,
'hostname' => hostname,
'queues' => queues
- }
- end
- def merge!(hash)
- @info.merge!(hash)
- end
- def expand_erb(template, context_hash = {})
- @info.merge!(context_hash)
- context = Hashugar.new(@info).instance_eval { binding }
- ERB.new(template, nil, '%').result(context)
- end
+end
2.23.0
On Tue, Jan 26, 2021 at 05:45:48PM +0800, Liu Shaofei wrote:
On Tue, Jan 26, 2021 at 03:55:35PM +0800, Xiao Shenwei wrote:
[why] expand erb templates need a class to save context
[how] Context class provider a readable property @info, it will save the context required by erb, and a expand_erb method, it can expand a erb templates based on @info.
Signed-off-by: Xiao Shenwei xiaoshenwei96@163.com
providers/lib/context.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 providers/lib/context.rb
diff --git a/providers/lib/context.rb b/providers/lib/context.rb new file mode 100644 index 0000000..1ea36b0 --- /dev/null +++ b/providers/lib/context.rb @@ -0,0 +1,29 @@
miss shebang ?
what's mean shebang?
Thanks, Shenwei
Thanks, Liushaofei
+# SPDX-License-Identifier: MulanPSL-2.0+ +# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved. +# frozen_string_literal: true
+require 'erb' +require_relative "#{ENV['LKP_SRC']}/lib/hashugar"
+# saves the context required by expand erb templates +class Context
- attr_reader :info
- def initialize(mac, hostname, queues)
- @info = {
'mac' => mac,
'hostname' => hostname,
'queues' => queues
- }
- end
- def merge!(hash)
- @info.merge!(hash)
- end
- def expand_erb(template, context_hash = {})
- @info.merge!(context_hash)
- context = Hashugar.new(@info).instance_eval { binding }
- ERB.new(template, nil, '%').result(context)
- end
+end
2.23.0
On Tue, Jan 26, 2021 at 06:34:40PM +0800, Xiao Shenwei wrote:
On Tue, Jan 26, 2021 at 05:45:48PM +0800, Liu Shaofei wrote:
On Tue, Jan 26, 2021 at 03:55:35PM +0800, Xiao Shenwei wrote:
[why] expand erb templates need a class to save context
[how] Context class provider a readable property @info, it will save the context required by erb, and a expand_erb method, it can expand a erb templates based on @info.
Signed-off-by: Xiao Shenwei xiaoshenwei96@163.com
providers/lib/context.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 providers/lib/context.rb
diff --git a/providers/lib/context.rb b/providers/lib/context.rb new file mode 100644 index 0000000..1ea36b0 --- /dev/null +++ b/providers/lib/context.rb @@ -0,0 +1,29 @@
miss shebang ?
what's mean shebang?
#!/usr/bin/env ruby Thanks, Liushaofei
Thanks, Shenwei
Thanks, Liushaofei
+# SPDX-License-Identifier: MulanPSL-2.0+ +# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved. +# frozen_string_literal: true
+require 'erb' +require_relative "#{ENV['LKP_SRC']}/lib/hashugar"
+# saves the context required by expand erb templates +class Context
- attr_reader :info
- def initialize(mac, hostname, queues)
- @info = {
'mac' => mac,
'hostname' => hostname,
'queues' => queues
- }
- end
- def merge!(hash)
- @info.merge!(hash)
- end
- def expand_erb(template, context_hash = {})
- @info.merge!(context_hash)
- context = Hashugar.new(@info).instance_eval { binding }
- ERB.new(template, nil, '%').result(context)
- end
+end
2.23.0
@@ -0,0 +1,29 @@
miss shebang ?
what's mean shebang?
#!/usr/bin/env ruby
it not an execution script, no need add this line
Thanks, Shenwei
Thanks, Liushaofei
Thanks, Shenwei
Thanks, Liushaofei
+# SPDX-License-Identifier: MulanPSL-2.0+ +# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved. +# frozen_string_literal: true
+require 'erb' +require_relative "#{ENV['LKP_SRC']}/lib/hashugar"
+# saves the context required by expand erb templates +class Context
- attr_reader :info
- def initialize(mac, hostname, queues)
- @info = {
'mac' => mac,
'hostname' => hostname,
'queues' => queues
- }
- end
- def merge!(hash)
- @info.merge!(hash)
- end
- def expand_erb(template, context_hash = {})
- @info.merge!(context_hash)
- context = Hashugar.new(@info).instance_eval { binding }
- ERB.new(template, nil, '%').result(context)
- end
+end
2.23.0