| Conditions | 21 | 
| Paths | 11520 | 
| Total Lines | 199 | 
| Lines | 0 | 
| Ratio | 0 % | 
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
Complex classes like tinymce.PluginManager.add(ꞌfullpageꞌ) often do a lot of different things. To break such a class down, we need to identify a cohesive component within that class. A common approach to find such a component is to look for fields/methods that share the same prefixes, or suffixes.
Once you have determined the fields that belong together, you can apply the Extract Class refactoring. If the component makes sense as a sub-class, Extract Subclass is also a candidate, and is often faster.
| 1 | /**  | 
            ||
| 115 | 	function dataToHtml(data) { | 
            ||
| 116 | var headerFragment, headElement, html, elm, value, dom = editor.dom;  | 
            ||
| 117 | |||
| 118 | 		function setAttr(elm, name, value) { | 
            ||
| 119 | elm.attr(name, value ? value : undefined);  | 
            ||
| 120 | }  | 
            ||
| 121 | |||
| 122 | 		function addHeadNode(node) { | 
            ||
| 123 | 			if (headElement.firstChild) { | 
            ||
| 124 | headElement.insert(node, headElement.firstChild);  | 
            ||
| 125 | 			} else { | 
            ||
| 126 | headElement.append(node);  | 
            ||
| 127 | }  | 
            ||
| 128 | }  | 
            ||
| 129 | |||
| 130 | headerFragment = parseHeader();  | 
            ||
| 131 | 		headElement = headerFragment.getAll('head')[0]; | 
            ||
| 132 | 		if (!headElement) { | 
            ||
| 133 | 			elm = headerFragment.getAll('html')[0]; | 
            ||
| 134 | 			headElement = new Node('head', 1); | 
            ||
| 135 | |||
| 136 | 			if (elm.firstChild) { | 
            ||
| 137 | elm.insert(headElement, elm.firstChild, true);  | 
            ||
| 138 | 			} else { | 
            ||
| 139 | elm.append(headElement);  | 
            ||
| 140 | }  | 
            ||
| 141 | }  | 
            ||
| 142 | |||
| 143 | // Add/update/remove XML-PI  | 
            ||
| 144 | elm = headerFragment.firstChild;  | 
            ||
| 145 | 		if (data.xml_pi) { | 
            ||
| 146 | value = 'version="1.0"';  | 
            ||
| 147 | |||
| 148 | 			if (data.docencoding) { | 
            ||
| 149 | value += ' encoding="' + data.docencoding + '"';  | 
            ||
| 150 | }  | 
            ||
| 151 | |||
| 152 | 			if (elm.type != 7) { | 
            ||
| 153 | 				elm = new Node('xml', 7); | 
            ||
| 154 | headerFragment.insert(elm, headerFragment.firstChild, true);  | 
            ||
| 155 | }  | 
            ||
| 156 | |||
| 157 | elm.value = value;  | 
            ||
| 158 | 		} else if (elm && elm.type == 7) { | 
            ||
| 159 | elm.remove();  | 
            ||
| 160 | }  | 
            ||
| 161 | |||
| 162 | // Add/update/remove doctype  | 
            ||
| 163 | 		elm = headerFragment.getAll('#doctype')[0]; | 
            ||
| 164 | 		if (data.doctype) { | 
            ||
| 165 | 			if (!elm) { | 
            ||
| 166 | 				elm = new Node('#doctype', 10); | 
            ||
| 167 | |||
| 168 | 				if (data.xml_pi) { | 
            ||
| 169 | headerFragment.insert(elm, headerFragment.firstChild);  | 
            ||
| 170 | 				} else { | 
            ||
| 171 | addHeadNode(elm);  | 
            ||
| 172 | }  | 
            ||
| 173 | }  | 
            ||
| 174 | |||
| 175 | elm.value = data.doctype.substring(9, data.doctype.length - 1);  | 
            ||
| 176 | 		} else if (elm) { | 
            ||
| 177 | elm.remove();  | 
            ||
| 178 | }  | 
            ||
| 179 | |||
| 180 | // Add meta encoding  | 
            ||
| 181 | elm = null;  | 
            ||
| 182 | 		each(headerFragment.getAll('meta'), function(meta) { | 
            ||
| 183 | 			if (meta.attr('http-equiv') == 'Content-Type') { | 
            ||
| 184 | elm = meta;  | 
            ||
| 185 | }  | 
            ||
| 186 | });  | 
            ||
| 187 | |||
| 188 | 		if (data.docencoding) { | 
            ||
| 189 | 			if (!elm) { | 
            ||
| 190 | 				elm = new Node('meta', 1); | 
            ||
| 191 | 				elm.attr('http-equiv', 'Content-Type'); | 
            ||
| 192 | elm.shortEnded = true;  | 
            ||
| 193 | addHeadNode(elm);  | 
            ||
| 194 | }  | 
            ||
| 195 | |||
| 196 | 			elm.attr('content', 'text/html; charset=' + data.docencoding); | 
            ||
| 197 | 		} else if (elm) { | 
            ||
| 198 | elm.remove();  | 
            ||
| 199 | }  | 
            ||
| 200 | |||
| 201 | // Add/update/remove title  | 
            ||
| 202 | 		elm = headerFragment.getAll('title')[0]; | 
            ||
| 203 | 		if (data.title) { | 
            ||
| 204 | 			if (!elm) { | 
            ||
| 205 | 				elm = new Node('title', 1); | 
            ||
| 206 | addHeadNode(elm);  | 
            ||
| 207 | 			} else { | 
            ||
| 208 | elm.empty();  | 
            ||
| 209 | }  | 
            ||
| 210 | |||
| 211 | 			elm.append(new Node('#text', 3)).value = data.title; | 
            ||
| 212 | 		} else if (elm) { | 
            ||
| 213 | elm.remove();  | 
            ||
| 214 | }  | 
            ||
| 215 | |||
| 216 | // Add/update/remove meta  | 
            ||
| 217 | 		each('keywords,description,author,copyright,robots'.split(','), function(name) { | 
            ||
| 218 | 			var nodes = headerFragment.getAll('meta'), i, meta, value = data[name]; | 
            ||
| 219 | |||
| 220 | 			for (i = 0; i < nodes.length; i++) { | 
            ||
| 221 | meta = nodes[i];  | 
            ||
| 222 | |||
| 223 | 				if (meta.attr('name') == name) { | 
            ||
| 224 | 					if (value) { | 
            ||
| 225 | 						meta.attr('content', value); | 
            ||
| 226 | 					} else { | 
            ||
| 227 | meta.remove();  | 
            ||
| 228 | }  | 
            ||
| 229 | |||
| 230 | return;  | 
            ||
| 231 | }  | 
            ||
| 232 | }  | 
            ||
| 233 | |||
| 234 | 			if (value) { | 
            ||
| 235 | 				elm = new Node('meta', 1); | 
            ||
| 236 | 				elm.attr('name', name); | 
            ||
| 237 | 				elm.attr('content', value); | 
            ||
| 238 | elm.shortEnded = true;  | 
            ||
| 239 | |||
| 240 | addHeadNode(elm);  | 
            ||
| 241 | }  | 
            ||
| 242 | });  | 
            ||
| 243 | |||
| 244 | 		var currentStyleSheetsMap = {}; | 
            ||
| 245 | 		tinymce.each(headerFragment.getAll('link'), function(stylesheet) { | 
            ||
| 246 | 			if (stylesheet.attr('rel') == 'stylesheet') { | 
            ||
| 247 | 				currentStyleSheetsMap[stylesheet.attr('href')] = stylesheet; | 
            ||
| 248 | }  | 
            ||
| 249 | });  | 
            ||
| 250 | |||
| 251 | // Add new  | 
            ||
| 252 | 		tinymce.each(data.stylesheets, function(stylesheet) { | 
            ||
| 253 | 			if (!currentStyleSheetsMap[stylesheet]) { | 
            ||
| 254 | 				elm = new Node('link', 1); | 
            ||
| 255 | 				elm.attr({ | 
            ||
| 256 | rel: 'stylesheet',  | 
            ||
| 257 | text: 'text/css',  | 
            ||
| 258 | href: stylesheet  | 
            ||
| 259 | });  | 
            ||
| 260 | elm.shortEnded = true;  | 
            ||
| 261 | addHeadNode(elm);  | 
            ||
| 262 | }  | 
            ||
| 263 | |||
| 264 | delete currentStyleSheetsMap[stylesheet];  | 
            ||
| 265 | });  | 
            ||
| 266 | |||
| 267 | // Delete old  | 
            ||
| 268 | 		tinymce.each(currentStyleSheetsMap, function(stylesheet) { | 
            ||
| 269 | stylesheet.remove();  | 
            ||
| 270 | });  | 
            ||
| 271 | |||
| 272 | // Update body attributes  | 
            ||
| 273 | 		elm = headerFragment.getAll('body')[0]; | 
            ||
| 274 | 		if (elm) { | 
            ||
| 275 | setAttr(elm, 'dir', data.langdir);  | 
            ||
| 276 | setAttr(elm, 'style', data.style);  | 
            ||
| 277 | setAttr(elm, 'vlink', data.visited_color);  | 
            ||
| 278 | setAttr(elm, 'link', data.link_color);  | 
            ||
| 279 | setAttr(elm, 'alink', data.active_color);  | 
            ||
| 280 | |||
| 281 | // Update iframe body as well  | 
            ||
| 282 | 			dom.setAttribs(editor.getBody(), { | 
            ||
| 283 | style: data.style,  | 
            ||
| 284 | dir: data.dir,  | 
            ||
| 285 | vLink: data.visited_color,  | 
            ||
| 286 | link: data.link_color,  | 
            ||
| 287 | aLink: data.active_color  | 
            ||
| 288 | });  | 
            ||
| 289 | }  | 
            ||
| 290 | |||
| 291 | // Set html attributes  | 
            ||
| 292 | 		elm = headerFragment.getAll('html')[0]; | 
            ||
| 293 | 		if (elm) { | 
            ||
| 294 | setAttr(elm, 'lang', data.langcode);  | 
            ||
| 295 | setAttr(elm, 'xml:lang', data.langcode);  | 
            ||
| 296 | }  | 
            ||
| 297 | |||
| 298 | // No need for a head element  | 
            ||
| 299 | 		if (!headElement.firstChild) { | 
            ||
| 300 | headElement.remove();  | 
            ||
| 301 | }  | 
            ||
| 302 | |||
| 303 | // Serialize header fragment and crop away body part  | 
            ||
| 304 | 		html = new tinymce.html.Serializer({ | 
            ||
| 305 | validate: false,  | 
            ||
| 306 | indent: true,  | 
            ||
| 307 | apply_source_formatting: true,  | 
            ||
| 308 | indent_before: 'head,html,body,meta,title,script,link,style',  | 
            ||
| 309 | indent_after: 'head,html,body,meta,title,script,link,style'  | 
            ||
| 310 | }).serialize(headerFragment);  | 
            ||
| 311 | |||
| 312 | 		head = html.substring(0, html.indexOf('</body>')); | 
            ||
| 313 | }  | 
            ||
| 314 | |||
| 494 | 
This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.
To learn more about declaring variables in Javascript, see the MDN.