redpotion 1.4.0 → 1.5.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 +4 -4
- data/README.md +1 -35
- data/bin/potion +6 -2
- data/lib/project/ext/kernel.rb +9 -1
- data/lib/project/ext/object.rb +4 -0
- data/lib/project/ext/ui_image_view.rb +3 -1
- data/lib/project/ext/ui_view.rb +16 -16
- data/lib/project/pro_motion/collection_screen.rb +13 -0
- data/lib/project/pro_motion/data_table.rb +5 -2
- data/lib/project/pro_motion/data_table_searchable.rb +9 -13
- data/lib/project/pro_motion/table.rb +18 -0
- data/lib/project/ruby_motion_query/app.rb +10 -0
- data/lib/project/version.rb +1 -1
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c612a7c529685b2e3d9788f59c71f6326ed2e9c5
|
4
|
+
data.tar.gz: 0868dfb194fad46b871c527a278ea85e356e39af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db1174afce9b8419e240349f1dc88a43b06d6dcdb69ae2b2a95062825a4a0888061b30d38eb9a61054810ad25625e50e9be9a2b32fe3bcdabe4578fd42b472d5
|
7
|
+
data.tar.gz: 2384817d833b77a6950aaf56ad8c60039bf6cbb99bbe623d97f2a26ef1da4020a4f3bf273464f449642bc0174e9603f5b7af73a7e8e70275f2e471288e56de7f
|
data/README.md
CHANGED
@@ -30,38 +30,4 @@ ProMotion for screens and RMQ for styles, animations, traversing, events, etc.
|
|
30
30
|
|
31
31
|
**Read the [RedPotion Documentation](http://docs.redpotion.org) here**
|
32
32
|
|
33
|
-
|
34
|
-
<br />
|
35
|
-
|
36
|
-
----------
|
37
|
-
|
38
|
-
<br />
|
39
|
-
|
40
|
-
## Quick start
|
41
|
-
|
42
|
-
```
|
43
|
-
gem install redpotion
|
44
|
-
|
45
|
-
potion create my_app
|
46
|
-
bundle
|
47
|
-
rake pod:install
|
48
|
-
rake
|
49
|
-
```
|
50
|
-
|
51
|
-
## Installation
|
52
|
-
|
53
|
-
- `gem install redpotion`
|
54
|
-
|
55
|
-
If you use rbenv
|
56
|
-
|
57
|
-
- `rbenv rehash`
|
58
|
-
|
59
|
-
add it to your `Gemfile`:
|
60
|
-
|
61
|
-
- `gem 'redpotion'`
|
62
|
-
|
63
|
-
<br />
|
64
|
-
|
65
|
-
## Read the documentation at [docs.redpotion.org](http://docs.redpotion.org)
|
66
|
-
|
67
|
-
<br />
|
33
|
+
**Read the [RedPotion Quick Start Documentation](http://docs.redpotion.org/en/latest/quick_start/) here**
|
data/bin/potion
CHANGED
@@ -78,6 +78,10 @@ class PotionCommandLine
|
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
+
def include_skip_option?(options)
|
82
|
+
(options.first && options.first.include?('--'))
|
83
|
+
end
|
84
|
+
|
81
85
|
def create(template_or_app_name, *options)
|
82
86
|
# Dry Run option - TODO - change this to --dry_run to streamline
|
83
87
|
if options.first == 'dry_run'
|
@@ -85,7 +89,7 @@ class PotionCommandLine
|
|
85
89
|
options.slice!(0)
|
86
90
|
end
|
87
91
|
|
88
|
-
if options.
|
92
|
+
if options.compact.empty? || include_skip_option?(options)
|
89
93
|
new(template_or_app_name, *options)
|
90
94
|
else
|
91
95
|
generate(template_or_app_name, *options)
|
@@ -263,7 +267,7 @@ end
|
|
263
267
|
|
264
268
|
# Process input, execute actions
|
265
269
|
unless ARGV.length > 0
|
266
|
-
puts "potion - Invalid command, do something like this: potion
|
270
|
+
puts "potion - Invalid command, do something like this: potion new my_new_app\n"
|
267
271
|
puts PotionCommandLine::HELP_TEXT
|
268
272
|
exit
|
269
273
|
end
|
data/lib/project/ext/kernel.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
if RUBYMOTION_ENV == "development"
|
2
|
-
|
2
|
+
class TopLevel
|
3
3
|
def live(interval = 1.0, debug=false)
|
4
4
|
rmq_live_stylesheets interval, debug
|
5
5
|
end
|
@@ -7,5 +7,13 @@ if RUBYMOTION_ENV == "development"
|
|
7
7
|
def enable_live_stylesheets(interval)
|
8
8
|
enable_rmq_live_stylesheets interval
|
9
9
|
end
|
10
|
+
|
11
|
+
def open(screen, args={})
|
12
|
+
find.screen.open(screen, args)
|
13
|
+
end
|
14
|
+
|
15
|
+
def close(args={})
|
16
|
+
find.screen.close(args)
|
17
|
+
end
|
10
18
|
end
|
11
19
|
end
|
data/lib/project/ext/object.rb
CHANGED
@@ -16,7 +16,9 @@ class UIImageView
|
|
16
16
|
options:SDWebImageRefreshCached,
|
17
17
|
progress:nil,
|
18
18
|
completed: -> image, error, cacheType, finished {
|
19
|
-
|
19
|
+
Dispatch::Queue.main.async do
|
20
|
+
self.image = image
|
21
|
+
end unless image.nil?
|
20
22
|
})
|
21
23
|
else
|
22
24
|
puts "\n[RedPotion ERROR] tried to set remote_image without SDWebImage cocoapod. Please add this to your Rakefile: \n\napp.pods do\n pod \"SDWebImage\"\nend\n"
|
data/lib/project/ext/ui_view.rb
CHANGED
@@ -19,32 +19,32 @@ class UIView
|
|
19
19
|
on_styled
|
20
20
|
end
|
21
21
|
|
22
|
-
def append(view_or_constant, style=nil, opts = {})
|
23
|
-
rmq(self).append(view_or_constant, style, opts)
|
22
|
+
def append(view_or_constant, style=nil, opts = {}, &block)
|
23
|
+
rmq(self).append(view_or_constant, style, opts, &block)
|
24
24
|
end
|
25
|
-
def append!(view_or_constant, style=nil, opts = {})
|
26
|
-
rmq(self).append!(view_or_constant, style, opts)
|
25
|
+
def append!(view_or_constant, style=nil, opts = {}, &block)
|
26
|
+
rmq(self).append!(view_or_constant, style, opts, &block)
|
27
27
|
end
|
28
28
|
|
29
|
-
def prepend(view_or_constant, style=nil, opts = {})
|
30
|
-
rmq(self).prepend(view_or_constant, style, opts)
|
29
|
+
def prepend(view_or_constant, style=nil, opts = {}, &block)
|
30
|
+
rmq(self).prepend(view_or_constant, style, opts, &block)
|
31
31
|
end
|
32
|
-
def prepend!(view_or_constant, style=nil, opts = {})
|
33
|
-
rmq(self).prepend!(view_or_constant, style, opts)
|
32
|
+
def prepend!(view_or_constant, style=nil, opts = {}, &block)
|
33
|
+
rmq(self).prepend!(view_or_constant, style, opts, &block)
|
34
34
|
end
|
35
35
|
|
36
|
-
def create(view_or_constant, style=nil, opts = {})
|
37
|
-
rmq(self).create(view_or_constant, style, opts)
|
36
|
+
def create(view_or_constant, style=nil, opts = {}, &block)
|
37
|
+
rmq(self).create(view_or_constant, style, opts, &block)
|
38
38
|
end
|
39
|
-
def create!(view_or_constant, style=nil, opts = {})
|
40
|
-
rmq(self).create!(view_or_constant, style, opts)
|
39
|
+
def create!(view_or_constant, style=nil, opts = {}, &block)
|
40
|
+
rmq(self).create!(view_or_constant, style, opts, &block)
|
41
41
|
end
|
42
42
|
|
43
|
-
def build(view, style = nil, opts = {})
|
44
|
-
rmq(self).build(view, style, opts)
|
43
|
+
def build(view, style = nil, opts = {}, &block)
|
44
|
+
rmq(self).build(view, style, opts, &block)
|
45
45
|
end
|
46
|
-
def build!(view, style = nil, opts = {})
|
47
|
-
rmq(self).build!(view, style, opts)
|
46
|
+
def build!(view, style = nil, opts = {}, &block)
|
47
|
+
rmq(self).build!(view, style, opts, &block)
|
48
48
|
end
|
49
49
|
|
50
50
|
def on(event, args = {}, &block)
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module ProMotion
|
2
|
+
class CollectionScreen
|
3
|
+
|
4
|
+
def set_stylesheet
|
5
|
+
super.tap do
|
6
|
+
if self.class.rmq_style_sheet_class
|
7
|
+
self.collection_view.rmq.apply_style(:collection_view) if self.rmq.stylesheet.respond_to?(:collection_view)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
@@ -58,7 +58,7 @@ module ProMotion
|
|
58
58
|
data_with_scope = data_model.send(data_scope)
|
59
59
|
end
|
60
60
|
|
61
|
-
if data_with_scope.sort_descriptors.
|
61
|
+
if data_with_scope.sort_descriptors.blank?
|
62
62
|
# Try to be smart about how we sort things if a sort descriptor doesn't exist
|
63
63
|
attributes = data_model.send(:attribute_names)
|
64
64
|
sort_attribute = nil
|
@@ -67,7 +67,10 @@ module ProMotion
|
|
67
67
|
end
|
68
68
|
|
69
69
|
if sort_attribute
|
70
|
-
|
70
|
+
|
71
|
+
unless data_scope == :all
|
72
|
+
mp "The `#{data_model}` model scope `#{data_scope}` needs a sort descriptor. Add sort_by(:property) to your scope. Currently sorting by :#{sort_attribute}.", force_color: :yellow
|
73
|
+
end
|
71
74
|
data_model.send(data_scope).sort_by(sort_attribute)
|
72
75
|
else
|
73
76
|
# This is where the application says goodbye and dies in a fiery crash.
|
@@ -2,21 +2,15 @@ module ProMotion
|
|
2
2
|
module Table
|
3
3
|
module Searchable
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
if self.is_a?(ProMotion::DataTableScreen)
|
11
|
-
if params[:search_bar][:fields].nil?
|
12
|
-
raise "ERROR: You must specify fields:[:example] for your searchable DataTableScreen. It should be an array of fields you want searched in CDQ."
|
13
|
-
else
|
14
|
-
@data_table_predicate_fields = all_params[:search_bar][:fields]
|
15
|
-
end
|
5
|
+
def make_data_table_searchable(params={})
|
6
|
+
if params[:search_bar][:fields].nil?
|
7
|
+
raise "ERROR: You must specify fields:[:example] for your searchable DataTableScreen. It should be an array of fields you want searched in CDQ."
|
8
|
+
else
|
9
|
+
@data_table_predicate_fields = params[:search_bar][:fields]
|
16
10
|
end
|
11
|
+
params[:delegate] = search_delegate
|
17
12
|
|
18
|
-
|
19
|
-
all_params
|
13
|
+
make_searchable(params)
|
20
14
|
end
|
21
15
|
|
22
16
|
def search_fetch_controller
|
@@ -24,6 +18,8 @@ module ProMotion
|
|
24
18
|
end
|
25
19
|
|
26
20
|
def new_frc_with_search(search_string)
|
21
|
+
return if @data_table_predicate_fields.blank?
|
22
|
+
|
27
23
|
# Create the predicate from the predetermined fetch scope.
|
28
24
|
where = @data_table_predicate_fields.map{|f| "#{f} CONTAINS[cd] \"#{search_string}\"" }.join(" OR ")
|
29
25
|
search_scope = fetch_scope.where(where)
|
@@ -5,4 +5,22 @@ module ProMotion
|
|
5
5
|
self.rmq.build(cell)
|
6
6
|
end
|
7
7
|
end
|
8
|
+
|
9
|
+
# This is duplicated from ProMotion in order to be call
|
10
|
+
# make_data_table_searchable instead of make_searchable
|
11
|
+
module Table
|
12
|
+
def set_up_searchable
|
13
|
+
if self.class.respond_to?(:get_searchable) && self.class.get_searchable
|
14
|
+
if self.is_a?(ProMotion::DataTableScreen)
|
15
|
+
self.make_data_table_searchable(content_controller: self, search_bar: self.class.get_searchable_params)
|
16
|
+
else
|
17
|
+
self.make_searchable(content_controller: self, search_bar: self.class.get_searchable_params)
|
18
|
+
end
|
19
|
+
if self.class.get_searchable_params[:hide_initially]
|
20
|
+
self.tableView.contentOffset = CGPointMake(0, self.searchDisplayController.searchBar.frame.size.height)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
8
26
|
end
|
@@ -8,6 +8,16 @@ module RubyMotionQuery
|
|
8
8
|
def data(*args) # Do not alias this
|
9
9
|
CDQ.cdq(*args)
|
10
10
|
end
|
11
|
+
|
12
|
+
def reset_image_cache!
|
13
|
+
if !!defined?(SDWebImageManager)
|
14
|
+
image_cache = SDImageCache.sharedImageCache
|
15
|
+
image_cache.clearMemory
|
16
|
+
image_cache.clearDisk
|
17
|
+
else
|
18
|
+
puts "\n[RedPotion ERROR] tried to reset image cache without SDWebImage cocoapod. Please add this to your Rakefile: \n\napp.pods do\n pod \"SDWebImage\"\nend\n"
|
19
|
+
end
|
20
|
+
end
|
11
21
|
end
|
12
22
|
end
|
13
23
|
end
|
data/lib/project/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redpotion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- InfiniteRed
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-11-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ruby_motion_query
|
@@ -17,28 +17,28 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 1.
|
20
|
+
version: 1.7.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 1.
|
27
|
+
version: 1.7.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: ProMotion
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: 2.
|
34
|
+
version: 2.5.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
39
|
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version: 2.
|
41
|
+
version: 2.5.0
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: motion_print
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,6 +129,7 @@ files:
|
|
129
129
|
- lib/project/ext/ui_table_view_cell.rb
|
130
130
|
- lib/project/ext/ui_view.rb
|
131
131
|
- lib/project/ext/ui_view_controller.rb
|
132
|
+
- lib/project/pro_motion/collection_screen.rb
|
132
133
|
- lib/project/pro_motion/data_table.rb
|
133
134
|
- lib/project/pro_motion/data_table_screen.rb
|
134
135
|
- lib/project/pro_motion/data_table_search_delegate.rb
|
@@ -180,10 +181,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
180
181
|
version: '0'
|
181
182
|
requirements: []
|
182
183
|
rubyforge_project:
|
183
|
-
rubygems_version: 2.4.
|
184
|
+
rubygems_version: 2.4.5.1
|
184
185
|
signing_key:
|
185
186
|
specification_version: 4
|
186
187
|
summary: RedPotion combines RMQ, ProMotion, CDQ, AFMotion, and more for the perfect
|
187
188
|
mix to develop in RubyMotion fast
|
188
189
|
test_files: []
|
189
|
-
has_rdoc:
|