Skip to content

Commit 0f1a3f1

Browse files
committed
adding support for a separate raw pattern helper
1 parent 99c7f99 commit 0f1a3f1

File tree

3 files changed

+75
-25
lines changed

3 files changed

+75
-25
lines changed

src/PatternLab/PatternData.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
use \PatternLab\PatternData\Helpers\LineageHelper;
2424
use \PatternLab\PatternData\Helpers\PatternCodeHelper;
2525
use \PatternLab\PatternData\Helpers\PatternStateHelper;
26+
use \PatternLab\PatternData\Helpers\RawPatternHelper;
2627
use \PatternLab\Timer;
2728

2829
class PatternData {
@@ -153,6 +154,17 @@ public static function gather($options = array()) {
153154
$dataMergeExporter = new DataMergeExporter();
154155
$dataMergeExporter->run();
155156

157+
// dispatch that the raw pattern helper is about to start
158+
$event = new PatternDataEvent($options);
159+
$dispatcherInstance->dispatch("patternData.rawPatternHelperStart",$event);
160+
161+
// add the lineage info to PatternData::$store
162+
$rawPatternHelper = new RawPatternHelper();
163+
$rawPatternHelper->run();
164+
165+
// dispatch that the raw pattern helper is ended
166+
$event = new PatternDataEvent($options);
167+
$dispatcherInstance->dispatch("patternData.rawPatternHelperEnd",$event);
156168
// add the lineage info to PatternData::$store
157169
$lineageHelper = new LineageHelper();
158170
$lineageHelper->run();

src/PatternLab/PatternData/Helpers/PatternCodeHelper.php

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -46,31 +46,6 @@ public function run() {
4646
$patternFoot = Template::getPatternFoot();
4747
$stringLoader = Template::getStringLoader();
4848

49-
// load the pattern data
50-
$store = PatternData::get();
51-
52-
// iterate to get raw data loaded into the PatternData Store
53-
foreach ($store as $patternStoreKey => $patternStoreData) {
54-
55-
if (($patternStoreData["category"] == "pattern") && !$patternStoreData["hidden"]) {
56-
57-
// figure out the source path for the pattern to render
58-
$srcPath = (isset($patternStoreData["pseudo"])) ? PatternData::getPatternOption($patternStoreData["original"],"pathName") : $patternStoreData["pathName"];
59-
60-
// load the raw data so it can be modified/rendered
61-
if (file_exists($patternSourceDir."/".$srcPath.".".$patternExtension)) {
62-
PatternData::setPatternOption($patternStoreKey,"patternRaw",file_get_contents($patternSourceDir."/".$srcPath.".".$patternExtension));
63-
} else {
64-
Console::writeWarning($patternStoreData["partial"]." wasn't found for loading. i have no idea why... ");
65-
}
66-
67-
}
68-
69-
}
70-
71-
// dispatch event
72-
Dispatcher::getInstance()->dispatch("patternCodeHelper.rawPatternLoaded");
73-
7449
// re-load the pattern data since we modified it
7550
$store = PatternData::get();
7651

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<?php
2+
3+
/*!
4+
* Pattern Data Pattern Code Helper Class
5+
*
6+
* Copyright (c) 2014 Dave Olsen, http://dmolsen.com
7+
* Licensed under the MIT license
8+
*
9+
* Renders patterns and stores the rendered code in PatternData::$store
10+
*
11+
*/
12+
13+
namespace PatternLab\PatternData\Helpers;
14+
15+
use \PatternLab\Config;
16+
use \PatternLab\Console;
17+
use \PatternLab\Data;
18+
use \PatternLab\Dispatcher;
19+
use \PatternLab\PatternData;
20+
use \PatternLab\PatternEngine;
21+
use \PatternLab\Template;
22+
use \PatternLab\Timer;
23+
24+
class RawPatternHelper extends \PatternLab\PatternData\Helper {
25+
26+
public function __construct($options = array()) {
27+
28+
parent::__construct($options);
29+
30+
}
31+
32+
public function run() {
33+
34+
// load default vars
35+
$patternExtension = Config::getOption("patternExtension");
36+
$patternSourceDir = Config::getOption("patternSourceDir");
37+
38+
// load the pattern data
39+
$store = PatternData::get();
40+
41+
// iterate to get raw data loaded into the PatternData Store
42+
foreach ($store as $patternStoreKey => $patternStoreData) {
43+
44+
if (($patternStoreData["category"] == "pattern") && !$patternStoreData["hidden"]) {
45+
46+
// figure out the source path for the pattern to render
47+
$srcPath = (isset($patternStoreData["pseudo"])) ? PatternData::getPatternOption($patternStoreData["original"],"pathName") : $patternStoreData["pathName"];
48+
49+
// load the raw data so it can be modified/rendered
50+
$path = $patternSourceDir."/".$srcPath.".".$patternExtension;
51+
if (file_exists($path)) {
52+
PatternData::setPatternOption($patternStoreKey,"patternRaw",file_get_contents($path));
53+
} else {
54+
Console::writeError($patternStoreData["partial"]." wasn't found for loading. the given path: ".$path);
55+
}
56+
57+
}
58+
59+
}
60+
61+
}
62+
63+
}

0 commit comments

Comments
 (0)