Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc2aaaba

Browse files
committed
fix test loading, onPageComplete visibility
1 parent8ecdac0 commitc2aaaba

File tree

17 files changed

+204
-160
lines changed

17 files changed

+204
-160
lines changed

‎CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
All notable changes to this project will be documented in this file.
33
This project adheres to[Semantic Versioning](http://semver.org/).
44

5+
##[0.5.7] - in progress
6+
-@action(openConsole)
7+
58
##[0.5.6] - 2016-03-12
69
- fixes for Windows
710
- no need to pass`handleLog` to test runner

‎lib/atom/editor.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,10 +102,14 @@ exports.openFolder = openFolder;
102102
varconsoleHasOpened=false;
103103
functiontoggleDevTools(){
104104
if(!consoleHasOpened){
105-
atom.executeJavaScriptInDevTools(console.clear());
106105
consoleHasOpened=true;
107106
console.log('Atom-CodeRoad: runs on save');
108107
}
109108
atom.toggleDevTools();
110109
}
111110
exports.toggleDevTools=toggleDevTools;
111+
functionopenDevTools(){
112+
atom.openDevTools();
113+
consoleHasOpened=true;
114+
}
115+
exports.openDevTools=openDevTools;

‎lib/components/page/page-complete.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ var material_ui_1 = require('material-ui');
44
var_components_1=require('../_components');
55
exports.PageCompleteMessage=function(_a){
66
varpage=_a.page;
7-
return(React.createElement("div",{className:'cr-task-onComplete-description'},page.completed&&page.onPageComplete ?
8-
React.createElement(material_ui_1.ListItem,{className:'cr-task-onComplete',key:'page-complete'},React.createElement(_components_1.MarkdownText,{text:page.onPageComplete}))
7+
return(React.createElement("div",{className:'cr-page-onComplete'},page.completed&&page.onPageComplete ?
8+
React.createElement(material_ui_1.ListItem,{key:'page-complete'},React.createElement(_components_1.MarkdownText,{text:page.onPageComplete}))
99
:null));
1010
};

‎lib/components/page/page.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ var default_1 = (function (_super) {
2828
var_a=this.props,page=_a.page,taskPosition=_a.taskPosition,hintPosition=_a.hintPosition,tasks=_a.tasks,runTests=_a.runTests;
2929
varcurrentTask=taskPosition<=tasks.length ?tasks[taskPosition] :null;
3030
varallComplete=taskPosition>=tasks.length;
31-
return(React.createElement(material_ui_1.Paper,{style:pageStyle,zDepth:1,className:'cr-page'},React.createElement(content_1.default,{page:page}),React.createElement(material_ui_1.Divider,null),React.createElement(task_1.Tasks,{tasks:tasks,taskPosition:taskPosition,runTests:runTests}),React.createElement(hint_1.default,{task:currentTask,hintPosition:hintPosition}),React.createElement(page_complete_1.PageCompleteMessage,{page:page}),React.createElement("div",{ref:'listEnd'}),React.createElement(toolbar_1.default,{tasks:tasks,taskPosition:taskPosition})));
31+
return(React.createElement(material_ui_1.Paper,{style:pageStyle,zDepth:1,className:'cr-page'},React.createElement(content_1.default,{page:page}),React.createElement(material_ui_1.Divider,null),React.createElement(task_1.Tasks,{tasks:tasks,taskPosition:taskPosition,runTests:runTests}),React.createElement(hint_1.default,{task:currentTask,hintPosition:hintPosition}),React.createElement(page_complete_1.PageCompleteMessage,{page:page}),React.createElement("div",{className:'listEnd',ref:'listEnd'}),React.createElement(toolbar_1.default,{tasks:tasks,taskPosition:taskPosition})));
3232
};
3333
returndefault_1;
3434
}(React.Component));
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
"use strict";
2+
varparser_1=require('./parser');
3+
functiongetCommand(actionString){
4+
varcommand=actionString.substring(0,actionString.indexOf('('));
5+
if(!command.length){
6+
console.log('Error loading editor action command ',actionString);
7+
}
8+
else{
9+
returncommand;
10+
}
11+
}
12+
exports.getCommand=getCommand;
13+
functiongetParams(actionString){
14+
varcommand=getCommand(actionString);
15+
varparams=actionString.substring(command.length+1,actionString.length-1);
16+
if(!params.length){
17+
console.error('Error loading editor action params ',actionString);
18+
returnnull;
19+
}
20+
varparamsList=parser_1.parseParams.getParams(params);
21+
returnparamsList;
22+
}
23+
exports.getParams=getParams;
24+
functioncreateObjectFromKeyValString(string){
25+
varkeyValList=string.split(/[:,]/);
26+
varobj={};
27+
for(vari=0;i<keyValList.length;i+=2){
28+
varkey=keyValList[i].trim();
29+
varval=keyValList[i+1].trim();
30+
if(!val.match(/^["'].+["']$/)){
31+
val=JSON.parse(val);
32+
}
33+
else{
34+
val=val.substring(1,val.length-1);
35+
}
36+
obj[key]=val;
37+
}
38+
returnobj;
39+
}
40+
functiongetOptions(paramString){
41+
varhasOptions=paramString.match(/\{(.+)?\}/);
42+
varoptions={};
43+
varparam=paramString;
44+
if(!!hasOptions){
45+
options=createObjectFromKeyValString(hasOptions[1]);
46+
param=paramString.split(/,?{/)[0];
47+
}
48+
return{
49+
options:options,
50+
param:param
51+
};
52+
}
53+
exports.getOptions=getOptions;
Lines changed: 18 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,19 @@
11
"use strict";
22
varEditor=require('../../atom/editor');
3-
varparser_1=require('./parser');
4-
varEditorAction={
3+
varaction_helpers_1=require('./action-helpers');
4+
varType={
55
open:'open',
66
set:'set',
7-
insert:'insert'
7+
insert:'insert',
8+
openConsole:'openConsole'
89
};
9-
functiongetCommand(actionString){
10-
varcommand=actionString.substring(0,actionString.indexOf('('));
11-
if(!command.length){
12-
console.log('Error loading editor action command ',actionString);
13-
}
14-
else{
15-
returncommand;
16-
}
17-
}
18-
exports.getCommand=getCommand;
19-
functiongetParams(actionString){
20-
varcommand=getCommand(actionString);
21-
varparams=actionString.substring(command.length+1,actionString.length-1);
22-
if(!params.length){
23-
console.error('Error loading editor action params ',actionString);
24-
returnnull;
25-
}
26-
varparamsList=parser_1.parseParams.getParams(params);
27-
returnparamsList;
28-
}
29-
exports.getParams=getParams;
30-
functioncreateObjectFromKeyValString(string){
31-
varkeyValList=string.split(/[:,]/);
32-
varobj={};
33-
for(vari=0;i<keyValList.length;i+=2){
34-
varkey=keyValList[i].trim();
35-
varval=keyValList[i+1].trim();
36-
if(!val.match(/^["'].+["']$/)){
37-
val=JSON.parse(val);
38-
}
39-
else{
40-
val=val.substring(1,val.length-1);
41-
}
42-
obj[key]=val;
43-
}
44-
returnobj;
45-
}
46-
functiongetOptions(paramString){
47-
varhasOptions=paramString.match(/\{(.+)?\}/);
48-
varoptions={};
49-
varparam=paramString;
50-
if(!!hasOptions){
51-
options=createObjectFromKeyValString(hasOptions[1]);
52-
param=paramString.split(/,?{/)[0];
53-
}
54-
return{
55-
options:options,
56-
param:param
57-
};
58-
}
59-
exports.getOptions=getOptions;
6010
functioneditorActions(actionString){
6111
returnnewPromise(function(resolve,reject){
62-
varcommand=getCommand(actionString);
63-
varparams=getParams(actionString);
12+
varcommand=action_helpers_1.getCommand(actionString);
13+
varparams=action_helpers_1.getParams(actionString);
6414
switch(command){
65-
caseEditorAction.open:
66-
varobj=getOptions(params[0]);
15+
caseType.open:
16+
varobj=action_helpers_1.getOptions(params[0]);
6717
varfile=obj.param;
6818
varoptions=obj.options;
6919
if(params.length===1){
@@ -73,7 +23,7 @@ function editorActions(actionString) {
7323
},100);
7424
}
7525
break;
76-
caseEditorAction.set:
26+
caseType.set:
7727
if(params.length===1){
7828
varcontent_1=params[0];
7929
setTimeout(function(){
@@ -82,7 +32,7 @@ function editorActions(actionString) {
8232
});
8333
}
8434
break;
85-
caseEditorAction.insert:
35+
caseType.insert:
8636
if(params.length===1){
8737
varcontent_2=params[0];
8838
setTimeout(function(){
@@ -91,6 +41,14 @@ function editorActions(actionString) {
9141
});
9242
}
9343
break;
44+
caseType.openConsole:
45+
if(params.length===0){
46+
setTimeout(function(){
47+
Editor.openDevTools();
48+
resolve(true);
49+
});
50+
}
51+
break;
9452
default:
9553
console.log('Invalid editor action command');
9654
reject(false);
@@ -100,7 +58,3 @@ function editorActions(actionString) {
10058
});
10159
}
10260
exports.editorActions=editorActions;
103-
functionopenFolder(){
104-
atom.open();
105-
}
106-
exports.openFolder=openFolder;

‎lib/reducers/task-tests/concat-tests.js

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,30 @@
11
"use strict";
22
varfs=require('fs');
3+
functionunlink(targetFile){
4+
returnnewPromise(function(resolve){
5+
if(fs.existsSync(targetFile)){
6+
fs.unlink(targetFile);
7+
}
8+
resolve();
9+
});
10+
}
311
functionconcatTests(targetFile,files){
412
console.log('files',files);
5-
if(fs.existsSync(targetFile)){
6-
fs.unlink(targetFile);
7-
}
8-
files.forEach(function(test){returnreadAppend(targetFile,test);});
13+
unlink(targetFile).then(function(){
14+
files.forEach(function(test){
15+
returnnewPromise(function(resolve){
16+
resolve(readAppend(targetFile,test));
17+
});
18+
});
19+
});
920
returntargetFile;
1021
}
1122
exports.concatTests=concatTests;
1223
functionreadAppend(targetFile,file){
1324
try{
1425
vardata=fs.readFileSync(file,'utf8');
1526
fs.appendFileSync(targetFile,data,'utf8');
16-
return;
27+
returntrue;
1728
}
1829
catch(e){
1930
console.log('Error reading test file',e);

‎package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,7 @@
5858
},
5959
"scripts": {
6060
"test":"ava",
61-
"styles":"lessc src/components/_app.less styles/styles.css",
6261
"compile":"tsc",
63-
"build":"npm runstyles && npm runcompile"
62+
"build":"npm run compile"
6463
}
6564
}

‎src/atom/editor.ts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,9 +115,14 @@ let consoleHasOpened = false;
115115
exportfunctiontoggleDevTools(){
116116
if(!consoleHasOpened){
117117
// clear console on first run
118-
atom.executeJavaScriptInDevTools(console.clear());
118+
//atom.executeJavaScriptInDevTools(console.clear());
119119
consoleHasOpened=true;
120-
console.log('Atom-CodeRoad: runs on save')
120+
console.log('Atom-CodeRoad: runs on save');
121121
}
122122
atom.toggleDevTools();
123123
}
124+
125+
exportfunctionopenDevTools(){
126+
atom.openDevTools();
127+
consoleHasOpened=true;
128+
}

‎src/components/_app.less

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
@import'ui-variables';
12
@import'./routes/_routes';
23
@import'./menu/_menu';
34
@import'./page/_chapter';
@@ -6,9 +7,6 @@
67
@import'./alert/_alert';
78
@import'./start/_start';
89

9-
@import"ui-variables";
10-
@import"ui-mixins";
11-
1210
atom-panel-container> atom-panel>#crv {
1311
animation: slide0.3sforwards;
1412
animation-timing-function:ease-in-out;

‎src/components/page/_page.less

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
.cr-page {
22
position:relative;
3+
&-listEnd {
4+
height:70px;
5+
}
6+
&-onComplete {
7+
margin-bottom:70px;
8+
}
39
&-toolbar {
410
position:fixed;
511
bottom:0;
612
right:0;
713
height:60px;
814
width:400px;
9-
&-completed {
10-
height:200px;
11-
}
1215
}
1316
}
1417
.cr-tasks {

‎src/components/page/page-complete.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import {ListItem} from 'material-ui';
33
import{MarkdownText}from'../_components';
44

55
exportconstPageCompleteMessage=({page})=>(
6-
<divclassName='cr-task-onComplete-description'>
6+
<divclassName='cr-page-onComplete'>
77
{page.completed&&page.onPageComplete ?
8-
<ListItemclassName='cr-task-onComplete'key='page-complete'>
8+
<ListItemkey='page-complete'>
99
<MarkdownTexttext={page.onPageComplete}/>
1010
</ListItem>
1111
:null}

‎src/components/page/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ render() {
4141
<Taskstasks={tasks}taskPosition={taskPosition}runTests={runTests}/>
4242
<Hintstask={currentTask}hintPosition={hintPosition}/>
4343
<PageCompleteMessagepage={page}/>
44-
<divref='listEnd'></div>
44+
<divclassName='listEnd'ref='listEnd'></div>
4545

4646
<PageToolbartasks={tasks}taskPosition={taskPosition}/>
4747
</Paper>
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
import{parseParams}from'./parser';
2+
3+
exportfunctiongetCommand(actionString:string):string{
4+
// content before bracket
5+
letcommand=actionString.substring(0,actionString.indexOf('('));
6+
if(!command.length){
7+
console.log('Error loading editor action command ',actionString);
8+
}else{
9+
returncommand;
10+
}
11+
}
12+
13+
14+
exportfunctiongetParams(actionString:string):string[]{
15+
// content in brackets, split by comma
16+
letcommand=getCommand(actionString);
17+
letparams=actionString.substring(command.length+1,actionString.length-1);// trim brackets
18+
if(!params.length){
19+
console.error('Error loading editor action params ',actionString);
20+
returnnull;
21+
}
22+
letparamsList:string[]=parseParams.getParams(params);
23+
returnparamsList;
24+
}
25+
26+
functioncreateObjectFromKeyValString(string:string):Object{
27+
letkeyValList:string[]=string.split(/[:,]/);
28+
letobj={};
29+
for(leti=0;i<keyValList.length;i+=2){
30+
letkey=keyValList[i].trim();
31+
letval=keyValList[i+1].trim();
32+
if(!val.match(/^["'].+["']$/)){
33+
// not a string
34+
val=JSON.parse(val);
35+
}else{
36+
// string, remove extra quotes
37+
val=val.substring(1,val.length-1);
38+
}
39+
obj[key]=val;
40+
}
41+
returnobj;
42+
}
43+
44+
exportfunctiongetOptions(paramString:string):{param:string,options:Object}{
45+
lethasOptions=paramString.match(/\{(.+)?\}/);
46+
letoptions={};
47+
letparam=paramString;
48+
if(!!hasOptions){
49+
options=createObjectFromKeyValString(hasOptions[1]);
50+
param=paramString.split(/,?{/)[0];
51+
}
52+
return{
53+
options,
54+
param
55+
};
56+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp