sawa 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f39eefee142eb6f59e65b1fe0d82fd45efbedf5b
4
- data.tar.gz: 2303cb3b6570dd0acbdf24e4cbe42bd8cbd8032f
3
+ metadata.gz: 863315e58ff876e3c62a7b83c8fa12ba9752c9c0
4
+ data.tar.gz: 9923f694c218df588e5e3998811c4e516323f2d5
5
5
  SHA512:
6
- metadata.gz: c0465d195d08de3e741dabc4a0d8203324385aa8a05cc7825d45a7a099708fab5dd6b76e995a18fee81fdead4c88a74dc0c7361bf2155d9e3ee7ce4c9033fb88
7
- data.tar.gz: 2ca23f63bd56b9e64e9ee168ebcdc4ed79a2789f36a53ad9becf6851244156aff9ac1dd9e81332cec3b14371f4ddb948d8a9ac1ef2b3b423ab4c872a3f3bffba
6
+ metadata.gz: f0a4a4aa27723f9b860f0b42815b131046fc1fa1b677a028506cca932ef55e39492ece0070b7d346268edaa12722043ddd9a6cd518f210ba3cee9c837956dac9
7
+ data.tar.gz: ff632cc8e7945133a156f3a61c6d07781de2b5a7d06845740317aca37d7e2021aae2773a33f5b852840c628cb973fd1bae21779ef0091ec613ba16d3fbf98e41
data/bin/sawa CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  require 'sawa'
4
4
  require 'sawa/version'
5
+ require 'optparse'
6
+ require 'fileutils'
5
7
 
6
8
  class Sawa
7
9
  class CLI
@@ -10,6 +12,52 @@ class Sawa
10
12
  opts = OptionParser.new do |opts|
11
13
  opts.banner = "Usage: sawa [-c] [-t] [-e] [-r library] FILE ..."
12
14
 
15
+ opts.separator " "
16
+
17
+ opts.separator "Examples:"
18
+ opts.separator " $ mustache data.yml template.mustache"
19
+ opts.separator " $ cat data.yml | mustache - template.mustache"
20
+ opts.separator " $ mustache -c template.mustache"
21
+
22
+ opts.separator " "
23
+
24
+ opts.separator "See https://github.com/shouaya/sawagem"
25
+ opts.separator " for more details."
26
+
27
+ opts.separator " "
28
+ opts.separator "Options:"
29
+
30
+ opts.on("-n", "--new FILE", "create sawa project") do |file|
31
+ puts exec('git clone https://github.com/shouaya/sawaapp.git ' + file)
32
+ exit
33
+ end
34
+
35
+ opts.on("-g", "--generate FILE", "generate source from file") do |file|
36
+ puts Sawa.new(file).generate_code
37
+ exit
38
+ end
39
+
40
+ opts.on("-s", "--server", "run rest api server") do
41
+ puts "start rest api server"
42
+ system('start java -cp bin;lib\sawa.jar;. com.jialu.sawa.MiniApp server mini.yml')
43
+ exit
44
+ end
45
+
46
+ opts.on("-d", "--dropdb", "drop db") do
47
+ puts "drop db"
48
+ system('start java -cp bin;lib\sawa.jar;. com.jialu.sawa.MiniApp db drop-all --confirm-delete-everything mini.yml')
49
+ exit
50
+ end
51
+
52
+ #TODO
53
+ # opts.on("-ac", "--antcompile", "ant compile java file to class") do
54
+ # exit
55
+ # end
56
+ # opts.on("-r", "--replace", "replace domian in build js") do
57
+ # exit
58
+ # end
59
+ # npm start / npm run /npm build
60
+
13
61
  opts.on("-v", "--version", "Print the version") do |v|
14
62
  puts "Sawa v#{Sawa::VERSION}"
15
63
  exit
@@ -32,7 +80,4 @@ end
32
80
  ARGV << '-h' if ARGV.empty? && $stdin.tty?
33
81
 
34
82
  # Process options
35
- Mustache::CLI.parse_options(ARGV) if $stdin.tty?
36
-
37
- # Still here - process rest of ARGF
38
- Mustache::CLI.process_files(ARGF)
83
+ Sawa::CLI.parse_options(ARGV) if $stdin.tty?
@@ -1,15 +1,4 @@
1
1
  class MiniProperty
