go-on-rails 0.0.6 → 0.0.7
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 +4 -4
- data/README.md +6 -2
- data/lib/generators/gor/{go_on_rails → go-on-rails}/association.rb +0 -0
- data/lib/generators/gor/{go_on_rails → go-on-rails}/converter.rb +0 -0
- data/lib/generators/gor/gor_generator.rb +1 -1
- data/lib/generators/gor/templates/gor_model.go.erb +50 -33
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 893993277d5b0ef18340c36e309155b3e34cf3d4
|
4
|
+
data.tar.gz: 68709edcb71c6e4f1f8ce3dffb25ae4276e2623d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a443051416f1b2352355b3be7e4875ed3c5919c82aff0f599cfddbf68b9979547fe270d5468201eb5c94190a0e38332575f7f44f42ca117917c4862a387655fd
|
7
|
+
data.tar.gz: de5c41b9abc3fb7849dbeb9271c0d965ce083376cec0e74c602af7a7898753ced6ad8cb3ae2d90880a15f98bb6041da9149d7a4e3181acee7de3662c6b92f120
|
data/README.md
CHANGED
@@ -21,7 +21,7 @@ One or more examples will be given later on.
|
|
21
21
|
Add this line to your application's Gemfile:
|
22
22
|
|
23
23
|
```ruby
|
24
|
-
gem 'go-on-rails', '~> 0.0.
|
24
|
+
gem 'go-on-rails', '~> 0.0.7'
|
25
25
|
```
|
26
26
|
|
27
27
|
And then execute:
|
@@ -84,7 +84,11 @@ When I had the idea to convert Rails app or build Golang app with Rails tools, I
|
|
84
84
|
|
85
85
|
## Contributing
|
86
86
|
|
87
|
-
|
87
|
+
There're two branches at present: `master` and `dev`.
|
88
|
+
|
89
|
+
The branch `master` has the files only for the generator needs, as the `dev` branch has a whole Rails environment for development: models, seeds for testing, and under `go_app` directory there's a file named `modles_test.go` used to test generated Golang codes.
|
90
|
+
|
91
|
+
- Fork the project switch to branch `dev`.
|
88
92
|
- Make your feature addition or bug fix.
|
89
93
|
- Add tests for it. This is important so I don't break it in a future version unintentionally.
|
90
94
|
- Commit, do not mess with Rakefile or version (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
File without changes
|
File without changes
|
@@ -118,30 +118,42 @@ func <%= @model_name %>IncludesWhere(assocs []string, sql string, args ...interf
|
|
118
118
|
<%- has_many = @struct_info[:assoc_info][:has_many] -%>
|
119
119
|
<%- has_many.each do |k, v| -%>
|
120
120
|
case "<%= k.underscore.pluralize %>":
|
121
|
-
|
122
|
-
|
123
|
-
<%- else -%>
|
124
|
-
where := fmt.Sprintf("<%= model_name_underscore %>_id IN (?%s)", idsHolder)
|
125
|
-
<%- end -%>
|
126
|
-
var_<%= v[:class_name].underscore.pluralize %>, err := Find<%= v[:class_name].pluralize %>Where(where, ids...)
|
127
|
-
if err != nil {
|
128
|
-
log.Printf("Error when query associated objects: %v\n", assoc)
|
129
|
-
continue
|
130
|
-
}
|
131
|
-
for _, vv := range var_<%= v[:class_name].underscore.pluralize %> {
|
121
|
+
<%- if v[:through] -%>
|
122
|
+
// FIXME: optimize the query
|
132
123
|
for i, vvv := range var_<%= param_name_plural %> {
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
vvv.<%= k %> = append(vvv.<%= k %>, vv)
|
140
|
-
}
|
141
|
-
<%- end -%>
|
142
|
-
var_<%= param_name_plural %>[i].<%= k %> = vvv.<%= k %>
|
124
|
+
var_<%= v[:class_name].underscore.pluralize %>, err := <%= @model_name %>Get<%= v[:class_name].pluralize %>(vvv.Id)
|
125
|
+
if err != nil {
|
126
|
+
continue
|
127
|
+
}
|
128
|
+
vvv.<%= k %> = var_<%= v[:class_name].underscore.pluralize %>
|
129
|
+
var_<%= param_name_plural %>[i] = vvv
|
143
130
|
}
|
144
|
-
|
131
|
+
<%- else -%>
|
132
|
+
<%- if v[:foreign_key] -%>
|
133
|
+
where := fmt.Sprintf("<%= v[:foreign_key] %> IN (?%s)", idsHolder)
|
134
|
+
<%- else -%>
|
135
|
+
where := fmt.Sprintf("<%= model_name_underscore %>_id IN (?%s)", idsHolder)
|
136
|
+
<%- end -%>
|
137
|
+
var_<%= v[:class_name].underscore.pluralize %>, err := Find<%= v[:class_name].pluralize %>Where(where, ids...)
|
138
|
+
if err != nil {
|
139
|
+
log.Printf("Error when query associated objects: %v\n", assoc)
|
140
|
+
continue
|
141
|
+
}
|
142
|
+
for _, vv := range var_<%= v[:class_name].underscore.pluralize %> {
|
143
|
+
for i, vvv := range var_<%= param_name_plural %> {
|
144
|
+
<%- if v[:foreign_key] -%>
|
145
|
+
if vv.<%= v[:foreign_key].camelize %> == vvv.Id {
|
146
|
+
vvv.<%= k %> = append(vvv.<%= k %>, vv)
|
147
|
+
}
|
148
|
+
<%- else -%>
|
149
|
+
if vv.<%= @model_name.camelize %>Id == vvv.Id {
|
150
|
+
vvv.<%= k %> = append(vvv.<%= k %>, vv)
|
151
|
+
}
|
152
|
+
<%- end -%>
|
153
|
+
var_<%= param_name_plural %>[i].<%= k %> = vvv.<%= k %>
|
154
|
+
}
|
155
|
+
}
|
156
|
+
<%- end -%>
|
145
157
|
<%- end -%>
|
146
158
|
<%- end -%>
|
147
159
|
<%- unless @struct_info[:assoc_info][:has_one].empty? -%>
|
@@ -340,25 +352,30 @@ func (var_<%= model_name_underscore %> *<%= @model_name %>) <%= v[:class_name].p
|
|
340
352
|
}
|
341
353
|
|
342
354
|
func (var_<%= model_name_underscore %> *<%= @model_name %>) Get<%= v[:class_name].pluralize %>() error {
|
355
|
+
var_<%= v[:class_name].underscore.pluralize %>, err := <%= @model_name %>Get<%= v[:class_name].pluralize %>(var_<%= model_name_underscore %>.Id)
|
356
|
+
if err == nil {
|
357
|
+
var_<%= model_name_underscore %>.<%= k %> = var_<%= v[:class_name].underscore.pluralize %>
|
358
|
+
}
|
359
|
+
return err
|
360
|
+
}
|
361
|
+
|
362
|
+
func <%= @model_name %>Get<%= v[:class_name].pluralize %>(id int64) ([]<%= v[:class_name] %>, error) {
|
343
363
|
<%- if v[:through] -%>
|
344
364
|
// FIXME: use transaction to create these associated objects
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
var_<%= v[:class_name].underscore.pluralize %>, err := Find<%= v[:class_name].pluralize %>(<%= v[:class_name].underscore %>_ids...)
|
365
|
+
<%- target_table = v[:class_name].underscore.pluralize -%>
|
366
|
+
<%- through_table = v[:through].to_s.pluralize -%>
|
367
|
+
sql := "SELECT `<%= target_table %>`.* FROM `<%= target_table %>` INNER JOIN `<%= through_table %>` ON `<%= target_table %>`.`id` = `<%= through_table %>`.`<%= v[:class_name].underscore %>_id` WHERE `<%= through_table %>`.`<%= model_name_underscore %>_id` = ?"
|
368
|
+
var_<%= v[:class_name].underscore.pluralize %>, err := Find<%= v[:class_name].pluralize %>BySql(sql, id)
|
350
369
|
<%- else -%>
|
351
370
|
<%- if v[:foreign_key] -%>
|
352
|
-
var_<%= v[:class_name].underscore.pluralize %>, err := Find<%= v[:class_name].pluralize %>By("<%= v[:foreign_key] %>",
|
371
|
+
var_<%= v[:class_name].underscore.pluralize %>, err := Find<%= v[:class_name].pluralize %>By("<%= v[:foreign_key] %>", id)
|
353
372
|
<%- else -%>
|
354
|
-
var_<%= v[:class_name].underscore.pluralize %>, err := Find<%= v[:class_name].pluralize %>By("<%= model_name_underscore %>_id",
|
373
|
+
var_<%= v[:class_name].underscore.pluralize %>, err := Find<%= v[:class_name].pluralize %>By("<%= model_name_underscore %>_id", id)
|
355
374
|
<%- end -%>
|
356
375
|
<%- end -%>
|
357
|
-
|
358
|
-
var_<%= model_name_underscore %>.<%= k %> = var_<%= v[:class_name].underscore.pluralize %>
|
359
|
-
}
|
360
|
-
return err
|
376
|
+
return var_<%= v[:class_name].underscore.pluralize %>, err
|
361
377
|
}
|
378
|
+
|
362
379
|
<%- end -%>
|
363
380
|
<%- end -%>
|
364
381
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: go-on-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- B1nj0y
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Modeling, developing and testing your Golang app with your familiar Rails
|
14
14
|
tools like rails generate, db migration, console etc. It is more meant to help integrating
|
@@ -21,8 +21,8 @@ files:
|
|
21
21
|
- MIT-LICENSE
|
22
22
|
- README.md
|
23
23
|
- lib/generators/gor/USAGE
|
24
|
-
- lib/generators/gor/
|
25
|
-
- lib/generators/gor/
|
24
|
+
- lib/generators/gor/go-on-rails/association.rb
|
25
|
+
- lib/generators/gor/go-on-rails/converter.rb
|
26
26
|
- lib/generators/gor/gor_generator.rb
|
27
27
|
- lib/generators/gor/templates/db.go.erb
|
28
28
|
- lib/generators/gor/templates/favicon.ico
|