redpotion-generators 1.0.0
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 +7 -0
- data/.gitignore +9 -0
- data/.rspec +2 -0
- data/.travis.yml +5 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +52 -0
- data/Rakefile +6 -0
- data/exe/rp +5 -0
- data/lib/redpotion/generators/cdq_model.rb +26 -0
- data/lib/redpotion/generators/cdq_table_screen.rb +23 -0
- data/lib/redpotion/generators/cli.rb +15 -0
- data/lib/redpotion/generators/scaffold.rb +43 -0
- data/lib/redpotion/generators/shared/model_generator_methods.rb +42 -0
- data/lib/redpotion/generators/templates/cdq_migration.tt +10 -0
- data/lib/redpotion/generators/templates/cdq_model.tt +2 -0
- data/lib/redpotion/generators/templates/cdq_model_detail_screen.tt +35 -0
- data/lib/redpotion/generators/templates/cdq_table_screen.tt +58 -0
- data/lib/redpotion/generators/templates/detail_screen_stylesheet.tt +24 -0
- data/lib/redpotion/generators/templates/edit_cdq_model_form_screen.tt +55 -0
- data/lib/redpotion/generators/templates/form_screen_stylesheet.tt +13 -0
- data/lib/redpotion/generators/templates/new_cdq_model_form_screen.tt +51 -0
- data/lib/redpotion/generators/templates/table_screen_stylesheet.tt +13 -0
- data/lib/redpotion/generators/version.rb +5 -0
- data/lib/redpotion/generators.rb +7 -0
- data/redpotion-generators.gemspec +32 -0
- metadata +169 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 83089d7ac9e0d9e666114f9af12e75b8541cbfa4
|
4
|
+
data.tar.gz: 1d768c3c91d9734d5e21c442e6dfd13a81d0758d
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 4bea0efa90916b7d95aef184c98ed31f0af9486f38fdb97693641ae6a97139324a2de8f75fbfdd2b00d2c73bcaf0f8445270a88dd4b9fc1c6de12c189a786cd2
|
7
|
+
data.tar.gz: 76821b86e1beb7def67a542f31d59ccc6ae4a4c214d6e86bd6604134cee06e834d707054c2a543f173094a38ec3d230a86a6d3df2d65e2beed0efd57143a9ac4
|
data/.gitignore
ADDED
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2016 Andrew Havens
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
# RedPotion Generators
|
2
|
+
|
3
|
+
This command line tool provides additional generators that aren't currently available from RedPotion. Some of these generators include:
|
4
|
+
|
5
|
+
* CDQ Model/Schema Generator
|
6
|
+
* CDQ Table Screen Generator
|
7
|
+
* PM::XLFormScreen Generator
|
8
|
+
* Scaffolding Generator
|
9
|
+
|
10
|
+
By having additional generators for CDQ and PM::XLForm, this gem is able to provide a scaffolding generator, similar to that of Rails.
|
11
|
+
|
12
|
+
## Installation
|
13
|
+
|
14
|
+
Add this line to your application's Gemfile:
|
15
|
+
|
16
|
+
```ruby
|
17
|
+
gem 'redpotion-generators'
|
18
|
+
```
|
19
|
+
|
20
|
+
And then execute:
|
21
|
+
|
22
|
+
$ bundle
|
23
|
+
|
24
|
+
Or install it yourself as:
|
25
|
+
|
26
|
+
$ gem install redpotion-generators
|
27
|
+
|
28
|
+
## Usage
|
29
|
+
|
30
|
+
Once you have installed the gem, the generators are available under a `rp` command.
|
31
|
+
|
32
|
+
### Scaffolding Generator
|
33
|
+
|
34
|
+
rp scaffold blog_post title:string body:text published:boolean publish_date:datetime
|
35
|
+
|
36
|
+
### CDQ Generators
|
37
|
+
|
38
|
+
rp cdq_model blog_post title:string body:text published:datetime
|
39
|
+
rp cdq_table_screen blog_posts
|
40
|
+
|
41
|
+
### PM::XLFormScreen Generator
|
42
|
+
|
43
|
+
Currently only available by using the scaffolding generator.
|
44
|
+
|
45
|
+
## Contributing
|
46
|
+
|
47
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/andrewhavens/redpotion-generators.
|
48
|
+
|
49
|
+
|
50
|
+
## License
|
51
|
+
|
52
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
data/Rakefile
ADDED
data/exe/rp
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
require "thor"
|
2
|
+
require_relative "./shared/model_generator_methods"
|
3
|
+
|
4
|
+
module RedPotion
|
5
|
+
module Generators
|
6
|
+
class CDQModel < Thor::Group
|
7
|
+
include Thor::Actions
|
8
|
+
|
9
|
+
argument :model_name
|
10
|
+
argument :model_attributes, optional: true, type: :hash
|
11
|
+
|
12
|
+
def self.source_root
|
13
|
+
File.dirname(__FILE__)
|
14
|
+
end
|
15
|
+
|
16
|
+
def generate
|
17
|
+
template "templates/cdq_model.tt", "app/models/#{model_name}.rb"
|
18
|
+
check_for_previous_schema!
|
19
|
+
template "templates/cdq_migration.tt", "schemas/#{new_schema_number}_create_#{model_name.underscore}.rb"
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
include ModelGeneratorMethods
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require "thor"
|
2
|
+
|
3
|
+
module RedPotion
|
4
|
+
module Generators
|
5
|
+
class CDQTableScreen < Thor::Group
|
6
|
+
include Thor::Actions
|
7
|
+
|
8
|
+
argument :model_name
|
9
|
+
|
10
|
+
def self.source_root
|
11
|
+
File.dirname(__FILE__)
|
12
|
+
end
|
13
|
+
|
14
|
+
def generate_stylesheet
|
15
|
+
template "templates/table_screen_stylesheet.tt", "app/stylesheets/#{model_name.pluralize}_screen_stylesheet.rb"
|
16
|
+
end
|
17
|
+
|
18
|
+
def generate_screen
|
19
|
+
template "templates/cdq_table_screen.tt", "app/screens/#{model_name.pluralize}_screen.rb"
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
require "thor"
|
2
|
+
require "active_support/core_ext/string/inflections"
|
3
|
+
require_relative "cdq_model"
|
4
|
+
require_relative "cdq_table_screen"
|
5
|
+
require_relative "scaffold"
|
6
|
+
|
7
|
+
module RedPotion
|
8
|
+
module Generators
|
9
|
+
class CLI < Thor
|
10
|
+
register CDQModel, "cdq_model", "cdq_model", "Generate a CDQ Model and migration"
|
11
|
+
register CDQTableScreen, "cdq_table_screen", "cdq_table_screen", "Generate a CDQ Table Screen"
|
12
|
+
register Scaffold, "scaffold", "scaffold", "Generate scaffolding"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require "thor"
|
2
|
+
require_relative "./shared/model_generator_methods"
|
3
|
+
|
4
|
+
module RedPotion
|
5
|
+
module Generators
|
6
|
+
class Scaffold < Thor::Group
|
7
|
+
include Thor::Actions
|
8
|
+
|
9
|
+
argument :model_name
|
10
|
+
argument :model_attributes, optional: true, type: :hash
|
11
|
+
|
12
|
+
def self.source_root
|
13
|
+
File.dirname(__FILE__)
|
14
|
+
end
|
15
|
+
|
16
|
+
def generate_model
|
17
|
+
template "templates/cdq_model.tt", "app/models/#{model_name}.rb"
|
18
|
+
check_for_previous_schema!
|
19
|
+
template "templates/cdq_migration.tt", "schemas/#{new_schema_number}_create_#{model_name}.rb"
|
20
|
+
end
|
21
|
+
|
22
|
+
def generate_screens
|
23
|
+
template "templates/cdq_table_screen.tt", "app/screens/#{model_name.pluralize}_screen.rb"
|
24
|
+
template "templates/new_cdq_model_form_screen.tt", "app/screens/new_#{model_name}_screen.rb"
|
25
|
+
template "templates/cdq_model_detail_screen.tt", "app/screens/#{model_name}_detail_screen.rb"
|
26
|
+
template "templates/edit_cdq_model_form_screen.tt", "app/screens/edit_#{model_name}_screen.rb"
|
27
|
+
end
|
28
|
+
|
29
|
+
def generate_stylesheets
|
30
|
+
template "templates/table_screen_stylesheet.tt", "app/stylesheets/#{model_name.pluralize}_screen_stylesheet.rb"
|
31
|
+
template "templates/form_screen_stylesheet.tt", "app/stylesheets/#{model_name}_form_screen_stylesheet.rb"
|
32
|
+
template "templates/detail_screen_stylesheet.tt", "app/stylesheets/#{model_name}_detail_screen_stylesheet.rb"
|
33
|
+
end
|
34
|
+
|
35
|
+
def enable_xlform_gem
|
36
|
+
# TODO
|
37
|
+
end
|
38
|
+
|
39
|
+
private
|
40
|
+
include ModelGeneratorMethods
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module RedPotion
|
2
|
+
module Generators
|
3
|
+
module ModelGeneratorMethods
|
4
|
+
|
5
|
+
def check_for_previous_schema!
|
6
|
+
Dir["schemas/*.rb"].each do |filename|
|
7
|
+
@previous_schema_filename = File.basename(filename)
|
8
|
+
@previous_schema_number = @previous_schema_filename.to_i # automatically trims off non-integer characters
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def previous_schema_filename
|
13
|
+
@previous_schema_filename
|
14
|
+
end
|
15
|
+
|
16
|
+
def previous_schema_number
|
17
|
+
@previous_schema_number
|
18
|
+
end
|
19
|
+
|
20
|
+
def new_schema_number
|
21
|
+
number = previous_schema_number || 0
|
22
|
+
number += 1
|
23
|
+
sprintf("%04d", number)
|
24
|
+
end
|
25
|
+
|
26
|
+
def previous_schema_content
|
27
|
+
if previous_schema_number
|
28
|
+
previous_schema_content = ""
|
29
|
+
File.open("schemas/#{previous_schema_filename}") do |file|
|
30
|
+
file.each_line do |line|
|
31
|
+
unless line =~ /schema/ or line =~ /^end$/
|
32
|
+
previous_schema_content += line
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
previous_schema_content
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
schema "<%= new_schema_number %> Create <%= model_name.camelize %>" do
|
2
|
+
<%- if previous_schema_content -%>
|
3
|
+
<%= previous_schema_content %>
|
4
|
+
<%- end -%>
|
5
|
+
entity "<%= model_name.camelize %>" do
|
6
|
+
<%- model_attributes.each do |attr, type| -%>
|
7
|
+
<%= type %> :<%= attr %>
|
8
|
+
<%- end -%>
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
class <%= model_name.camelize %>DetailScreen < PM::Screen
|
2
|
+
title "<%= model_name.titleize %>"
|
3
|
+
stylesheet <%= model_name.camelize %>DetailScreenStylesheet
|
4
|
+
|
5
|
+
attr_accessor :<%= model_name.underscore %>
|
6
|
+
|
7
|
+
def on_load
|
8
|
+
set_nav_bar_button :right, title: "Edit", action: :edit_<%= model_name.underscore %>
|
9
|
+
<%- model_attributes.each do |attr, type| -%>
|
10
|
+
append(UILabel, :<%= attr %>).data("<%= attr.titleize %>: #{<%= model_name %>.<%= attr %>}")
|
11
|
+
<%- end -%>
|
12
|
+
end
|
13
|
+
|
14
|
+
def edit_<%= model_name.underscore %>
|
15
|
+
open Edit<%= model_name.camelize %>Screen.new(<%= model_name.underscore %>: <%= model_name.underscore %>)
|
16
|
+
end
|
17
|
+
|
18
|
+
# You don't have to reapply styles to all UIViews. If you want to optimize,
|
19
|
+
# another way to do it is to tag the views you need to restyle in your stylesheet,
|
20
|
+
# then only reapply the tagged views. For example:
|
21
|
+
# def logo(st)
|
22
|
+
# st.frame = {t: 10, w: 200, h: 96}
|
23
|
+
# st.centered = :horizontal
|
24
|
+
# st.image = image.resource('logo')
|
25
|
+
# st.tag(:reapply_style)
|
26
|
+
# end
|
27
|
+
#
|
28
|
+
# Then in will_animate_rotate
|
29
|
+
# find(:reapply_style).reapply_styles
|
30
|
+
|
31
|
+
# Remove the following if you're only using portrait
|
32
|
+
def will_animate_rotate(orientation, duration)
|
33
|
+
reapply_styles
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
class <%= model_name.pluralize.camelize %>Screen < PM::TableScreen
|
2
|
+
title "<%= model_name.pluralize.titleize %>"
|
3
|
+
stylesheet <%= model_name.pluralize.camelize %>ScreenStylesheet
|
4
|
+
|
5
|
+
def on_load
|
6
|
+
set_nav_bar_button :right, title: "New", action: :new_<%= model_name.singularize %>
|
7
|
+
end
|
8
|
+
|
9
|
+
def new_<%= model_name.singularize %>
|
10
|
+
open New<%= model_name.singularize.camelize %>Screen
|
11
|
+
end
|
12
|
+
|
13
|
+
def on_return(args = {})
|
14
|
+
update_table_data if args[:todo]
|
15
|
+
end
|
16
|
+
|
17
|
+
def table_data
|
18
|
+
[{
|
19
|
+
cells: <%= model_name.singularize.camelize %>.all.map do |<%= model_name.singularize %>|
|
20
|
+
# For full list of options, refer to (insert ProMotion docs link here)
|
21
|
+
{
|
22
|
+
title: "<%= model_name.titleize %> ##{<%= model_name.singularize %>.id}",
|
23
|
+
# subtitle: "Optional Subtitle",
|
24
|
+
action: :show_<%= model_name.singularize %>,
|
25
|
+
arguments: { <%= model_name.singularize %>: <%= model_name.singularize %> },
|
26
|
+
editing_style: :delete
|
27
|
+
}
|
28
|
+
end
|
29
|
+
}]
|
30
|
+
end
|
31
|
+
|
32
|
+
def show_<%= model_name.singularize %>(args)
|
33
|
+
open <%= model_name.singularize.camelize %>DetailScreen.new(args)
|
34
|
+
end
|
35
|
+
|
36
|
+
def on_cell_deleted(cell, index_path)
|
37
|
+
cell[:arguments][:<%= model_name.singularize %>].destroy
|
38
|
+
app.data.save
|
39
|
+
end
|
40
|
+
|
41
|
+
# You don't have to reapply styles to all UIViews. If you want to optimize,
|
42
|
+
# another way to do it is to tag the views you need to restyle in your stylesheet,
|
43
|
+
# then only reapply the tagged views. For example:
|
44
|
+
# def logo(st)
|
45
|
+
# st.frame = {t: 10, w: 200, h: 96}
|
46
|
+
# st.centered = :horizontal
|
47
|
+
# st.image = image.resource('logo')
|
48
|
+
# st.tag(:reapply_style)
|
49
|
+
# end
|
50
|
+
#
|
51
|
+
# Then in will_animate_rotate
|
52
|
+
# find(:reapply_style).reapply_styles
|
53
|
+
|
54
|
+
# Remove the following if you're only using portrait
|
55
|
+
def will_animate_rotate(orientation, duration)
|
56
|
+
reapply_styles
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class <%= model_name.singularize.camelize %>DetailScreenStylesheet < ApplicationStylesheet
|
2
|
+
# Add your view stylesheets here. You can then override styles if needed,
|
3
|
+
# example: include FooStylesheet
|
4
|
+
|
5
|
+
def setup
|
6
|
+
# Add stylesheet specific setup stuff here.
|
7
|
+
# Add application specific setup stuff in application_stylesheet.rb
|
8
|
+
end
|
9
|
+
|
10
|
+
def root_view(st)
|
11
|
+
st.background_color = color.white
|
12
|
+
end
|
13
|
+
<%- model_attributes.each_with_index do |key_value, index| %>
|
14
|
+
<%- attr, type = key_value -%>
|
15
|
+
def <%= attr %>(st)
|
16
|
+
<%- if index == 0 -%>
|
17
|
+
nav_bar_height = 64 # First element is below the nav bar
|
18
|
+
st.frame = { t: nav_bar_height, w: :full, h: 44, padding: 10 }
|
19
|
+
<%- else -%>
|
20
|
+
st.frame = { bp: 0, w: :full, h: 44, padding: 10 }
|
21
|
+
<%- end -%>
|
22
|
+
end
|
23
|
+
<%- end -%>
|
24
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
class Edit<%= model_name.camelize %>Screen < PM::XLFormScreen
|
2
|
+
title "Edit <%= model_name.titleize %>"
|
3
|
+
stylesheet <%= model_name.camelize %>FormScreenStylesheet
|
4
|
+
|
5
|
+
attr_accessor :<%= model_name %>
|
6
|
+
|
7
|
+
form_options required: :asterisks, # add an asterisk to required fields
|
8
|
+
on_save: :'save_form:', # will be called when you touch save
|
9
|
+
on_cancel: :cancel_form, # will be called when you touch cancel
|
10
|
+
auto_focus: true # the form will focus on the first focusable field
|
11
|
+
|
12
|
+
def form_data
|
13
|
+
[{
|
14
|
+
cells: [
|
15
|
+
<%- model_attributes.each do |attr, type| -%>
|
16
|
+
{
|
17
|
+
title: "<%= attr.titleize %>",
|
18
|
+
name: :<%= attr %>,
|
19
|
+
type: :<%= type == 'boolean' ? 'check' : type %>,
|
20
|
+
value: <%= model_name %>.<%= attr %>
|
21
|
+
},
|
22
|
+
<%- end -%>
|
23
|
+
]
|
24
|
+
}]
|
25
|
+
end
|
26
|
+
|
27
|
+
def save_form(values)
|
28
|
+
dismiss_keyboard
|
29
|
+
<%= model_name %>.update(values)
|
30
|
+
app.data.save
|
31
|
+
close(<%= model_name %>: <%= model_name %>)
|
32
|
+
end
|
33
|
+
|
34
|
+
def cancel_form
|
35
|
+
close
|
36
|
+
end
|
37
|
+
|
38
|
+
# You don't have to reapply styles to all UIViews. If you want to optimize,
|
39
|
+
# another way to do it is to tag the views you need to restyle in your stylesheet,
|
40
|
+
# then only reapply the tagged views. For example:
|
41
|
+
# def logo(st)
|
42
|
+
# st.frame = {t: 10, w: 200, h: 96}
|
43
|
+
# st.centered = :horizontal
|
44
|
+
# st.image = image.resource('logo')
|
45
|
+
# st.tag(:reapply_style)
|
46
|
+
# end
|
47
|
+
#
|
48
|
+
# Then in will_animate_rotate
|
49
|
+
# find(:reapply_style).reapply_styles
|
50
|
+
|
51
|
+
# Remove the following if you're only using portrait
|
52
|
+
def will_animate_rotate(orientation, duration)
|
53
|
+
reapply_styles
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class <%= model_name.singularize.camelize %>Stylesheet < ApplicationStylesheet
|
2
|
+
# Add your view stylesheets here. You can then override styles if needed,
|
3
|
+
# example: include FooStylesheet
|
4
|
+
|
5
|
+
def setup
|
6
|
+
# Add stylesheet specific setup stuff here.
|
7
|
+
# Add application specific setup stuff in application_stylesheet.rb
|
8
|
+
end
|
9
|
+
|
10
|
+
def root_view(st)
|
11
|
+
st.background_color = color.white
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
class New<%= model_name.camelize %>Screen < PM::XLFormScreen
|
2
|
+
title "New <%= model_name.titleize %>"
|
3
|
+
stylesheet <%= model_name.camelize %>FormScreenStylesheet
|
4
|
+
|
5
|
+
form_options required: :asterisks, # add an asterisk to required fields
|
6
|
+
on_save: :'save_form:', # will be called when you touch save
|
7
|
+
on_cancel: :cancel_form, # will be called when you touch cancel
|
8
|
+
auto_focus: true # the form will focus on the first focusable field
|
9
|
+
|
10
|
+
def form_data
|
11
|
+
[{
|
12
|
+
cells: [
|
13
|
+
<%- model_attributes.each do |attr, type| -%>
|
14
|
+
{
|
15
|
+
title: "<%= attr.titleize %>",
|
16
|
+
name: :<%= attr %>,
|
17
|
+
type: :<%= type == 'boolean' ? 'check' : type %>
|
18
|
+
},
|
19
|
+
<%- end -%>
|
20
|
+
]
|
21
|
+
}]
|
22
|
+
end
|
23
|
+
|
24
|
+
def save_form(values)
|
25
|
+
dismiss_keyboard
|
26
|
+
<%= model_name.camelize %>.create(values)
|
27
|
+
app.data.save
|
28
|
+
close
|
29
|
+
end
|
30
|
+
|
31
|
+
def cancel_form
|
32
|
+
close
|
33
|
+
end
|
34
|
+
|
35
|
+
# You don't have to reapply styles to all UIViews, if you want to optimize, another way to do it
|
36
|
+
# is tag the views you need to restyle in your stylesheet, then only reapply the tagged views, like so:
|
37
|
+
# def logo(st)
|
38
|
+
# st.frame = {t: 10, w: 200, h: 96}
|
39
|
+
# st.centered = :horizontal
|
40
|
+
# st.image = image.resource('logo')
|
41
|
+
# st.tag(:reapply_style)
|
42
|
+
# end
|
43
|
+
#
|
44
|
+
# Then in will_animate_rotate
|
45
|
+
# find(:reapply_style).reapply_styles#
|
46
|
+
|
47
|
+
# Remove the following if you're only using portrait
|
48
|
+
def will_animate_rotate(orientation, duration)
|
49
|
+
reapply_styles
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class <%= model_name.singularize.camelize %>Stylesheet < ApplicationStylesheet
|
2
|
+
# Add your view stylesheets here. You can then override styles if needed,
|
3
|
+
# example: include FooStylesheet
|
4
|
+
|
5
|
+
def setup
|
6
|
+
# Add stylesheet specific setup stuff here.
|
7
|
+
# Add application specific setup stuff in application_stylesheet.rb
|
8
|
+
end
|
9
|
+
|
10
|
+
def root_view(st)
|
11
|
+
st.background_color = color.white
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'redpotion/generators/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "redpotion-generators"
|
8
|
+
spec.version = Redpotion::Generators::VERSION
|
9
|
+
spec.authors = ["Andrew Havens"]
|
10
|
+
spec.email = ["email@andrewhavens.com"]
|
11
|
+
|
12
|
+
spec.summary = %q{Additional command line generators for RedPotion.}
|
13
|
+
spec.description = %q{Additional command line generators for RedPotion. Adds scaffolding, form, and model generators.}
|
14
|
+
spec.homepage = "https://github.com/andrewhavens/redpotion-generators"
|
15
|
+
spec.license = "MIT"
|
16
|
+
|
17
|
+
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
|
+
f.match(%r{^(test|spec|features)/})
|
19
|
+
end
|
20
|
+
spec.bindir = "exe"
|
21
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
|
+
spec.require_paths = ["lib"]
|
23
|
+
|
24
|
+
spec.add_dependency "thor", "~> 0.19.1"
|
25
|
+
spec.add_dependency "activesupport", "~> 4.2"
|
26
|
+
|
27
|
+
spec.add_development_dependency "bundler", "~> 1.13"
|
28
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
29
|
+
spec.add_development_dependency "rspec", "~> 3.0"
|
30
|
+
spec.add_development_dependency "cucumber", "~> 2.4"
|
31
|
+
spec.add_development_dependency "aruba", "~> 0.14.2"
|
32
|
+
end
|
metadata
ADDED
@@ -0,0 +1,169 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: redpotion-generators
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Andrew Havens
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-10-07 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: thor
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.19.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.19.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: activesupport
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '4.2'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '4.2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.13'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.13'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '3.0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '3.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: cucumber
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '2.4'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.4'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: aruba
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 0.14.2
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 0.14.2
|
111
|
+
description: Additional command line generators for RedPotion. Adds scaffolding, form,
|
112
|
+
and model generators.
|
113
|
+
email:
|
114
|
+
- email@andrewhavens.com
|
115
|
+
executables:
|
116
|
+
- rp
|
117
|
+
extensions: []
|
118
|
+
extra_rdoc_files: []
|
119
|
+
files:
|
120
|
+
- ".gitignore"
|
121
|
+
- ".rspec"
|
122
|
+
- ".travis.yml"
|
123
|
+
- Gemfile
|
124
|
+
- LICENSE.txt
|
125
|
+
- README.md
|
126
|
+
- Rakefile
|
127
|
+
- exe/rp
|
128
|
+
- lib/redpotion/generators.rb
|
129
|
+
- lib/redpotion/generators/cdq_model.rb
|
130
|
+
- lib/redpotion/generators/cdq_table_screen.rb
|
131
|
+
- lib/redpotion/generators/cli.rb
|
132
|
+
- lib/redpotion/generators/scaffold.rb
|
133
|
+
- lib/redpotion/generators/shared/model_generator_methods.rb
|
134
|
+
- lib/redpotion/generators/templates/cdq_migration.tt
|
135
|
+
- lib/redpotion/generators/templates/cdq_model.tt
|
136
|
+
- lib/redpotion/generators/templates/cdq_model_detail_screen.tt
|
137
|
+
- lib/redpotion/generators/templates/cdq_table_screen.tt
|
138
|
+
- lib/redpotion/generators/templates/detail_screen_stylesheet.tt
|
139
|
+
- lib/redpotion/generators/templates/edit_cdq_model_form_screen.tt
|
140
|
+
- lib/redpotion/generators/templates/form_screen_stylesheet.tt
|
141
|
+
- lib/redpotion/generators/templates/new_cdq_model_form_screen.tt
|
142
|
+
- lib/redpotion/generators/templates/table_screen_stylesheet.tt
|
143
|
+
- lib/redpotion/generators/version.rb
|
144
|
+
- redpotion-generators.gemspec
|
145
|
+
homepage: https://github.com/andrewhavens/redpotion-generators
|
146
|
+
licenses:
|
147
|
+
- MIT
|
148
|
+
metadata: {}
|
149
|
+
post_install_message:
|
150
|
+
rdoc_options: []
|
151
|
+
require_paths:
|
152
|
+
- lib
|
153
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
154
|
+
requirements:
|
155
|
+
- - ">="
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: '0'
|
158
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
|
+
requirements:
|
160
|
+
- - ">="
|
161
|
+
- !ruby/object:Gem::Version
|
162
|
+
version: '0'
|
163
|
+
requirements: []
|
164
|
+
rubyforge_project:
|
165
|
+
rubygems_version: 2.5.1
|
166
|
+
signing_key:
|
167
|
+
specification_version: 4
|
168
|
+
summary: Additional command line generators for RedPotion.
|
169
|
+
test_files: []
|