2
- @row
3
- @sheet
4
- @idx_type
5
- @idx_name
6
- @idx_unique
7
- @idx_nullable
8
- @idx_jsonignore
9
- @idx_title
10
- @idx_mappedBy
11
- @idx_refColumn
12
-
13
2
  def initialize(row, sheet)
14
3
  @row = row
15
4
  @sheet = sheet
@@ -1,14 +1,4 @@
1
1
  class MiniResource
2
- @row
3
- @sheet
4
- @idx_method
5
- @idx_process
6
- @idx_role
7
- @idx_desc
8
- @idx_islist
9
- @idx_param
10
- @idx_path
11
- @idx_httpM
12
2
 
13
3
  def initialize(row, sheet)
14
4
  @row = row
@@ -1,26 +1,9 @@
1
1
  require 'mustache'
2
2
  require 'spreadsheet'
3
- require './lib/MiniProperty.rb'
4
- require './lib/MiniResource.rb'
3
+ require 'sawa/MiniProperty.rb'
4
+ require 'sawa/MiniResource.rb'
5
5
 
6
6
  class MiniSheet < Mustache
7
- @sheet
8
- @config
9
- @idx_path
10
- @idx_title
11
- @idx_method
12
- @idx_process
13
- @idx_role
14
- @idx_type
15
- @idx_name
16
- @idx_unique
17
- @idx_nullable
18
- @idx_jsonignore
19
- @idx_title
20
- @idx_mappedBy
21
- @idx_refColumn
22
- @idx_isList
23
- @idx_param
24
7
 
25
8
  def initialize(sheet, config)
26
9
  @sheet = sheet
@@ -1,14 +1,10 @@
1
1
  # coding: UTF-8
2
2
  require 'spreadsheet'
3
3
  require 'mustache'
4
- require './lib/MiniSheet.rb'
4
+ require 'sawa/MiniSheet.rb'
5
5
 
6
6
  class MiniWork < Mustache
7
7
 
8
- @book
9
-
10
- @sheets
11
-
12
8
  def initialize(file, config)
13
9
  @book = Spreadsheet.open(file, 'r')
14
10
  @sheets = Hash.new()
