Skip to content

Commit 3a2a96a

Browse files
authored
Merge pull request hollax#9 from hollax/develop
Fix semicolon
2 parents 8da6456 + c2cd9e1 commit 3a2a96a

File tree

6 files changed

+215
-122
lines changed

6 files changed

+215
-122
lines changed

build/logs/clover.xml

Lines changed: 101 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,113 +1,123 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<coverage generated="1572121286">
3-
<project timestamp="1572121286">
2+
<coverage generated="1605954280">
3+
<project timestamp="1605954280">
44
<file name="C:\xampp\htdocs\personal-projects\array-config-writer/class-array-config-writer.php">
55
<class name="Array_Config_Writer" namespace="global" fullPackage="Array.Config">
6-
<metrics complexity="39" methods="13" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="88" coveredstatements="14" elements="101" coveredelements="15"/>
6+
<metrics complexity="43" methods="17" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="94" coveredstatements="53" elements="111" coveredelements="61"/>
77
</class>
8-
<line num="109" type="method" name="__construct" visibility="public" complexity="3" crap="3.33" count="1"/>
9-
<line num="111" type="stmt" count="1"/>
10-
<line num="112" type="stmt" count="1"/>
11-
<line num="113" type="stmt" count="1"/>
12-
<line num="114" type="stmt" count="1"/>
13-
<line num="116" type="stmt" count="1"/>
8+
<line num="109" type="method" name="__construct" visibility="public" complexity="3" crap="3.33" count="2"/>
9+
<line num="111" type="stmt" count="2"/>
10+
<line num="112" type="stmt" count="2"/>
11+
<line num="113" type="stmt" count="2"/>
12+
<line num="114" type="stmt" count="2"/>
13+
<line num="116" type="stmt" count="2"/>
1414
<line num="119" type="stmt" count="0"/>
1515
<line num="121" type="stmt" count="0"/>
16-
<line num="123" type="stmt" count="1"/>
16+
<line num="123" type="stmt" count="2"/>
1717
<line num="125" type="stmt" count="0"/>
1818
<line num="126" type="stmt" count="0"/>
19-
<line num="129" type="stmt" count="1"/>
20-
<line num="131" type="stmt" count="1"/>
21-
<line num="155" type="method" name="write" visibility="public" complexity="19" crap="380" count="0"/>
22-
<line num="158" type="stmt" count="0"/>
19+
<line num="129" type="stmt" count="2"/>
20+
<line num="131" type="stmt" count="2"/>
21+
<line num="155" type="method" name="write" visibility="public" complexity="19" crap="61.62" count="6"/>
22+
<line num="158" type="stmt" count="6"/>
2323
<line num="160" type="stmt" count="0"/>
24-
<line num="163" type="stmt" count="0"/>
25-
<line num="165" type="stmt" count="0"/>
24+
<line num="163" type="stmt" count="6"/>
25+
<line num="165" type="stmt" count="6"/>
2626
<line num="167" type="stmt" count="0"/>
2727
<line num="168" type="stmt" count="0"/>
28-
<line num="170" type="stmt" count="0"/>
29-
<line num="172" type="stmt" count="0"/>
30-
<line num="174" type="stmt" count="0"/>
31-
<line num="176" type="stmt" count="0"/>
32-
<line num="177" type="stmt" count="0"/>
33-
<line num="179" type="stmt" count="0"/>
34-
<line num="181" type="stmt" count="0"/>
35-
<line num="183" type="stmt" count="0"/>
36-
<line num="185" type="stmt" count="0"/>
37-
<line num="186" type="stmt" count="0"/>
38-
<line num="187" type="stmt" count="0"/>
39-
<line num="188" type="stmt" count="0"/>
40-
<line num="189" type="stmt" count="0"/>
41-
<line num="194" type="stmt" count="0"/>
42-
<line num="198" type="stmt" count="0"/>
43-
<line num="199" type="stmt" count="0"/>
44-
<line num="201" type="stmt" count="0"/>
45-
<line num="205" type="stmt" count="0"/>
46-
<line num="207" type="stmt" count="0"/>
47-
<line num="210" type="stmt" count="0"/>
48-
<line num="217" type="stmt" count="0"/>
49-
<line num="218" type="stmt" count="0"/>
50-
<line num="219" type="stmt" count="0"/>
51-
<line num="220" type="stmt" count="0"/>
52-
<line num="223" type="stmt" count="0"/>
53-
<line num="224" type="stmt" count="0"/>
28+
<line num="170" type="stmt" count="6"/>
29+
<line num="172" type="stmt" count="6"/>
30+
<line num="174" type="stmt" count="6"/>
31+
<line num="176" type="stmt" count="6"/>
32+
<line num="177" type="stmt" count="6"/>
33+
<line num="179" type="stmt" count="6"/>
34+
<line num="181" type="stmt" count="6"/>
35+
<line num="183" type="stmt" count="6"/>
36+
<line num="184" type="stmt" count="6"/>
37+
<line num="186" type="stmt" count="6"/>
38+
<line num="187" type="stmt" count="6"/>
39+
<line num="188" type="stmt" count="6"/>
40+
<line num="189" type="stmt" count="6"/>
41+
<line num="194" type="stmt" count="6"/>
42+
<line num="198" type="stmt" count="6"/>
43+
<line num="199" type="stmt" count="6"/>
44+
<line num="204" type="stmt" count="6"/>
45+
<line num="205" type="stmt" count="6"/>
46+
<line num="206" type="stmt" count="6"/>
47+
<line num="208" type="stmt" count="6"/>
48+
<line num="212" type="stmt" count="6"/>
49+
<line num="214" type="stmt" count="0"/>
50+
<line num="217" type="stmt" count="6"/>
51+
<line num="218" type="stmt" count="6"/>
5452
<line num="225" type="stmt" count="0"/>
53+
<line num="226" type="stmt" count="0"/>
54+
<line num="227" type="stmt" count="0"/>
5555
<line num="228" type="stmt" count="0"/>
5656
<line num="231" type="stmt" count="0"/>
5757
<line num="232" type="stmt" count="0"/>
5858
<line num="233" type="stmt" count="0"/>
59-
<line num="235" type="stmt" count="0"/>
60-
<line num="238" type="stmt" count="0"/>
59+
<line num="236" type="stmt" count="0"/>
60+
<line num="239" type="stmt" count="0"/>
61+
<line num="240" type="stmt" count="0"/>
62+
<line num="241" type="stmt" count="0"/>
6163
<line num="243" type="stmt" count="0"/>
62-
<line num="245" type="stmt" count="0"/>
63-
<line num="254" type="stmt" count="0"/>
64-
<line num="257" type="stmt" count="0"/>
65-
<line num="261" type="stmt" count="0"/>
66-
<line num="263" type="stmt" count="0"/>
67-
<line num="264" type="stmt" count="0"/>
64+
<line num="246" type="stmt" count="0"/>
65+
<line num="251" type="stmt" count="0"/>
66+
<line num="253" type="stmt" count="0"/>
67+
<line num="262" type="stmt" count="0"/>
6868
<line num="265" type="stmt" count="0"/>
69-
<line num="267" type="stmt" count="0"/>
70-
<line num="270" type="stmt" count="0"/>
71-
<line num="283" type="method" name="setFilename" visibility="public" complexity="1" crap="2" count="0"/>
72-
<line num="285" type="stmt" count="0"/>
73-
<line num="297" type="method" name="setDestinationFile" visibility="public" complexity="2" crap="6" count="0"/>
74-
<line num="299" type="stmt" count="0"/>
75-
<line num="301" type="stmt" count="0"/>
76-
<line num="305" type="stmt" count="0"/>
77-
<line num="308" type="stmt" count="0"/>
78-
<line num="315" type="method" name="getDestinationName" visibility="public" complexity="1" crap="2" count="0"/>
79-
<line num="317" type="stmt" count="0"/>
80-
<line num="330" type="method" name="setVariableName" visibility="public" complexity="4" crap="5.40" count="1"/>
81-
<line num="333" type="stmt" count="1"/>
82-
<line num="335" type="stmt" count="0"/>
69+
<line num="269" type="stmt" count="0"/>
70+
<line num="271" type="stmt" count="0"/>
71+
<line num="272" type="stmt" count="0"/>
72+
<line num="273" type="stmt" count="0"/>
73+
<line num="275" type="stmt" count="0"/>
74+
<line num="278" type="stmt" count="6"/>
75+
<line num="291" type="method" name="setFilename" visibility="public" complexity="1" crap="2" count="0"/>
76+
<line num="293" type="stmt" count="0"/>
77+
<line num="305" type="method" name="setDestinationFile" visibility="public" complexity="1" crap="2" count="0"/>
78+
<line num="307" type="stmt" count="0"/>
79+
<line num="309" type="stmt" count="0"/>
80+
<line num="316" type="method" name="getDestinationFile" visibility="public" complexity="1" crap="2" count="0"/>
81+
<line num="318" type="stmt" count="0"/>
82+
<line num="331" type="method" name="setVariableName" visibility="public" complexity="5" crap="5.27" count="3"/>
83+
<line num="334" type="stmt" count="3"/>
8384
<line num="336" type="stmt" count="0"/>
84-
<line num="339" type="stmt" count="1"/>
85-
<line num="341" type="stmt" count="0"/>
86-
<line num="343" type="stmt" count="1"/>
87-
<line num="345" type="stmt" count="0"/>
88-
<line num="348" type="stmt" count="1"/>
89-
<line num="350" type="stmt" count="1"/>
90-
<line num="357" type="method" name="getVariableName" visibility="public" complexity="1" crap="2" count="0"/>
91-
<line num="359" type="stmt" count="0"/>
92-
<line num="368" type="method" name="__destruct" visibility="public" complexity="2" crap="6" count="0"/>
93-
<line num="370" type="stmt" count="0"/>
94-
<line num="372" type="stmt" count="0"/>
95-
<line num="374" type="stmt" count="0"/>
96-
<line num="384" type="method" name="save" visibility="public" complexity="2" crap="6" count="0"/>
97-
<line num="386" type="stmt" count="0"/>
98-
<line num="388" type="stmt" count="0"/>
99-
<line num="390" type="stmt" count="0"/>
100-
<line num="398" type="method" name="hasError" visibility="public" complexity="1" crap="2" count="0"/>
101-
<line num="400" type="stmt" count="0"/>
102-
<line num="407" type="method" name="getLastError" visibility="public" complexity="1" crap="1" count="2"/>
103-
<line num="409" type="stmt" count="2"/>
104-
<line num="418" type="method" name="setAutoSave" visibility="public" complexity="1" crap="2" count="0"/>
105-
<line num="420" type="stmt" count="0"/>
106-
<line num="421" type="stmt" count="0"/>
107-
<line num="428" type="method" name="getAutoSave" visibility="public" complexity="1" crap="2" count="0"/>
108-
<line num="430" type="stmt" count="0"/>
109-
<metrics loc="432" ncloc="212" classes="1" methods="13" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="88" coveredstatements="14" elements="101" coveredelements="15"/>
85+
<line num="337" type="stmt" count="0"/>
86+
<line num="340" type="stmt" count="3"/>
87+
<line num="342" type="stmt" count="1"/>
88+
<line num="344" type="stmt" count="3"/>
89+
<line num="346" type="stmt" count="1"/>
90+
<line num="349" type="stmt" count="3"/>
91+
<line num="351" type="stmt" count="3"/>
92+
<line num="358" type="method" name="getVariableName" visibility="public" complexity="1" crap="2" count="0"/>
93+
<line num="360" type="stmt" count="0"/>
94+
<line num="369" type="method" name="__destruct" visibility="public" complexity="2" crap="6" count="0"/>
95+
<line num="371" type="stmt" count="0"/>
96+
<line num="373" type="stmt" count="0"/>
97+
<line num="375" type="stmt" count="0"/>
98+
<line num="385" type="method" name="save" visibility="public" complexity="2" crap="2" count="3"/>
99+
<line num="387" type="stmt" count="3"/>
100+
<line num="389" type="stmt" count="3"/>
101+
<line num="391" type="stmt" count="3"/>
102+
<line num="399" type="method" name="hasError" visibility="public" complexity="1" crap="1" count="3"/>
103+
<line num="401" type="stmt" count="3"/>
104+
<line num="408" type="method" name="getLastError" visibility="public" complexity="1" crap="1" count="2"/>
105+
<line num="410" type="stmt" count="2"/>
106+
<line num="419" type="method" name="setAutoSave" visibility="public" complexity="1" crap="1" count="1"/>
107+
<line num="421" type="stmt" count="1"/>
108+
<line num="423" type="stmt" count="1"/>
109+
<line num="431" type="method" name="getAutoSave" visibility="public" complexity="1" crap="2" count="0"/>
110+
<line num="433" type="stmt" count="0"/>
111+
<line num="439" type="method" name="getContent" visibility="public" complexity="1" crap="1" count="3"/>
112+
<line num="441" type="stmt" count="3"/>
113+
<line num="445" type="method" name="getStringRegex" visibility="protected" complexity="1" crap="1" count="3"/>
114+
<line num="447" type="stmt" count="3"/>
115+
<line num="450" type="method" name="getIntRegex" visibility="protected" complexity="1" crap="1" count="3"/>
116+
<line num="452" type="stmt" count="3"/>
117+
<line num="455" type="method" name="getArrayRegex" visibility="protected" complexity="1" crap="1" count="3"/>
118+
<line num="457" type="stmt" count="3"/>
119+
<metrics loc="459" ncloc="226" classes="1" methods="17" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="94" coveredstatements="53" elements="111" coveredelements="61"/>
110120
</file>
111-
<metrics files="1" loc="432" ncloc="212" classes="1" methods="13" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="88" coveredstatements="14" elements="101" coveredelements="15"/>
121+
<metrics files="1" loc="459" ncloc="226" classes="1" methods="17" coveredmethods="8" conditionals="0" coveredconditionals="0" statements="94" coveredstatements="53" elements="111" coveredelements="61"/>
112122
</project>
113123
</coverage>

