text-interpolator 1.1.1 → 1.1.2

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ODFiMjU4MGFiYTgyMTJjMDg1ODAwODZkODk0OTU1YjkyMzBhMTI4NA==
4
+ OGM0ZDI0YTQ4MWU1MmQyNWY1YTlmZjAyOTc1Y2M0ODdjYmJmMTE0Yg==
5
5
  data.tar.gz: !binary |-
6
- ZjZkNzBiYmYxNThmNDU3ZGFjNjg5MTA1NjIzMTA4N2FkYjM5MTI0NQ==
6
+ Nzk1YmJlMjQ4MTFmODk2Y2I2ZTBiMTliZTU3ZDdmZjM1OTEwNDFiNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YTM4OTRmYjMwMDE5ODc5NTIyZDA2Y2UzOTdiM2RhY2EzNzExZDg2OWJjYzkz
10
- YmY3YjlmMGRhODM3MGEyYmJlODAxMWJiMmEyMjE2YjMzMDRkYzMyZTljMDk5
11
- OGFkMGU2ZmE3NWQwNzRmZWZjNmEyMDM2ZTUxZmUzYzYwODMzYWQ=
9
+ NmViNDM5NjY4YmM2ZDQ4MDc4YTQ0ZTljMWQ1MWUzNWEyYjliOWI0Njk1NDcw
10
+ N2NmYWM0Njg1MmNiMTI3Nzg2MmQ0NWJlOTQ0ZDBlMDJhMGNiZTJkNzQ1OTAz
11
+ NmRmY2E2OGI3MGFkYzA4YTc2OTFlNzViZGZiMGNhNjEyNGQ3NTc=
12
12
  data.tar.gz: !binary |-
13
- Nzk5Yzc1Y2IyZTYwMzRlMjVmYzNhOWUxMTdkMTMwNjcyNmRiM2U1NDdiNjNh
14
- NDQxYmM1YmJmNDkwN2RjZTMzNjAxYWQ4ODIzNTZmYTAxYjk2MDUyZTIxYWFl
15
- OTg2NmM0ZTNmOTZiOTdiZGExYWE5MTU2MDcxMTE1ZTQ3ZGZkZDc=
13
+ ZjM0MTcwNjViZDVmOWI2MWM0NzI5YmFjMDgyNWY0ZTM4N2E5NGNlNTE0Y2I3
14
+ NWQwNDllN2U4MTBjNTI0NTQyZGRiODgwNDYzOGM2MGE5OTM1ZDhlNGE2MmQw
15
+ MTEyYmE4MTM3ZGU1YmVlODZiNDJlOGMwZWJmYjQ0YTIwOTVkZmM=
data/CHANGES CHANGED
@@ -30,4 +30,8 @@
30
30
 
31
31
  == Version 1.1.1
32
32
 
33
+ * Bug fix.
34
+
35
+ == Version 1.1.2
36
+
33
37
  * Bug fix.
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Introduction
4
4
 
5
- You have few options in ruby for variables interpolation:
5
+ In ruby you have few options for variables interpolation:
6
6
 
7
7
  - interpolation inside the string:
8
8
 
@@ -21,7 +21,9 @@ puts result # We have var1: some value 1 and var2: some value 2.
21
21
  # some_template.erb
22
22
 
23
23
  We have var1: <%= var1 %> and var2: <%= var2%>.
24
+ ```
24
25
 
26
+ ```ruby
25
27
  # test.rb
26
28
 
27
29
  require 'erb'
@@ -36,9 +38,8 @@ result = template.result(binding)
36
38
  puts result # We have var1: some value 1 and var2: some value 2.
37
39
  ```
38
40
 
39
- This library can be used for **interpolation inside file with string syntax**.
40
-
41
- In order to achieve it library uses this ruby trick:
41
+ This library can be used for **interpolation inside file with string syntax**. In order to
42
+ achieve it this library uses one ruby trick:
42
43
 
43
44
  ```ruby
44
45
  env = {var1: 'some value 1', var2: 'some value 2'}
@@ -52,14 +53,16 @@ puts result # We have var1: some value 1 and var2: some value 2.
52
53
 
53
54
  ## Usage
54
55
 
55
- It's straightforward:
56
+ It's straightforward. Here is example of file interpolation:
56
57
 
57
58
  ```ruby
58
59
  # some_template.txt
59
60
 
60
61
  We have var1: #{var1} and var2: #{var2}.
61
62
  We have var3: #{settings.var3} and var4: #{settings.var4}.
63
+ ```
62
64
 
65
+ ```ruby
63
66
  # test.rb
64
67
 
65
68
  require 'text_interpolator'
@@ -67,6 +70,7 @@ require 'text_interpolator'
67
70
  env = {
68
71
  var1: 'some value 1',
69
72
  var2: 'some value 2',
73
+
70
74
  settings: {
71
75
  var3: 'some value 3',
72
76
  var4: 'some value 4'
@@ -81,4 +85,35 @@ result = text_interpolator.interpolate template, env
81
85
 
82
86
  puts result # We have var1: some value 1 and var2: some value 2.
83
87
  # We have var3: some value 3 and var4: some value 4.
84
- ```
88
+ ```
89
+
90
+ You can also interpolate hash on multiple levels:
91
+
92
+ ```ruby
93
+ hash = {
94
+ host: 'localhost',
95
+
96
+ credentials: {
97
+ user: "some_user",
98
+ password: "some_password",
99
+
100
+ settings: {
101
+ user: "some_user2"
102
+ }
103
+ },
104
+
105
+ postgres: {
106
+ hostname: '#{host}',
107
+ user: '#{credentials.user}',
108
+ password: 'postgres'
109
+ },
110
+
111
+ mysql: {
112
+ user: '#{credentials.settings.user}',
113
+ }
114
+ }
115
+
116
+ result = subject.interpolate hash
117
+
118
+ p result
119
+ ```
@@ -17,7 +17,7 @@ class TextInterpolator
17
17
  end
18
18
 
19
19
  def interpolate_string string, env={}
20
- @errors = {}
20
+ @errors = []
21
21
 
22
22
  value = interpolate_system_variable string
23
23
 
@@ -31,7 +31,7 @@ class TextInterpolator
31
31
  end
32
32
 
33
33
  def interpolate_hash hash
34
- @errors = {}
34
+ @errors = []
35
35
 
36
36
  content = interpolate_system_variables(hash)
37
37
 
@@ -1,3 +1,3 @@
1
1
  class TextInterpolator
2
- VERSION = "1.1.1"
2
+ VERSION = "1.1.2"
3
3
  end
@@ -95,7 +95,7 @@ describe TextInterpolator do
95
95
  }
96
96
  }
97
97
 
98
- result = subject.interpolate_hash hash
98
+ result = subject.interpolate hash
99
99
 
100
100
  expect(result[:postgres][:user]).to eq hash[:credentials][:user]
101
101
  expect(result[:mysql][:user]).to eq hash[:credentials][:settings][:user]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: text-interpolator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Shvets
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-11 00:00:00.000000000 Z
11
+ date: 2014-06-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gemspec_deps_gen