-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSimpleExtractor.php
130 lines (113 loc) · 2.46 KB
/
SimpleExtractor.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php
require_once __DIR__ . DIRECTORY_SEPARATOR . 'SimpleFormatter.php';
class SimpleExtractor
{
private string $icons_json_file;
private array $data;
private bool $all;
private bool $fancy;
private string $style;
private SimpleFormatter $formatter;
public function __construct(
$icons_json_file,
$all,
$formatter,
$style = 'solid',
$fancy = false
)
{
$this->icons_json_file = $icons_json_file;
$this->data = json_decode(file_get_contents($this->icons_json_file), true);
$this->all = $all;
$this->formatter = $formatter;
$this->style = $style;
$this->fancy = $fancy;
}
public function extract() {
foreach ($this->data as $key => $value) {
if ($this->fancy)
echo "$key\n";
if( $this->all
|| ( in_array($this->style, $value['styles']))) {
$this->formatter->add($key, $value);
}
}
}
/**
* @return string
*/
public function getIconsJsonFile(): string
{
return $this->icons_json_file;
}
/**
* @param string $icons_json_file
*/
public function setIconsJsonFile(string $icons_json_file): void
{
$this->icons_json_file = $icons_json_file;
}
/**
* @return bool
*/
public function isAll(): bool
{
return $this->all;
}
/**
* @param bool $all
*/
public function setAll(bool $all): void
{
$this->all = $all;
}
/**
* @return string
*/
public function getStyle(): string
{
return $this->style;
}
/**
* @param string $style
*/
public function setStyle(string $style): void
{
$this->style = $style;
}
/**
* @return SimpleFormatter
*/
public function getFormatter(): SimpleFormatter
{
return $this->formatter;
}
/**
* @param SimpleFormatter $formatter
*/
public function setFormatter(SimpleFormatter $formatter): void
{
$this->formatter = $formatter;
}
/**
* @return array
*/
public function getData(): array
{
return $this->data;
}
/**
* @return bool
*/
public function isFancy(): bool
{
return $this->fancy;
}
/**
* @param bool $fancy
*/
public function setFancy(bool $fancy): void
{
$this->fancy = $fancy;
}
}