@@ -0,0 +1,40 @@
1
+ package {{package_api}};
2
+
3
+ import javax.ws.rs.*;
4
+ import javax.ws.rs.core.MediaType;
5
+
6
+ import javax.annotation.security.RolesAllowed;
7
+ import {{package_model}}.{{model_name}};
8
+ import com.jialu.sawa.vo.*;
9
+
10
+ {{# api_imports}}
11
+ {{.}}
12
+ {{/ api_imports}}
13
+
14
+ import io.dropwizard.hibernate.UnitOfWork;
15
+
16
+ @Path("{{resource_path}}")
17
+ public interface {{api_name}} {
18
+
19
+ {{# rows_path}}
20
+ /**
21
+ * {{resource_desc}}
22
+ */
23
+ @{{resource_httpM}}
24
+ @UnitOfWork
25
+ @Path("{{{resource_path}}}")
26
+ @Consumes(MediaType.APPLICATION_JSON)
27
+ @Produces(MediaType.APPLICATION_JSON)
28
+ {{# resource_role}}
29
+ @RolesAllowed({ {{{.}}} })
30
+ {{/ resource_role}}
31
+ {{# resource_islist}}
32
+ public abstract OperatorResult<List<{{model_name}}>> {{resource_method}}({{{resource_param_full}}});
33
+ {{/ resource_islist}}
34
+ {{^ resource_islist}}
35
+ public abstract OperatorResult<{{model_name}}> {{resource_method}}({{{resource_param_full}}});
36
+ {{/ resource_islist}}
37
+ {{/ rows_path}}
38
+
39
+ }
40
+
@@ -0,0 +1,73 @@
1
+ import React, { Component } from 'react';
2
+ import './App.css';
3
+ import Guide from './Guide';
4
+ import Online from './Online';
5
+ {{# sheet_arr}}
6
+ import {{page_name}} from './pages/{{page_name}}'
7
+ {{/ sheet_arr}}
8
+ import {
9
+ BrowserRouter as Router,
10
+ Route,
11
+ Link
12
+ } from 'react-router-dom'
13
+ import { Menu, Divider, Header } from 'semantic-ui-react'
14
+
15
+ class App extends Component {
16
+ state = {webSocket: null, user:null, users: [], login:false}
17
+
18
+ handleItemClick = (e, { name }) => this.setState({ activeItem: name })
19
+
20
+ onOpen(event) {
21
+ this.setState({ login:true })
22
+ }
23
+
24
+ onClose(event) {
25
+ this.setState({ webSocket: null, users:[], login:false })
26
+ }
27
+
28
+ componentWillMount(){
29
+ let webSocket = new WebSocket("ws://localhost:3000/ws/");
30
+ webSocket.onopen = this.onOpen.bind(this);
31
+ webSocket.onclose = this.onClose.bind(this);
32
+ this.setState({ webSocket: webSocket })
33
+ }
34
+
35
+ onlineChange(users){
36
+ this.setState({ users: users })
37
+ }
38
+
39
+ onLogin(user){
40
+ let webSocket = new WebSocket("ws://localhost:3000/ws/");
41
+ webSocket.onopen = this.onOpen.bind(this);
42
+ webSocket.onclose = this.onClose.bind(this);
43
+ this.setState({ webSocket: webSocket, user: user, login:true })
44
+ }
45
+
46
+ render() {
47
+ const { activeItem } = this.state
48
+ if(!this.state.login) return <Guide onLogin={this.onLogin.bind(this)} login={this.state.login}/>
49
+ return (
50
+ <Router>
51
+ <div className="body">
52
+ <Link to='/'>
53
+ <Header as='h1'>KPF</Header>
54
+ </Link>
55
+ <Menu>
56
+ {{# sheet_arr}}
57
+ <Menu.Item name='{{resource_path}}' active={activeItem === '{{resource_path}}'} as={Link} to='/{{resource_path}}' onClick={this.handleItemClick} >{{model_title}}</Menu.Item>
58
+ {{/ sheet_arr}}
59
+ <Menu.Item name='online' active={activeItem === 'online'} as={Link} to='/online' onClick={this.handleItemClick} >OnLine</Menu.Item>
60
+ </Menu>
61
+ <Divider />
62
+ <Route exact path="/" render={() => <Guide onLogin={this.onLogin.bind(this)} login={this.state.login}/>} />
63
+ {{# sheet_arr}}
64
+ <Route path='/{{resource_path}}' component={ {{page_name}} }/>
65
+ {{/ sheet_arr}}
66
+ <Route path='/online' render={() => <Online webSocket={this.state.webSocket} users={this.state.users} onlineChange={this.onlineChange.bind(this)}/>}/>
67
+ </div>
68
+ </Router>
69
+ );
70
+ }
71
+ }
72
+
73
+ export default App;
@@ -0,0 +1,31 @@
1
+ <?xml version="1.0"?>
2
+ <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
3
+ "http://hibernate.org/dtd/hibernate-mapping-3.0.dtd">
4
+
5
+ <hibernate-mapping>
6
+ {{# sheet_arr}}
7
+
8
+ <query name="{{table_name}}">
9
+ <![CDATA[FROM {{model_name}} e WHERE e.deleted = 0 ORDER BY e.utime DESC]]>
10
+ </query>
11
+ <query name="{{table_name}}-id">
12
+ <![CDATA[FROM {{model_name}} e WHERE e.deleted = 0 and e.id = :id ORDER BY e.utime DESC]]>
13
+ </query>
14
+ <query name="{{table_name}}-cuser">
15
+ <![CDATA[FROM {{model_name}} e WHERE e.deleted = 0 and e.cuser = :cuser ORDER BY e.utime DESC]]>
16
+ </query>
17
+ <query name="{{table_name}}-uuser">
18
+ <![CDATA[FROM {{model_name}} e WHERE e.deleted = 0 and e.uuser = :uuser ORDER BY e.utime DESC]]>
19
+ </query>
20
+ <query name="{{table_name}}-deleted">
21
+ <![CDATA[FROM {{model_name}} e WHERE e.deleted = :deleted ORDER BY e.utime DESC]]>
22
+ </query>
23
+ {{# rows_model}}
24
+ {{# is_column}}
25
+ <query name="{{table_name}}-{{name}}">
26
+ <![CDATA[FROM {{model_name}} e WHERE e.deleted = 0 and e.{{name}} = :{{name}} ORDER BY e.utime DESC]]>
27
+ </query>
28
+ {{/is_column}}
29
+ {{/ rows_model}}
30
+ {{/ sheet_arr}}
31
+ </hibernate-mapping>
@@ -0,0 +1,13 @@
1
+ package {{package_dao}};
2
+
3
+ import org.hibernate.SessionFactory;
4
+
5
+ import {{package_model}}.{{model_name}};
6
+ import com.jialu.sawa.utility.MiniDao;
7
+
8
+ public class {{dao_name}} extends MiniDao<{{model_name}}> {
9
+
10
+ public {{dao_name}}(SessionFactory factory) {
11
+ super(factory);
12
+ }
13
+ }
@@ -0,0 +1,56 @@
1
+ package {{package_model}};
2
+
3
+ import javax.persistence.Entity;
4
+ import javax.persistence.Table;
5
+ import javax.persistence.Column;
6
+
7
+ import com.jialu.sawa.utility.MiniModel;
8
+ import lombok.Data;
9
+ import lombok.EqualsAndHashCode;
10
+
11
+ {{# model_imports}}
12
+ {{.}}
13
+ {{/ model_imports}}
14
+
15
+ /**
16
+ * @author tools
17
+ * {{model_title}}
18
+ */
19
+ @Entity
20
+ @Table(name = "{{table_name}}")
21
+ @Data
22
+ @EqualsAndHashCode(callSuper = true)
23
+ public class {{model_name}} extends MiniModel{
24
+
25
+ private static final long serialVersionUID = 1L;
26
+
27
+ {{# rows_model}}
28
+ /**
29
+ * {{title}}
30
+ */
31
+ {{# jsonignore}}
32
+ @JsonIgnore
33
+ {{/jsonignore}}
34
+ {{# has_mapped}}
35
+ {{# is_onetomany}}
36
+ @OneToMany(mappedBy = "{{resource_name}}")
37
+ @JsonManagedReference("{{resource_name}}")
38
+ @Where(clause = "id < 0")
39
+ {{/is_onetomany}}
40
+ {{# is_manytoone}}
41
+ @ManyToOne
42
+ @JsonBackReference("{{name}}")
43
+ @JoinColumn(name="{{join_column}}", nullable=false, insertable = false, updatable = false)
44
+ {{/is_manytoone}}
45
+ {{# is_onetoone}}
46
+ @OneToOne
47
+ @JoinColumn(name="{{join_column}}", nullable=false, insertable = false, updatable = false)
48
+ {{/is_onetoone}}
49
+ {{/has_mapped}}
50
+ {{# is_column}}
51
+ @Column(unique = {{unique}}, nullable = {{nullable}})
52
+ {{/is_column}}
53
+ private {{{type}}} {{name}};
54
+
55
+ {{/ rows_model}}
56
+ }
@@ -0,0 +1,26 @@
1
+ import React, { Component } from 'react';
2
+ import MiniPage from '../Page';
3
+ class {{page_name}} extends Component {
4
+
5
+ render() {
6
+ const column = [
7
+ {{# rows_model}}
8
+ {{^jsonignore}}
9
+ {"title":"{{title}}", "name":"{{name}}", "type":"{{type_js}}", "ref":"{{join_column}}"},
10
+ {{/jsonignore}}
11
+ {{/ rows_model}}
12
+ ]
13
+
14
+ return (
15
+ <MiniPage
16
+ title="{{model_title}}"
17
+ name="{{resource_path}}"
18
+ table_name="{{table_name}}"
19
+ search={this.props.location.search}
20
+ column={column}
21
+ />
22
+ );
23
+ }
24
+ }
25
+
26
+ export default {{page_name}};
@@ -0,0 +1,11 @@
1
+ #{resource}.{name}={type},{nullable},{title}
2
+ {{# sheet_arr}}
3
+ {{table_name}}.id=java.lang.Integer,0,id
4
+ {{table_name}}.cuser=java.lang.Integer,0,cuser
5
+ {{table_name}}.uuser=java.lang.Integer,0,uuser
6
+ {{# rows_model}}
7
+ {{# is_column}}
8
+ {{table_name}}.{{name}}={{type}},{{nullable}},{{title}}
9
+ {{/is_column}}
10
+ {{/ rows_model}}
11
+ {{/ sheet_arr}}
@@ -0,0 +1,47 @@
1
+ package {{package_resource}};
2
+
3
+ import {{package_api}}.{{api_name}};
4
+ import {{package_dao}}.{{dao_name}};
5
+ import {{package_model}}.{{model_name}};
6
+ import com.jialu.sawa.utility.MiniBean;
7
+ import com.jialu.sawa.utility.MiniCrudResource;
8
+ import com.jialu.sawa.vo.*;
9
+
10
+ {{# resource_imports}}
11
+ {{.}}
12
+ {{/ resource_imports}}
13
+
14
+ public class {{resource_name}} extends MiniCrudResource<{{model_name}}, {{dao_name}}> implements {{api_name}}{
15
+
16
+ public {{resource_name}}(MiniBean config) {
17
+ super(config);
18
+ }
19
+
20
+ @Override
21
+ public {{dao_name}} getDao() {
22
+ return config.getDao({{dao_name}}.class);
23
+ }
24
+
25
+ @Override
26
+ public Class<{{model_name}}> getModelT() {
27
+ return {{model_name}}.class;
28
+ }
29
+
30
+ {{# rows_path}}
31
+ /**
32
+ * {{resource_desc}}
33
+ */
34
+ @Override
35
+ {{# resource_islist}}
36
+ public OperatorResult<List<{{model_name}}>> {{resource_method}}({{{resource_param_type}}}) {
37
+ return {{resource_process}}({{{resource_param_value}}});
38
+ }
39
+ {{/ resource_islist}}
40
+ {{^ resource_islist}}
41
+ public OperatorResult<{{model_name}}> {{resource_method}}({{{resource_param_type}}}) {
42
+ return {{resource_process}}({{{resource_param_value}}});
43
+ }
44
+ {{/ resource_islist}}
45
+ {{/ rows_path}}
46
+
47
+ }
data/lib/sawa/version.rb CHANGED
@@ -1,3 +1,3 @@
1
- module Sawa
2
- VERSION = "0.0.2"
1
+ class Sawa
2
+ VERSION = "0.0.3"
3
3
  end
data/lib/sawa.rb CHANGED
@@ -1,5 +1,82 @@
1
- require "sawa/version"
1
+ require 'fileutils'
2
+ require 'sawa/MiniWork.rb'
3
+ require 'yaml'
2
4
 
3
- module Sawa
5
+ class Sawa
6
+ ROOT = Dir.pwd
7
+ GEMROOT = File.dirname(File.expand_path(__FILE__))
8
+
9
+ def initialize(options = {})
10
+ @options = options
11
+ @config = YAML.load_file("#{ROOT}/mini.yml")
12
+ @work = MiniWork.new(@options, @config)
13
+ @JSRC_PATH = "#{ROOT}/www/src"
14
+ @XML_PATH = "#{ROOT}/resources"
15
+ @MODEL_PATH = "#{ROOT}/src/" + @config['packageModel'].split('.').join("/")
16
+ @DAO_PATH = "#{ROOT}/src/" + @config['packageDao'].split('.').join("/")
17
+ @RES_PATH = "#{ROOT}/src/" + @config['packageResource'].split('.').join("/")
18
+ @API_PATH = "#{ROOT}/src/" + @config['packageApi'].split('.').join("/")
19
+ @TPL_PATH = "#{GEMROOT}/sawa/tpl"
20
+ end
21
+
22
+ def generate_code
23
+ #mkdir
24
+ FileUtils.mkdir_p @MODEL_PATH
25
+ FileUtils.mkdir_p @DAO_PATH
26
+ FileUtils.mkdir_p @RES_PATH
27
+ FileUtils.mkdir_p @API_PATH
28
+
29
+ #create_model
30
+ @work.sheets.each do |name, sheet|
31
+ sheet.template_file = "#{@TPL_PATH}/model.mustache"
32
+ str_model = sheet.render
33
+ File.open("#{@MODEL_PATH}/#{sheet.model_name}.java", 'w') { |file| file.write(str_model) }
34
+ end
35
+
36
+ #create_dao
37
+ @work.sheets.each do |name, sheet|
38
+ sheet.template_file = "#{@TPL_PATH}/dao.mustache"
39
+ str_dao = sheet.render
40
+ File.open("#{@DAO_PATH}/#{sheet.dao_name}.java", 'w') { |file| file.write(str_dao) }
41
+ end
42
+
43
+ #create_resource
44
+ @work.sheets.each do |name, sheet|
45
+ sheet.template_file = "#{@TPL_PATH}/resource.mustache"
46
+ str_resource = sheet.render
47
+ File.open("#{@RES_PATH}/#{sheet.resource_name}.java", 'w') { |file| file.write(str_resource) }
48
+ end
49
+
50
+ #create_api
51
+ @work.sheets.each do |name, sheet|
52
+ sheet.template_file = "#{@TPL_PATH}/api.mustache"
53
+ str_api = sheet.render
54
+ File.open("#{@API_PATH}/#{sheet.api_name}.java", 'w') { |file| file.write(str_api) }
55
+ end
56
+
57
+ #crud.xml
58
+ @work.template_file = "#{@TPL_PATH}/crud.mustache"
59
+ str_crud = @work.render
60
+ File.open("#{@XML_PATH}/crud.xml", 'w') { |file| file.write(str_crud) }
61
+
62
+ #property.properties
63
+ @work.template_file = "#{@TPL_PATH}/property.mustache"
64
+ str_property = @work.render
65
+ File.open("#{@XML_PATH}/property.properties", 'w') { |file| file.write(str_property) }
66
+
67
+ #app.js
68
+ @work.template_file = "#{@TPL_PATH}/app.js.mustache"
69
+ str_app_js = @work.render
70
+ File.open("#{@JSRC_PATH}/App.js", 'w') { |file| file.write(str_app_js) }
71
+
72
+ #page.js
73
+ @work.sheets.each do |name, sheet|
74
+ sheet.template_file = "#{@TPL_PATH}/page.js.mustache"
75
+ str_page_js = sheet.render
76
+ File.open("#{@JSRC_PATH}/pages/#{sheet.page_name}.js", 'w') { |file| file.write(str_page_js) }
77
+ end
78
+
79
+ "code generate finish"
80
+ end
4
81
  # Your code goes here...
5
82
  end
data/sawa-0.0.2.gem ADDED
Binary file
data/sawa.gemspec CHANGED
@@ -14,20 +14,10 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = "https://github.com/shouaya/sawagem"
15
15
  spec.license = "MIT"
16
16
 
17
- # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
18
- # to allow pushing to a single host or delete this section to allow pushing to any host
19
- # if spec.respond_to?(:metadata)
20
- # spec.metadata['allowed_push_host'] = "http://rubygems.org"
21
- # else
22
- # raise "RubyGems 2.0 or newer is required to protect against " \
23
- # "public gem pushes."
24
- # end
25
-
26
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
27
18
  f.match(%r{^(test|spec|features)/})
28
19
  end
29
- spec.bindir = "exe"
30
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.executables = %w( sawa )
31
21
  spec.require_paths = ["lib"]
32
22
 
33
23
  spec.add_development_dependency "bundler", "~> 1.14"
metadata CHANGED
@@ -1,12 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sawa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - shouaya
8
8
  autorequire:
9
- bindir: exe
9
+ bindir: bin
10
10
  cert_chain: []
11
11
  date: 2017-06-08 00:00:00.000000000 Z
12
12
  dependencies:
@@ -101,7 +101,8 @@ dependencies:
101
101
  description: '"https://github.com/shouaya/moa/blob/master/README.md"'
102
102
  email:
103
103
  - favaserver@gmail.com
104
- executables: []
104
+ executables:
105
+ - sawa
105
106
  extensions: []
106
107
  extra_rdoc_files: []
107
108
  files:
@@ -111,15 +112,22 @@ files:
111
112
  - LICENSE.txt
112
113
  - README.md
113
114
  - Rakefile
114
- - bin/console
115
115
  - bin/sawa
116
- - bin/setup
117
- - lib/MiniProperty.rb
118
- - lib/MiniResource.rb
119
- - lib/MiniSheet.rb
120
- - lib/MiniWork.rb
121
116
  - lib/sawa.rb
117
+ - lib/sawa/MiniProperty.rb
118
+ - lib/sawa/MiniResource.rb
119
+ - lib/sawa/MiniSheet.rb
120
+ - lib/sawa/MiniWork.rb
121
+ - lib/sawa/tpl/api.mustache
122
+ - lib/sawa/tpl/app.js.mustache
123
+ - lib/sawa/tpl/crud.mustache
124
+ - lib/sawa/tpl/dao.mustache
125
+ - lib/sawa/tpl/model.mustache
126
+ - lib/sawa/tpl/page.js.mustache
127
+ - lib/sawa/tpl/property.mustache
128
+ - lib/sawa/tpl/resource.mustache
122
129
  - lib/sawa/version.rb
130
+ - sawa-0.0.2.gem
123
131
  - sawa.gemspec
124
132
  homepage: https://github.com/shouaya/sawagem
125
133
  licenses:
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "sawa"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here