UNPKG

4.41 kBJavaScriptView Raw
1var replacements = {
2
3 /**
4 * Between replacement (replaces :min and :max)
5 *
6 * @param {string} template
7 * @param {Rule} rule
8 * @return {string}
9 */
10 between: function(template, rule) {
11 var parameters = rule.getParameters();
12 return this._replacePlaceholders(rule, template, {
13 min: parameters[0],
14 max: parameters[1]
15 });
16 },
17
18 /**
19 * Required_if replacement.
20 *
21 * @param {string} template
22 * @param {Rule} rule
23 * @return {string}
24 */
25 required_if: function(template, rule) {
26 var parameters = rule.getParameters();
27 return this._replacePlaceholders(rule, template, {
28 other: this._getAttributeName(parameters[0]),
29 value: parameters[1]
30 });
31 },
32
33 /**
34 * Required_unless replacement.
35 *
36 * @param {string} template
37 * @param {Rule} rule
38 * @return {string}
39 */
40 required_unless: function(template, rule) {
41 var parameters = rule.getParameters();
42 return this._replacePlaceholders(rule, template, {
43 other: this._getAttributeName(parameters[0]),
44 value: parameters[1]
45 });
46 },
47
48 /**
49 * Required_with replacement.
50 *
51 * @param {string} template
52 * @param {Rule} rule
53 * @return {string}
54 */
55 required_with: function(template, rule) {
56 var parameters = rule.getParameters();
57 return this._replacePlaceholders(rule, template, {
58 field: this._getAttributeName(parameters[0])
59 });
60 },
61
62 /**
63 * Required_with_all replacement.
64 *
65 * @param {string} template
66 * @param {Rule} rule
67 * @return {string}
68 */
69 required_with_all: function(template, rule) {
70 var parameters = rule.getParameters();
71 var getAttributeName = this._getAttributeName.bind(this);
72 return this._replacePlaceholders(rule, template, {
73 fields: parameters.map(getAttributeName).join(', ')
74 });
75 },
76
77 /**
78 * Required_without replacement.
79 *
80 * @param {string} template
81 * @param {Rule} rule
82 * @return {string}
83 */
84 required_without: function(template, rule) {
85 var parameters = rule.getParameters();
86 return this._replacePlaceholders(rule, template, {
87 field: this._getAttributeName(parameters[0])
88 });
89 },
90
91 /**
92 * Required_without_all replacement.
93 *
94 * @param {string} template
95 * @param {Rule} rule
96 * @return {string}
97 */
98 required_without_all: function(template, rule) {
99 var parameters = rule.getParameters();
100 var getAttributeName = this._getAttributeName.bind(this);
101 return this._replacePlaceholders(rule, template, {
102 fields: parameters.map(getAttributeName).join(', ')
103 });
104 },
105
106 /**
107 * After replacement.
108 *
109 * @param {string} template
110 * @param {Rule} rule
111 * @return {string}
112 */
113 after: function(template, rule) {
114 var parameters = rule.getParameters();
115 return this._replacePlaceholders(rule, template, {
116 after: this._getAttributeName(parameters[0])
117 });
118 },
119
120 /**
121 * Before replacement.
122 *
123 * @param {string} template
124 * @param {Rule} rule
125 * @return {string}
126 */
127 before: function(template, rule) {
128 var parameters = rule.getParameters();
129 return this._replacePlaceholders(rule, template, {
130 before: this._getAttributeName(parameters[0])
131 });
132 },
133
134 /**
135 * After_or_equal replacement.
136 *
137 * @param {string} template
138 * @param {Rule} rule
139 * @return {string}
140 */
141 after_or_equal: function(template, rule) {
142 var parameters = rule.getParameters();
143 return this._replacePlaceholders(rule, template, {
144 after_or_equal: this._getAttributeName(parameters[0])
145 });
146 },
147
148 /**
149 * Before_or_equal replacement.
150 *
151 * @param {string} template
152 * @param {Rule} rule
153 * @return {string}
154 */
155 before_or_equal: function(template, rule) {
156 var parameters = rule.getParameters();
157 return this._replacePlaceholders(rule, template, {
158 before_or_equal: this._getAttributeName(parameters[0])
159 });
160 },
161
162 /**
163 * Same replacement.
164 *
165 * @param {string} template
166 * @param {Rule} rule
167 * @return {string}
168 */
169 same: function(template, rule) {
170 var parameters = rule.getParameters();
171 return this._replacePlaceholders(rule, template, {
172 same: this._getAttributeName(parameters[0])
173 });
174 },
175};
176
177function formatter(attribute) {
178 return attribute.replace(/[_\[]/g, ' ').replace(/]/g, '');
179}
180
181module.exports = {
182 replacements: replacements,
183 formatter: formatter
184};