automock 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c29cacf8edc506987577004177435059b9bc3599
4
- data.tar.gz: 9e2f0ce30c6f3cb6091576750beae29ffc86f87b
3
+ metadata.gz: 4078a9648eee2d574180ce41d2ba6bff01b80a17
4
+ data.tar.gz: adbf761b3388fe690731c5455004959eabb53cb8
5
5
  SHA512:
6
- metadata.gz: 065c43312fdb86f0a77b147bf09d557db387d3acbb1d4622de014ebe38040199235f43d6d89837e4132de3dbe6d908371bc1e87a5916db38efa2584c743d2789
7
- data.tar.gz: 4dd774c0f87a685eda968a3a0617ef463c83d032da5014758fc23a5938376790230c8736a1ca7a6718b9b8f0ae0f08a4e2a1fe6cfcc728deeb0f7ec91aaef83e
6
+ metadata.gz: 5325c92d9ae0729e0939b0ac797ff1ece8f40f4a25fe1d55baa91174ba026f1d8a85bdebe9db6330c32de5a806cc1949de865e64e9683b877e72443ce6c172d4
7
+ data.tar.gz: b4d2349f2a472032c999ad008964058b1ded7ffc7aa7e148f1037bd9a7233bfc5326cee64b230c210fe80203dcab9ae9c7c37a9cc9bba5bbb8696b9eac57c951
data/README.md CHANGED
@@ -73,7 +73,7 @@ You can manage mocking data, on or off, by mocking response management server.
73
73
  By default, mocking management server use 8000 port.
74
74
  So you can access it.
75
75
 
