iroki 0.0.35 → 0.0.36
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/exe/iroki +3 -3
- data/lib/iroki/biom.rb +2 -1
- data/lib/iroki/color/color.rb +10 -2
- data/lib/iroki/color/gradient.rb +1 -1
- data/lib/iroki/color/palette/palette.rb +0 -12
- data/lib/iroki/color/single_group_gradient.rb +0 -3
- data/lib/iroki/const/const.rb +0 -11
- data/lib/iroki/core_ext/file/file.rb +46 -113
- data/lib/iroki/core_ext/string/string.rb +0 -8
- data/lib/iroki/main/main.rb +13 -0
- data/lib/iroki/tree.rb +26 -9
- data/lib/iroki/utils/utils.rb +12 -4
- data/lib/iroki/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc9840c73024ff89c424b094e52f70b474d1ffa1
|
4
|
+
data.tar.gz: 9c6cbea037206118e5e2bd3174b3553f0a00df2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e278234fdd472f4ce6452701d2c1151b7a433df70081eaaf867b7011a64edfd5ef306061ea94c7c9526d2d2892b3f2ca317f1341e56216d5ccfd107992d55915
|
7
|
+
data.tar.gz: a621bf4408197fa5db28c28b51b8c12a13284e2328a28e39cdb8ed81a46544c8d879a5b009f39235158cd2eac575c40b5d5fa22536cbb216a777ffb2ed81adf2
|
data/exe/iroki
CHANGED
@@ -39,9 +39,9 @@ opts = Trollop.options do
|
|
39
39
|
"Color branches?",
|
40
40
|
short: "-b")
|
41
41
|
|
42
|
-
opt(:
|
42
|
+
opt(:color_labels,
|
43
43
|
"Color label names?",
|
44
|
-
short: "-
|
44
|
+
short: "-l")
|
45
45
|
|
46
46
|
opt(:exact,
|
47
47
|
"Exact pattern matching")
|
@@ -99,7 +99,7 @@ end
|
|
99
99
|
|
100
100
|
Iroki::Main.main(
|
101
101
|
color_branches: opts[:color_branches],
|
102
|
-
color_taxa_names: opts[:
|
102
|
+
color_taxa_names: opts[:color_labels],
|
103
103
|
exact: opts[:exact],
|
104
104
|
remove_bootstraps_below: opts[:remove_bootstraps_below],
|
105
105
|
color_map_f: opts[:color_map],
|
data/lib/iroki/biom.rb
CHANGED
@@ -49,7 +49,8 @@ module Iroki
|
|
49
49
|
first_line_count = the_counts.count
|
50
50
|
else
|
51
51
|
abort_unless first_line_count == the_counts.count,
|
52
|
-
"Line number #{idx+1} (#{line.inspect})
|
52
|
+
"Line number #{idx+1} (#{line.inspect}) " +
|
53
|
+
"in the " +
|
53
54
|
"biom file has #{the_counts.count} " +
|
54
55
|
"columns when it should have " +
|
55
56
|
"#{first_line_count} columns like the " +
|
data/lib/iroki/color/color.rb
CHANGED
@@ -725,8 +725,16 @@ module Iroki
|
|
725
725
|
colors = COLORS
|
726
726
|
end
|
727
727
|
|
728
|
-
|
729
|
-
|
728
|
+
unless colors.has_key? col
|
729
|
+
if col.match(/\A[0-9]+\Z/)
|
730
|
+
msg = "Color '#{col}' is not defined. " +
|
731
|
+
"Did you forget the --auto-color option?"
|
732
|
+
else
|
733
|
+
msg = "Color '#{col}' is not defined."
|
734
|
+
end
|
735
|
+
|
736
|
+
abort_if true, msg
|
737
|
+
end
|
730
738
|
|
731
739
|
hex = colors[col]
|
732
740
|
%Q{[&!color="#{hex.upcase}"]}
|
data/lib/iroki/color/gradient.rb
CHANGED
@@ -55,7 +55,7 @@ module Iroki
|
|
55
55
|
old_min = old_min.to_f
|
56
56
|
old_max = old_max.to_f
|
57
57
|
|
58
|
-
(new_max - ((((new_max - new_min) * (x - old_min.to_f)) / (old_max - old_min)) + new_min)) + new_min
|
58
|
+
(new_max - ((((new_max - new_min) * (x - old_min.to_f)) / (old_max - old_min)) + new_min)) + new_min
|
59
59
|
end
|
60
60
|
|
61
61
|
def patterns
|
@@ -1,18 +1,6 @@
|
|
1
1
|
module Iroki
|
2
2
|
module Color
|
3
3
|
module Palette
|
4
|
-
# BASIC =
|
5
|
-
# { "1" => "#FF3814", # red
|
6
|
-
# "2" => "#712BFF", # blue
|
7
|
-
# "3" => "#FFDF14", # yellow
|
8
|
-
# "4" => "#14FF63", } # green
|
9
|
-
|
10
|
-
# FUNKY =
|
11
|
-
# { "1" => "#FF7314",
|
12
|
-
# "2" => "#9F23FF",
|
13
|
-
# "3" => "#FFF814",
|
14
|
-
# "4" => "#14FFD8", }
|
15
|
-
|
16
4
|
KELLY = {
|
17
5
|
"1" => { name: "purple", hex: "#875692" },
|
18
6
|
"2" => { name: "orange", hex: "#F38400" },
|
@@ -53,8 +53,6 @@ module Iroki
|
|
53
53
|
|
54
54
|
col =
|
55
55
|
Iroki::Color::GREEN.mix_with Iroki::Color::BLUE, rel_abund
|
56
|
-
# col =
|
57
|
-
# Iroki::Color::BLUE.mix_with Iroki::Color::GREEN, rel_abund
|
58
56
|
|
59
57
|
col.luminosity = lumin
|
60
58
|
|
@@ -65,7 +63,6 @@ module Iroki
|
|
65
63
|
def single_color_gradient_hex_codes
|
66
64
|
@rel_abunds.zip(@lumins).map do |rel_abund, lumin|
|
67
65
|
amt_of_orig_color =
|
68
|
-
# scale rel_abund, new_min=10, new_max=95
|
69
66
|
scale rel_abund, new_min=@min_lumin, new_max=@max_lumin
|
70
67
|
|
71
68
|
col =
|
data/lib/iroki/const/const.rb
CHANGED
@@ -18,17 +18,6 @@
|
|
18
18
|
|
19
19
|
module Iroki
|
20
20
|
module Const
|
21
|
-
COPYRIGHT = "2016 Ryan Moore"
|
22
|
-
CONTACT = "moorer@udel.edu"
|
23
|
-
WEBSITE = "https://github.com/mooreryan/color_tree"
|
24
|
-
LICENSE = "GPLv3"
|
25
|
-
|
26
|
-
VERSION_BANNER = " # Version: #{Iroki::VERSION}
|
27
|
-
# Copyright #{COPYRIGHT}
|
28
|
-
# Contact: #{CONTACT}
|
29
|
-
# Website: #{WEBSITE}
|
30
|
-
# License: #{LICENSE}"
|
31
|
-
|
32
21
|
FIG = 'begin figtree;
|
33
22
|
set appearance.backgroundColorAttribute="Default";
|
34
23
|
set appearance.backgroundColour=#-1;
|
@@ -21,14 +21,14 @@ def color_given? str
|
|
21
21
|
end
|
22
22
|
|
23
23
|
# TODO spec this for hex matching
|
24
|
-
def
|
24
|
+
def label_tag? str
|
25
25
|
m = str.match(/\Alabel:(#?\p{Alnum}+)\Z/i)
|
26
26
|
|
27
27
|
m[1] if m
|
28
28
|
end
|
29
29
|
|
30
30
|
# TODO spec this for hex matching
|
31
|
-
def
|
31
|
+
def branch_tag? str
|
32
32
|
m = str.match(/\Abranch:(#?\p{Alnum}+)\Z/i)
|
33
33
|
|
34
34
|
m[1] if m
|
@@ -60,87 +60,8 @@ module Iroki
|
|
60
60
|
arg
|
61
61
|
end
|
62
62
|
|
63
|
-
# TODO
|
64
|
-
|
65
|
-
exact_matching: true,
|
66
|
-
auto_color: false
|
67
|
-
|
68
|
-
check_file fname, :color_map
|
69
|
-
|
70
|
-
|
71
|
-
patterns = {}
|
72
|
-
Object::File.open(fname, "rt").each_line do |line|
|
73
|
-
unless line.start_with? "#"
|
74
|
-
label_tag = ""
|
75
|
-
branch_tag = ""
|
76
|
-
|
77
|
-
pattern, label_color, branch_color = line.chomp.split "\t"
|
78
|
-
|
79
|
-
# color = "black" if color.nil? || color.empty?
|
80
|
-
|
81
|
-
assert pattern, "found no pattern"
|
82
|
-
|
83
|
-
if exact_matching # TODO should this really be everytime?
|
84
|
-
pattern = pattern#.clean_name
|
85
|
-
else
|
86
|
-
# TODO flag bad regexp
|
87
|
-
pattern = Regexp.new pattern
|
88
|
-
end
|
89
|
-
|
90
|
-
if color_given?(label_color) && color_given?(branch_color)
|
91
|
-
abort_if(has_label_tag?(label_color) &&
|
92
|
-
has_label_tag?(branch_color),
|
93
|
-
"Label tag specified twice for '#{line}'")
|
94
|
-
|
95
|
-
abort_if(has_branch_tag?(label_color) &&
|
96
|
-
has_branch_tag?(branch_color),
|
97
|
-
"Branch tag specified twice for '#{line}'")
|
98
|
-
end
|
99
|
-
|
100
|
-
if color_given?(label_color) && !color_given?(branch_color)
|
101
|
-
if (color = has_label_tag? label_color)
|
102
|
-
label_tag = Iroki::Color.get_tag color, auto_color
|
103
|
-
elsif (color = has_branch_tag? label_color)
|
104
|
-
branch_tag = Iroki::Color.get_tag color, auto_color
|
105
|
-
else
|
106
|
-
label_tag = Iroki::Color.get_tag label_color, auto_color
|
107
|
-
branch_tag = Iroki::Color.get_tag label_color, auto_color
|
108
|
-
end
|
109
|
-
else
|
110
|
-
if color_given? label_color
|
111
|
-
if (color = has_label_tag? label_color)
|
112
|
-
label_tag = Iroki::Color.get_tag color, auto_color
|
113
|
-
elsif (color = has_branch_tag? label_color)
|
114
|
-
branch_tag = Iroki::Color.get_tag color, auto_color
|
115
|
-
else
|
116
|
-
label_tag = Iroki::Color.get_tag label_color, auto_color
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
if color_given? branch_color
|
121
|
-
if (color = has_branch_tag? branch_color)
|
122
|
-
branch_tag = Iroki::Color.get_tag color, auto_color
|
123
|
-
elsif (color = has_label_tag? branch_color)
|
124
|
-
label_tag = Iroki::Color.get_tag color, auto_color
|
125
|
-
else
|
126
|
-
branch_tag = Iroki::Color.get_tag branch_color, auto_color
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
130
|
-
|
131
|
-
# if auto_color
|
132
|
-
# patterns[pattern] = "[&!color=\"#{auto_colors[color]}\"]"
|
133
|
-
# else
|
134
|
-
# patterns[pattern] = Iroki::Color.get_tag color, auto_color
|
135
|
-
# end
|
136
|
-
|
137
|
-
patterns[pattern] = { label: label_tag, branch: branch_tag }
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
patterns
|
142
|
-
end
|
143
|
-
|
63
|
+
# TODO what's the point of the iroki_to_name? To allow wonky
|
64
|
+
# chars maybe?
|
144
65
|
def parse_color_map_iroki(fname,
|
145
66
|
iroki_to_name,
|
146
67
|
exact_matching: true,
|
@@ -168,7 +89,6 @@ module Iroki
|
|
168
89
|
assert pattern, "found no pattern"
|
169
90
|
|
170
91
|
if exact_matching # TODO should this really be everytime?
|
171
|
-
# pattern = pattern.clean_name
|
172
92
|
if name_to_iroki.has_key? pattern
|
173
93
|
pattern = name_to_iroki[pattern]
|
174
94
|
else
|
@@ -181,56 +101,72 @@ module Iroki
|
|
181
101
|
pattern = Regexp.new pattern
|
182
102
|
end
|
183
103
|
|
184
|
-
if color_given?(label_color) && color_given?(branch_color)
|
185
|
-
abort_if(has_label_tag?(label_color) &&
|
186
|
-
has_label_tag?(branch_color),
|
187
|
-
"Label tag specified twice for '#{line}'")
|
188
104
|
|
189
|
-
|
190
|
-
|
191
|
-
|
105
|
+
if color_given?(label_color) && color_given?(branch_color)
|
106
|
+
if label_tag?(label_color) &&
|
107
|
+
label_tag?(branch_color)
|
108
|
+
|
109
|
+
abort_unless label_color == branch_color,
|
110
|
+
"Label tags specified twice for " +
|
111
|
+
"#{line.inspect}, but the tags don't " +
|
112
|
+
"match."
|
113
|
+
|
114
|
+
# ie both are label tags specifying the same color
|
115
|
+
branch_color = nil
|
116
|
+
elsif branch_tag?(label_color) &&
|
117
|
+
branch_tag?(branch_color)
|
118
|
+
|
119
|
+
abort_unless label_color == branch_color,
|
120
|
+
"Branch tags specified twice for " +
|
121
|
+
"#{line.inspect}, but the tags don't " +
|
122
|
+
"match."
|
123
|
+
|
124
|
+
# ie both are branch tags specifying the same color
|
125
|
+
label_color = nil
|
126
|
+
end
|
192
127
|
end
|
193
128
|
|
194
129
|
if color_given?(label_color) && !color_given?(branch_color)
|
195
|
-
if (color =
|
130
|
+
if (color = label_tag? label_color)
|
196
131
|
label_tag = Iroki::Color.get_tag color, auto_color
|
197
|
-
elsif (color =
|
132
|
+
elsif (color = branch_tag? label_color)
|
198
133
|
branch_tag = Iroki::Color.get_tag color, auto_color
|
199
|
-
elsif line.match(/\t\Z/) # empty branch color, branch
|
200
|
-
|
134
|
+
elsif line.match(/\t\Z/) # empty branch color, branch
|
135
|
+
# will be black
|
136
|
+
label_tag = Iroki::Color.get_tag label_color,
|
137
|
+
auto_color
|
201
138
|
else
|
202
|
-
label_tag = Iroki::Color.get_tag label_color,
|
203
|
-
|
139
|
+
label_tag = Iroki::Color.get_tag label_color,
|
140
|
+
auto_color
|
141
|
+
branch_tag = Iroki::Color.get_tag label_color,
|
142
|
+
auto_color
|
204
143
|
end
|
205
144
|
else
|
206
145
|
if color_given? label_color
|
207
|
-
if (color =
|
146
|
+
if (color = label_tag? label_color)
|
208
147
|
label_tag = Iroki::Color.get_tag color, auto_color
|
209
|
-
elsif (color =
|
148
|
+
elsif (color = branch_tag? label_color)
|
210
149
|
branch_tag = Iroki::Color.get_tag color, auto_color
|
211
150
|
else
|
212
|
-
label_tag = Iroki::Color.get_tag label_color,
|
151
|
+
label_tag = Iroki::Color.get_tag label_color,
|
152
|
+
auto_color
|
213
153
|
end
|
214
154
|
end
|
215
155
|
|
216
156
|
if color_given? branch_color
|
217
|
-
if (color =
|
157
|
+
if (color = branch_tag? branch_color)
|
218
158
|
branch_tag = Iroki::Color.get_tag color, auto_color
|
219
|
-
elsif (color =
|
159
|
+
elsif (color = label_tag? branch_color)
|
220
160
|
label_tag = Iroki::Color.get_tag color, auto_color
|
221
161
|
else
|
222
|
-
branch_tag = Iroki::Color.get_tag branch_color,
|
162
|
+
branch_tag = Iroki::Color.get_tag branch_color,
|
163
|
+
auto_color
|
223
164
|
end
|
224
165
|
end
|
225
166
|
end
|
226
167
|
|
227
|
-
|
228
|
-
|
229
|
-
# else
|
230
|
-
# patterns[pattern] = Iroki::Color.get_tag color, auto_color
|
231
|
-
# end
|
232
|
-
|
233
|
-
patterns[pattern] = { label: label_tag, branch: branch_tag }
|
168
|
+
patterns[pattern] = { label: label_tag,
|
169
|
+
branch: branch_tag }
|
234
170
|
end
|
235
171
|
end
|
236
172
|
|
@@ -258,9 +194,6 @@ module Iroki
|
|
258
194
|
abort_if newname.nil? || newname.empty?,
|
259
195
|
"Column 2 missing for line: #{line.inspect}"
|
260
196
|
|
261
|
-
# oldname = oldname.clean_name
|
262
|
-
# newname = newname.clean_name
|
263
|
-
|
264
197
|
abort_if name_map.has_key?(oldname),
|
265
198
|
"#{oldname} is repeated in column 1"
|
266
199
|
|
@@ -12,16 +12,13 @@ module Iroki
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def clean
|
15
|
-
# puts %Q{clean: #{self}, #{self.gsub(/'/, '"')}}
|
16
15
|
self.gsub(/'/, '"')
|
17
16
|
end
|
18
17
|
|
19
18
|
def single_quote
|
20
19
|
if self.match /\A'.*'\Z/
|
21
|
-
# puts %Q{single_quote if: #{self}, outputing #{self.dup}}
|
22
20
|
self.dup
|
23
21
|
else
|
24
|
-
# puts %Q{single_quote else: #{self}, returning '#{self.clean}'}
|
25
22
|
%Q['#{self.clean}']
|
26
23
|
end
|
27
24
|
end
|
@@ -31,11 +28,8 @@ module Iroki
|
|
31
28
|
name = match[1]
|
32
29
|
color = match[2]
|
33
30
|
|
34
|
-
# puts %Q{clean_name if: #{self}, returning #{name.single_quote + color}}
|
35
31
|
name.single_quote + color
|
36
|
-
# name + color
|
37
32
|
else
|
38
|
-
# puts %Q{clean_name else: #{self}, returning #{self.single_quote}}
|
39
33
|
self.single_quote
|
40
34
|
end
|
41
35
|
end
|
@@ -44,11 +38,9 @@ module Iroki
|
|
44
38
|
self.strip.gsub(/[^\p{Alnum}_]+/, "_").gsub(/_+/, "_")
|
45
39
|
end
|
46
40
|
|
47
|
-
|
48
41
|
def has_single_quote?
|
49
42
|
self.match(/'/)
|
50
43
|
end
|
51
|
-
|
52
44
|
end
|
53
45
|
end
|
54
46
|
end
|
data/lib/iroki/main/main.rb
CHANGED
@@ -261,6 +261,19 @@ module Iroki
|
|
261
261
|
# newick = treeio.next_entry
|
262
262
|
str = File.read newick
|
263
263
|
newick = Bio::Newick.new str, parser: :iroki
|
264
|
+
|
265
|
+
# Warn if there is extra info in the newick file
|
266
|
+
if newick &&
|
267
|
+
newick.entry_overrun &&
|
268
|
+
!newick.entry_overrun.chomp.empty?
|
269
|
+
|
270
|
+
AbortIf.logger.warn {
|
271
|
+
"Extra info (#{newick.entry_overrun}) in newick file " +
|
272
|
+
"(#{newick_f}) will be ignored. " +
|
273
|
+
"Does your newick file contain multiple trees?"
|
274
|
+
}
|
275
|
+
end
|
276
|
+
|
264
277
|
tree = newick.tree
|
265
278
|
|
266
279
|
# puts [:tree_first_parsed, tree.newick(indent: false)]
|
data/lib/iroki/tree.rb
CHANGED
@@ -15,6 +15,9 @@ module Iroki
|
|
15
15
|
# @param [Bio::Tree] a bio ruby tree object
|
16
16
|
#
|
17
17
|
# @return [Hash] iroki_name (string) => quoted_orig_name (string)
|
18
|
+
#
|
19
|
+
# @todo not a good name as it doesn't actually change the names in
|
20
|
+
# the tree
|
18
21
|
def self.change_names tree
|
19
22
|
idx = -1
|
20
23
|
realname = {}
|
@@ -50,12 +53,15 @@ module Iroki
|
|
50
53
|
hash.values.map(&:single_quote)
|
51
54
|
end
|
52
55
|
|
53
|
-
def self.gsub_iroki_newick_string tre_str,
|
56
|
+
def self.gsub_iroki_newick_string tre_str,
|
57
|
+
iroki_to_name,
|
58
|
+
name_map=nil
|
54
59
|
if name_map
|
55
60
|
vals = self.quoted_vals name_map
|
56
61
|
name_map_quoted = Hash[name_map.keys.zip(vals)]
|
57
62
|
|
58
|
-
iroki_to_new_name =
|
63
|
+
iroki_to_new_name =
|
64
|
+
self.combine_hashes iroki_to_name, name_map_quoted
|
59
65
|
else
|
60
66
|
vals = self.quoted_vals iroki_to_name
|
61
67
|
|
@@ -65,22 +71,33 @@ module Iroki
|
|
65
71
|
tre_str.gsub(/iroki[0-9]+iroki/, iroki_to_new_name)
|
66
72
|
end
|
67
73
|
|
68
|
-
def self.iroki_to_color iroki_to_name,
|
74
|
+
def self.iroki_to_color iroki_to_name,
|
75
|
+
color_map,
|
76
|
+
name_map,
|
77
|
+
nil_val=nil
|
69
78
|
if name_map
|
70
79
|
old_names = name_map.keys
|
71
80
|
new_names = name_map.values
|
72
81
|
|
73
|
-
color_map_is_for_old_names =
|
74
|
-
|
82
|
+
color_map_is_for_old_names =
|
83
|
+
color_map.keys.all? { |key| old_names.include? key }
|
84
|
+
|
85
|
+
color_map_is_for_new_names =
|
86
|
+
color_map.keys.all? { |key| new_names.include? key }
|
75
87
|
|
76
88
|
if color_map_is_for_old_names
|
77
|
-
iroki_to_color =
|
89
|
+
iroki_to_color =
|
90
|
+
self.combine_hashes iroki_to_name, color_map, nil_val
|
78
91
|
elsif color_map_is_for_new_names
|
79
|
-
iroki_to_new_name =
|
92
|
+
iroki_to_new_name =
|
93
|
+
self.combine_hashes iroki_to_name, name_map
|
80
94
|
|
81
|
-
iroki_to_color =
|
95
|
+
iroki_to_color =
|
96
|
+
self.combine_hashes iroki_to_new_name, color_map, nil_val
|
82
97
|
else # some old, some new
|
83
|
-
abort_if true,
|
98
|
+
abort_if true,
|
99
|
+
"The color map has both old and new names in " +
|
100
|
+
"the first column."
|
84
101
|
end
|
85
102
|
|
86
103
|
iroki_to_color
|
data/lib/iroki/utils/utils.rb
CHANGED
@@ -42,16 +42,21 @@ module Iroki
|
|
42
42
|
end
|
43
43
|
else
|
44
44
|
assert iroki_to_name, "iroki_to_name arg is nil"
|
45
|
-
assert iroki_to_name[node.to_s],
|
45
|
+
assert iroki_to_name[node.to_s],
|
46
|
+
"iroki_to_name is missing #{node.to_s}"
|
46
47
|
node_s = iroki_to_name[node.to_s]
|
47
48
|
|
48
49
|
patterns.each do |pattern, this_color|
|
49
50
|
if node_s =~ pattern
|
50
51
|
abort_if already_matched,
|
51
|
-
"Non specific matching for #{node_s}"
|
52
|
+
"Non specific matching for #{node_s}. " +
|
53
|
+
"Previously matched pattern was " +
|
54
|
+
"#{already_matched.inspect}. Current pattern " +
|
55
|
+
"is " +
|
56
|
+
"#{pattern.inspect}. Color was #{this_color}."
|
52
57
|
|
53
58
|
color = this_color
|
54
|
-
already_matched =
|
59
|
+
already_matched = pattern
|
55
60
|
end
|
56
61
|
end
|
57
62
|
|
@@ -93,7 +98,10 @@ module Iroki
|
|
93
98
|
|
94
99
|
# NOTE: this was originally before cleaning the node name a
|
95
100
|
# couple lines up, does it matter that it is after?
|
96
|
-
color = add_color_to_leaf_branch patterns,
|
101
|
+
color = add_color_to_leaf_branch patterns,
|
102
|
+
node,
|
103
|
+
exact,
|
104
|
+
iroki_to_name
|
97
105
|
|
98
106
|
# add color to the name
|
99
107
|
node.name = node.name + color[:branch] if color
|
data/lib/iroki/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iroki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.36
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Moore
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|