class-array-config-writer.php

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
Copyright 2016 Wakeel Ogunsanya
55
Licensed under GPLv2 or above
66
7-
Version 1.2.1
7+
Version 1.2.2
88
*/
99

1010
class Array_Config_Writer {
@@ -181,8 +181,8 @@ public function write( $index = null, $replacement = null , $write_method = sel
181181
$is_int = is_int($i) ;
182182
// we make sure we dont change the index type if its numeric
183183
$new_item_index = $is_int? $i : "'$i'" ;
184-
// if the index is int, we dont need ' or "" to be checked in the regex
185184
$regex .= '\[\s*';
185+
// if the index is int, we dont need ' or "" to be checked in the regex
186186
$regex .= $is_int? '' : '(\'|\")' ;
187187
$regex .= '('.$i.')*';
188188
$regex .= $is_int? '' : '(\'|\")';
@@ -194,11 +194,18 @@ public function write( $index = null, $replacement = null , $write_method = sel
194194
$mark .= "[$new_item_index]" ;
195195
}
196196

197-
// closing
198-
$regex .= ')\s*=[^;]*#' ;
197+
// value
198+
$regex .= ')\s*=\s?' ;
199+
$regex .= "({$this->getStringRegex()}|{$this->getIntRegex()}|{$this->getArrayRegex()})" ;
200+
//allow ; within a string @issue 7
201+
// $regex .= '|.*".*".*|' ;
202+
// $regex .= "|.*'.*'.*|";
203+
//close value match
204+
$regex .= ';\s*$#m' ;
199205
$mark .= " = ";
206+
$exists = preg_match($regex, $this->_fileContent, $m);
200207

201-
if(preg_match($regex, $this->_fileContent))
208+
if($exists)
202209
{
203210
// well config aleady exists
204211
// may be is application upgrade :) we wouldnt wana overide user settings
@@ -207,7 +214,8 @@ public function write( $index = null, $replacement = null , $write_method = sel
207214
return $this;
208215
}
209216
// update the content
210-
$this->_fileContent = preg_replace( $regex , '$1$2 = ' . var_export( $replacement , true ) , $this->_fileContent ) ;
217+
$this->_fileContent = preg_replace( $regex ,
218+
'$1$2 = ' . var_export( $replacement , true ).';' , $this->_fileContent ) ;
211219
}
212220
// config item doesnt exist yet create new index if reqyuired
213221
else
@@ -432,4 +440,20 @@ public function getContent()
432440
{
433441
return $this->_fileContent;
434442
}
443+
444+
445+
protected function getStringRegex()
446+
{
447+
return '(\'|").*(\'|")';
448+
}
449+
450+
protected function getIntRegex()
451+
{
452+
return '[^;]+';
453+
}
454+
455+
protected function getArrayRegex()
456+
{
457+
return '(:?array|\[)\s*\(.*(:?\)|\])*';
458+
}
435459
}

test/Array_Config_Writer_Multi_Test.php

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@ public function testConstructor()
4242

4343
/**
4444
* @depends testConstructor
45-
* @covers Array_Config_Writer::setVariableName
46-
* @covers Array_Config_Writer::getVariableName
45+
* @covers Array_Config_Writer::setVariableName Array_Config_Writer::getVariableName
4746
*/
4847
public function testSetVariableName($writer)
4948
{
@@ -60,8 +59,7 @@ public function testSetVariableName($writer)
6059
/**
6160
* @depends testSetVariableName
6261
*
63-
* @covers Array_Config_Writer::write
64-
* @coversArray_Config_Writer::setDestinationFile
62+
* @covers Array_Config_Writer::write Array_Config_Writer::setDestinationFile
6563
*/
6664
public function testWrite($writer)
6765
{
@@ -75,7 +73,7 @@ public function testWrite($writer)
7573

7674
$writer->save();
7775

78-
//file name has been changed
76+
//get config
7977
$config = require __DIR__.'/custom-destination.php';
8078

8179
$this->assertTrue(is_array($config));

0 commit comments

Comments
 (0)