76
- ![management_server_screenshot](https://cloud.githubusercontent.com/assets/4954534/12078401/3621c93c-b254-11e5-9f7e-21bd075bed2e.png)
76
+ ![management_server_screenshot](https://cloud.githubusercontent.com/assets/4954534/12217110/4babb652-b739-11e5-86bb-fe417f3f6754.png)
77
77
 
78
78
  Selected mocking data is used by proxy.
79
79
  Unselected api is passed through normally.
@@ -1,3 +1,3 @@
1
1
  module Automock
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
data/server/package.json CHANGED
@@ -32,6 +32,7 @@
32
32
  "object-assign": "^4.0.1",
33
33
  "react": "^0.14.3",
34
34
  "react-dom": "^0.14.3",
35
+ "react-json-tree": "^0.4.0",
35
36
  "react-redux": "^4.0.5",
36
37
  "recursive-readdir": "^1.3.0",
37
38
  "redux": "^3.0.5",
@@ -2,7 +2,7 @@ import React from 'react';
2
2
 
3
3
  export default class FileList extends React.Component {
4
4
  handleSelect(e) {
5
- const selectedFile = this.props.files.filter((file) => file.name === e.target.value).toArray()[0];
5
+ const selectedFile = this.props.files.filter((file) => file.name === e.target.value)[0];
6
6
  this.props.onChange(selectedFile);
7
7
  }
8
8
  render() {
@@ -0,0 +1,28 @@
1
+ import React from 'react';
2
+ import JSONTree from 'react-json-tree';
3
+ import assign from 'object-assign';
4
+
5
+ export default class JsonViewer extends React.Component {
6
+ parseJson() {
7
+ const srcJson = this.props.dataSource;
8
+ const distJson = assign({}, srcJson);
9
+ if (!distJson.name) {
10
+ return distJson;
11
+ }
12
+ distJson.response_body = JSON.parse(srcJson.response_body);
13
+ delete distJson.id; // don't show id
14
+ return distJson;
15
+ }
16
+ render(){
17
+ const json = this.parseJson();
18
+
19
+ let jsonTree;
20
+ if (json.name) {
21
+ jsonTree = <div className="json-viewer"><JSONTree data={ json } keyName={json.name} /></div>;
22
+ }
23
+
24
+ return (
25
+ <div>{ jsonTree }</div>
26
+ );
27
+ }
28
+ }
@@ -9,7 +9,7 @@ export default class SelectButtons extends React.Component {
9
9
  }
10
10
  render() {
11
11
  return(
12
- <div className="select-buttons col-xs-1">
12
+ <div className="select-buttons col-xs-2">
13
13
  <button className="btn btn-primary" onClick={this.handleClickSelectButton.bind(this)}>→</button>
14
14
  <button className="btn" onClick={this.handleClickUnselectButton.bind(this)}>←</button>
15
15
  </div>
@@ -1,43 +1,54 @@
1
1
  import React from 'react';
2
2
  import FileList from './file_list';
3
3
  import SelectButtons from './select_buttons';
4
+ import JsonViewer from './json_viewer';
4
5
 
5
6
  export default class SelectableLists extends React.Component {
6
7
  constructor() {
7
8
  super();
8
9
  this.state = {
9
- selectedFromNotSelectedFiles: '',
10
- selectedFromSelectedFiles: ''
10
+ selectedFromNotSelectedFiles: {},
11
+ selectedFromSelectedFiles: {},
12
+ viewingFile: {}
11
13
  };
12
14
  }
13
15
 
14
16
  handleSelectFromNotSelectedFiles(selectedFile) {
15
- this.setState({ selectedFromNotSelectedFiles: selectedFile });
17
+ this.setState({
18
+ viewingFile: selectedFile,
19
+ selectedFromNotSelectedFiles: selectedFile
20
+ });
16
21
  }
17
22
 
18
23
  handleSelectFromSelectedFiles(selectedFile) {
19
- this.setState({ selectedFromSelectedFiles: selectedFile });
24
+ this.setState({
25
+ viewingFile: selectedFile,
26
+ selectedFromSelectedFiles: selectedFile
27
+ });
20
28
  }
21
29
 
22
30
  render() {
23
31
  const { selectedFiles, unselectedFiles } = this.props;
24
32
  return(
25
- <div className="selectable-lists row">
26
- <FileList
27
- title={"not selected files"}
28
- files={unselectedFiles}
29
- onChange={this.handleSelectFromNotSelectedFiles.bind(this)}
30
- />
31
- <SelectButtons
32
- onClickSelectButton={this.props.onCreateSelectedFile}
33
- onClickUnselectButton={this.props.onDeleteSelectedFile}
34
- {...this.state}
35
- />
36
- <FileList
37
- title={"selected files"}
38
- files={selectedFiles}
39
- onChange={this.handleSelectFromSelectedFiles.bind(this)}
40
- />
33
+ <div className="selectable-lists">
34
+ <div className="row">
35
+ <FileList
36
+ title={"not selected files"}
37
+ files={unselectedFiles}
38
+ onChange={this.handleSelectFromNotSelectedFiles.bind(this)}
39
+ />
40
+ <SelectButtons
41
+ onClickSelectButton={this.props.onCreateSelectedFile}
42
+ onClickUnselectButton={this.props.onDeleteSelectedFile}
43
+ {...this.state}
44
+ />
45
+ <FileList
46
+ title={"selected files"}
47
+ files={selectedFiles}
48
+ onChange={this.handleSelectFromSelectedFiles.bind(this)}
49
+ />
50
+ </div>
51
+ <JsonViewer dataSource={this.state.viewingFile}/>
41
52
  </div>
42
53
  );
43
54
  }
@@ -24,10 +24,19 @@ class AppContainer extends React.Component {
24
24
  deleteSelectedFile(id);
25
25
  }
26
26
 
27
- render() {
27
+ computeFileContents() {
28
28
  const { selectedFiles, mockFiles } = this.props;
29
29
  const selectedFileNames = selectedFiles.map((file) => file.name).toArray();
30
- const unselectedFiles = mockFiles.filter((file) => !_.includes(selectedFileNames, file.name));
30
+ const splited = _.partition(mockFiles.toArray(), (file) => _.includes(selectedFileNames, file.name));
31
+ splited[0] = splited[0].map((file) => {
32
+ file.id = _.find(selectedFiles.toArray(), (selectedFile) => selectedFile.name === file.name).id;
33
+ return file;
34
+ });
35
+ return({ selectedFiles: splited[0], unselectedFiles: splited[1] });
36
+ }
37
+
38
+ render() {
39
+ const { selectedFiles, unselectedFiles } = this.computeFileContents();
31
40
  return (
32
41
  <div className="container">
33
42
  <SelectableLists
@@ -2,3 +2,4 @@
2
2
  @import './components/selectable_list';
3
3
  @import './components/file_list';
4
4
  @import './components/select_buttons';
5
+ @import './components/json_viewer';
@@ -1,4 +1,5 @@
1
1
  .file-list {
2
+ margin-bottom: 20px;
2
3
  select { width: 100%; }
3
4
  .title {
4
5
  background-color: gray;
@@ -0,0 +1,6 @@
1
+ .json-viewer {
2
+ border: gray solid 1px;
3
+ li > div, li > div ~ label {
4
+ cursor: pointer;
5
+ }
6
+ }
@@ -1,6 +1,8 @@
1
1
  .select-buttons {
2
- button {
3
- display: block;
4
- margin: 50px 0;
5
- }
2
+ display: flex;
3
+ flex-direction: column;
4
+ height: 200px;
5
+ justify-content: space-around;
6
+
7
+ button { display: block; }
6
8
  }
@@ -1,3 +1,3 @@
1
1
  .selectable-lists {
2
- margin-top: 50px;
2
+ margin-top: 60px;
3
3
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: automock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - joe-re
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-01-07 00:00:00.000000000 Z
11
+ date: 2016-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -133,6 +133,7 @@ files:
133
133
  - server/src/assets/javascripts/actions/mock_files_actions.js
134
134
  - server/src/assets/javascripts/actions/selected_files_actions.js
135
135
  - server/src/assets/javascripts/components/file_list.react.js
136
+ - server/src/assets/javascripts/components/json_viewer.react.js
136
137
  - server/src/assets/javascripts/components/select_buttons.react.js
137
138
  - server/src/assets/javascripts/components/selectable_lists.react.js
138
139
  - server/src/assets/javascripts/containers/app.react.js
@@ -142,6 +143,7 @@ files:
142
143
  - server/src/assets/javascripts/reducers/selected_files.js
143
144
  - server/src/assets/stylesheets/application.scss
144
145
  - server/src/assets/stylesheets/components/_file_list.scss
146
+ - server/src/assets/stylesheets/components/_json_viewer.scss
145
147
  - server/src/assets/stylesheets/components/_select_buttons.scss
146
148
  - server/src/assets/stylesheets/components/_selectable_list.scss
147
149
  - server/src/db/database.json
@@ -174,7 +176,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
176
  version: '0'
175
177
  requirements: []
176
178
  rubyforge_project:
177
- rubygems_version: 2.2.5
179
+ rubygems_version: 2.4.5.1
178
180
  signing_key:
179
181
  specification_version: 4
180
182
  summary: Auto-generate mock_data of JSON API response from your request-specs.