motion-prime 0.8.10 → 0.8.11
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 +6 -14
- data/.gitignore +1 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +1 -1
- data/motion-prime/models/_base_mixin.rb +2 -1
- data/motion-prime/models/_timestamps_mixin.rb +33 -0
- data/motion-prime/models/model.rb +1 -0
- data/motion-prime/screens/_base_mixin.rb +4 -4
- data/motion-prime/sections/base_section.rb +8 -8
- data/motion-prime/sections/form.rb +8 -0
- data/motion-prime/sections/form/base_field_section.rb +8 -0
- data/motion-prime/sections/form/date_field_section.rb +8 -0
- data/motion-prime/sections/form/password_field_section.rb +8 -0
- data/motion-prime/sections/form/select_field_section.rb +4 -0
- data/motion-prime/sections/form/string_field_section.rb +8 -0
- data/motion-prime/sections/form/switch_field_section.rb +8 -0
- data/motion-prime/sections/form/text_field_section.rb +8 -0
- data/motion-prime/version.rb +1 -1
- data/spec/helpers/models.rb +4 -3
- data/spec/models/finder_spec.rb +0 -1
- data/spec/models/model_spec.rb +27 -10
- metadata +33 -32
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
metadata.gz: !binary |-
|
9
|
-
OGM2N2VhZmIyMGFmYTQ1MjJkZjdlZjc0NTkwYWViMTkzNjYxMzc0YjVkZTQ3
|
10
|
-
YjdjNDE0MGVhNmZkYzhhZTA3NWYwOGMzYTdmN2ExZWU0MjhhMWZjOWMzNTAy
|
11
|
-
ZTQxY2QwMGQ5YjQxYjQ3OTIwN2UzZDBlN2JkYTIwMGUyMDQzMmU=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
Y2E0ZTZjMzBkMDZiMTRjZTE5NTM4MjFkZmZhN2Y3YTRiY2U0ZTZjMjZlOTE0
|
14
|
-
OGM3ZTdkOWU2YjFhZDU1OGJiMmU1MGFiMmQyMDJiZmY2ZmU1MzFkYWUyYjU3
|
15
|
-
YWFiZDYxMTk0MWFhNjI0NTA1ZjUzMmY1ZGZmN2QyZGZhMmFiYzQ=
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 2d46d1511acff3435a0cb081f7276b3728e2c5eb
|
4
|
+
data.tar.gz: fe0d22a532d8f2cfd7b4b4a66e9950498aae5296
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: df56ca13d08064cf8e4a24e28101a45d2e86b46475743cdfeb23487e6c5ec8c46c9550a926a281954cfe1b4fc8a2f8b0f403bc708624b90543cec371eccdce7d
|
7
|
+
data.tar.gz: 1db69c0bf00648b86c335f4798958d2ee457d34dcd044c9b6b1404d4b41efab8a1eb6081c1bcbf6dd7ea771342666372871beab9ac24fa074bf9b07cc7725152
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
=== 0.8.11
|
2
|
+
* Ability to send block to after_render/before_render
|
3
|
+
* Added ability to get all form field values via `field_values`
|
4
|
+
* Ability to automatically set models saved_at/created_at using `timestamp_attributes`.
|
5
|
+
|
1
6
|
=== 0.8.10
|
2
7
|
* Added font_name/font_size options support.
|
3
8
|
|
data/Gemfile.lock
CHANGED
@@ -0,0 +1,33 @@
|
|
1
|
+
module MotionPrime
|
2
|
+
module ModelTimestampsMixin
|
3
|
+
extend ::MotionSupport::Concern
|
4
|
+
|
5
|
+
def self.included(base)
|
6
|
+
base.class_attribute :_timestamp_attributes
|
7
|
+
end
|
8
|
+
|
9
|
+
def save
|
10
|
+
time = Time.now
|
11
|
+
trigger_timestamp(:save, time)
|
12
|
+
trigger_timestamp(:create, time) if new_record?
|
13
|
+
super
|
14
|
+
end
|
15
|
+
|
16
|
+
def trigger_timestamp(action_name, time)
|
17
|
+
field = (_timestamp_attributes || {})[action_name]
|
18
|
+
return unless field
|
19
|
+
self.send(:"#{field}=", time)
|
20
|
+
end
|
21
|
+
|
22
|
+
module ClassMethods
|
23
|
+
def timestamp_attributes(actions = nil)
|
24
|
+
self._timestamp_attributes ||= {}
|
25
|
+
actions ||= {save: :saved_at, create: :created_at}
|
26
|
+
actions.each do |action_name, field|
|
27
|
+
_timestamp_attributes[action_name.to_sym] = field
|
28
|
+
self.attribute field, type: :time
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -16,6 +16,7 @@ module MotionPrime
|
|
16
16
|
include MotionPrime::ModelSyncMixin
|
17
17
|
include MotionPrime::ModelFinderMixin
|
18
18
|
include MotionPrime::ModelDirtyMixin
|
19
|
+
include MotionPrime::ModelTimestampsMixin
|
19
20
|
|
20
21
|
attribute :bag_key # need this as we use shared store; each nested resource must belong to parent bag
|
21
22
|
attribute :id
|
@@ -70,11 +70,11 @@ module MotionPrime
|
|
70
70
|
t ? @title = t : @title ||= self.to_s
|
71
71
|
end
|
72
72
|
end
|
73
|
-
def before_render(
|
74
|
-
set_callback :render, :before,
|
73
|
+
def before_render(*method_names, &block)
|
74
|
+
set_callback :render, :before, *method_names, &block
|
75
75
|
end
|
76
|
-
def after_render(
|
77
|
-
set_callback :render, :after,
|
76
|
+
def after_render(*method_names)
|
77
|
+
set_callback :render, :after, *method_names, &block
|
78
78
|
end
|
79
79
|
def create_with_options(screen, navigation = true, options = {})
|
80
80
|
screen = create_tab_bar(screen, options) if screen.is_a?(Array)
|
@@ -371,17 +371,17 @@ module MotionPrime
|
|
371
371
|
def container(options)
|
372
372
|
self.container_options = options
|
373
373
|
end
|
374
|
-
def before_render(
|
375
|
-
set_callback :render, :before,
|
374
|
+
def before_render(*method_names, &block)
|
375
|
+
set_callback :render, :before, *method_names, &block
|
376
376
|
end
|
377
|
-
def after_render(
|
378
|
-
set_callback :render, :after,
|
377
|
+
def after_render(*method_names, &block)
|
378
|
+
set_callback :render, :after, *method_names, &block
|
379
379
|
end
|
380
|
-
def before_initialize(
|
381
|
-
set_callback :initialize, :before,
|
380
|
+
def before_initialize(*method_names, &block)
|
381
|
+
set_callback :initialize, :before, *method_names, &block
|
382
382
|
end
|
383
|
-
def after_initialize(
|
384
|
-
set_callback :initialize, :after,
|
383
|
+
def after_initialize(*method_names, &block)
|
384
|
+
set_callback :initialize, :after, *method_names, &block
|
385
385
|
end
|
386
386
|
def bind_keyboard_close(options)
|
387
387
|
self.keyboard_close_bindings = options
|
@@ -80,6 +80,14 @@ module MotionPrime
|
|
80
80
|
fields.to_hash
|
81
81
|
end
|
82
82
|
|
83
|
+
def field_values
|
84
|
+
values = {}
|
85
|
+
fields.each do |field_name, field|
|
86
|
+
values[field_name.to_sym] = field.value if field.input?
|
87
|
+
end
|
88
|
+
values
|
89
|
+
end
|
90
|
+
|
83
91
|
def register_elements_from_section(section)
|
84
92
|
self.rendered_views ||= {}
|
85
93
|
section.elements.values.each do |element|
|
@@ -10,5 +10,13 @@ module MotionPrime
|
|
10
10
|
|
11
11
|
element :error_message, type: :error_message, text: proc { all_errors.join("\n") if observing_errors? }
|
12
12
|
after_render :bind_text_input
|
13
|
+
|
14
|
+
def value
|
15
|
+
view(:input).text
|
16
|
+
end
|
17
|
+
|
18
|
+
def input?
|
19
|
+
true
|
20
|
+
end
|
13
21
|
end
|
14
22
|
end
|
data/motion-prime/version.rb
CHANGED
data/spec/helpers/models.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
class User < MotionPrime::Model
|
2
|
-
attributes :name, :age, :
|
2
|
+
attributes :name, :age, :birthday
|
3
|
+
timestamp_attributes
|
3
4
|
end
|
4
5
|
class Plane < MotionPrime::Model
|
5
6
|
attributes :name, :age
|
@@ -43,12 +44,12 @@ class CustomModule::Car < MotionPrime::Model
|
|
43
44
|
end
|
44
45
|
Car = CustomModule::Car
|
45
46
|
|
46
|
-
def stub_user(name, age,
|
47
|
+
def stub_user(name, age, birthday, id = nil)
|
47
48
|
user = User.new
|
48
49
|
user.id = id || 1
|
49
50
|
user.name = name
|
50
51
|
user.age = age
|
51
|
-
user.
|
52
|
+
user.birthday = birthday
|
52
53
|
user
|
53
54
|
end
|
54
55
|
|
data/spec/models/finder_spec.rb
CHANGED
data/spec/models/model_spec.rb
CHANGED
@@ -21,11 +21,11 @@ describe MotionPrime::Model do
|
|
21
21
|
|
22
22
|
user.info.keys.include?("name").should.be.true
|
23
23
|
user.info.keys.include?("age").should.be.true
|
24
|
-
user.info.keys.include?("
|
24
|
+
user.info.keys.include?("birthday").should.be.true
|
25
25
|
|
26
26
|
user.info["name"].should == "Bob"
|
27
27
|
user.info["age"].should == 10
|
28
|
-
user.info["
|
28
|
+
user.info["birthday"].should == user.birthday
|
29
29
|
|
30
30
|
user.name.should == "Bob"
|
31
31
|
user.age.should == 10
|
@@ -43,7 +43,7 @@ describe MotionPrime::Model do
|
|
43
43
|
user = User.new({
|
44
44
|
name: "Eddie",
|
45
45
|
age: 12,
|
46
|
-
|
46
|
+
birthday: Time.now,
|
47
47
|
gender: "m",
|
48
48
|
}, validate_attribute_presence: true )
|
49
49
|
}.should.raise(::MotionPrime::StoreError)
|
@@ -53,7 +53,7 @@ describe MotionPrime::Model do
|
|
53
53
|
user = User.new({
|
54
54
|
name: "Eddie",
|
55
55
|
age: 12,
|
56
|
-
|
56
|
+
birthday: Time.now,
|
57
57
|
gender: "m",
|
58
58
|
})
|
59
59
|
user.name.should == "Eddie"
|
@@ -64,18 +64,24 @@ describe MotionPrime::Model do
|
|
64
64
|
it "create object with hash" do
|
65
65
|
name = "Abby"
|
66
66
|
age = 30
|
67
|
-
|
68
|
-
user = User.create(:
|
67
|
+
birthday = Time.now
|
68
|
+
user = User.create(name: name, age: age, birthday: birthday)
|
69
69
|
user.name.should == name
|
70
70
|
user.age.should == age
|
71
|
-
user.
|
71
|
+
user.birthday.should == birthday
|
72
72
|
end
|
73
73
|
|
74
74
|
it "create object in their class" do
|
75
75
|
@store.allObjectClasses.should == []
|
76
|
-
Organization.create(:
|
76
|
+
Organization.create(name: "Droid Labs")
|
77
77
|
@store.allObjectClasses.should == ["Organization"]
|
78
78
|
end
|
79
|
+
|
80
|
+
it "sets timestamp" do
|
81
|
+
user = User.create(name: "Bob")
|
82
|
+
user.created_at.present?.should.be.true
|
83
|
+
user.saved_at.present?.should.be.true
|
84
|
+
end
|
79
85
|
end
|
80
86
|
|
81
87
|
describe "#save" do
|
@@ -96,6 +102,17 @@ describe MotionPrime::Model do
|
|
96
102
|
user2.id.present?.should.be.true
|
97
103
|
end
|
98
104
|
|
105
|
+
it "sets timestamp" do
|
106
|
+
user = stub_user("Bob", 10, Time.now)
|
107
|
+
user.id = nil
|
108
|
+
user.save
|
109
|
+
created_at = user.created_at
|
110
|
+
sleep(1)
|
111
|
+
user.save
|
112
|
+
user.created_at.should == created_at
|
113
|
+
user.saved_at.should != created_at
|
114
|
+
end
|
115
|
+
|
99
116
|
# per object store since NanoStore 2.5.1
|
100
117
|
it "user per instance store to save" do
|
101
118
|
store1 = MotionPrime::Store.create
|
@@ -130,7 +147,7 @@ describe MotionPrime::Model do
|
|
130
147
|
|
131
148
|
user1 = User.find(15).first
|
132
149
|
user1.name.should == "Bob"
|
133
|
-
user1.
|
150
|
+
user1.birthday.should.be.nil
|
134
151
|
end
|
135
152
|
|
136
153
|
it "create model in file store" do
|
@@ -141,7 +158,7 @@ describe MotionPrime::Model do
|
|
141
158
|
|
142
159
|
user1 = User.find(15).first
|
143
160
|
user1.name.should == "Bob"
|
144
|
-
user1.
|
161
|
+
user1.birthday.should.be.nil
|
145
162
|
|
146
163
|
File.delete(path) rescue nil
|
147
164
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: motion-prime
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Iskander Haziev
|
@@ -9,174 +9,174 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-03-
|
12
|
+
date: 2014-03-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- -
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
20
|
version: '0'
|
21
21
|
type: :development
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- -
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: motion-stump
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '0'
|
35
35
|
type: :development
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
42
|
- !ruby/object:Gem::Dependency
|
43
43
|
name: motion-redgreen
|
44
44
|
requirement: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
type: :development
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ">="
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: cocoapods
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
59
59
|
requirements:
|
60
|
-
- -
|
60
|
+
- - ">="
|
61
61
|
- !ruby/object:Gem::Version
|
62
62
|
version: '0'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
|
-
- -
|
67
|
+
- - ">="
|
68
68
|
- !ruby/object:Gem::Version
|
69
69
|
version: '0'
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: motion-cocoapods
|
72
72
|
requirement: !ruby/object:Gem::Requirement
|
73
73
|
requirements:
|
74
|
-
- -
|
74
|
+
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
79
|
version_requirements: !ruby/object:Gem::Requirement
|
80
80
|
requirements:
|
81
|
-
- -
|
81
|
+
- - ">="
|
82
82
|
- !ruby/object:Gem::Version
|
83
83
|
version: '0'
|
84
84
|
- !ruby/object:Gem::Dependency
|
85
85
|
name: motion-require
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
87
87
|
requirements:
|
88
|
-
- -
|
88
|
+
- - ">="
|
89
89
|
- !ruby/object:Gem::Version
|
90
90
|
version: '0'
|
91
91
|
type: :runtime
|
92
92
|
prerelease: false
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
94
94
|
requirements:
|
95
|
-
- -
|
95
|
+
- - ">="
|
96
96
|
- !ruby/object:Gem::Version
|
97
97
|
version: '0'
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
99
|
name: motion-support
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
101
101
|
requirements:
|
102
|
-
- - ~>
|
102
|
+
- - "~>"
|
103
103
|
- !ruby/object:Gem::Version
|
104
104
|
version: 0.2.6
|
105
105
|
type: :runtime
|
106
106
|
prerelease: false
|
107
107
|
version_requirements: !ruby/object:Gem::Requirement
|
108
108
|
requirements:
|
109
|
-
- - ~>
|
109
|
+
- - "~>"
|
110
110
|
- !ruby/object:Gem::Version
|
111
111
|
version: 0.2.6
|
112
112
|
- !ruby/object:Gem::Dependency
|
113
113
|
name: bubble-wrap
|
114
114
|
requirement: !ruby/object:Gem::Requirement
|
115
115
|
requirements:
|
116
|
-
- - ~>
|
116
|
+
- - "~>"
|
117
117
|
- !ruby/object:Gem::Version
|
118
118
|
version: 1.5.0
|
119
119
|
type: :runtime
|
120
120
|
prerelease: false
|
121
121
|
version_requirements: !ruby/object:Gem::Requirement
|
122
122
|
requirements:
|
123
|
-
- - ~>
|
123
|
+
- - "~>"
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: 1.5.0
|
126
126
|
- !ruby/object:Gem::Dependency
|
127
127
|
name: sugarcube
|
128
128
|
requirement: !ruby/object:Gem::Requirement
|
129
129
|
requirements:
|
130
|
-
- - ~>
|
130
|
+
- - "~>"
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: 1.5.2
|
133
133
|
type: :runtime
|
134
134
|
prerelease: false
|
135
135
|
version_requirements: !ruby/object:Gem::Requirement
|
136
136
|
requirements:
|
137
|
-
- - ~>
|
137
|
+
- - "~>"
|
138
138
|
- !ruby/object:Gem::Version
|
139
139
|
version: 1.5.2
|
140
140
|
- !ruby/object:Gem::Dependency
|
141
141
|
name: afmotion
|
142
142
|
requirement: !ruby/object:Gem::Requirement
|
143
143
|
requirements:
|
144
|
-
- - ~>
|
144
|
+
- - "~>"
|
145
145
|
- !ruby/object:Gem::Version
|
146
146
|
version: 2.0.0
|
147
147
|
type: :runtime
|
148
148
|
prerelease: false
|
149
149
|
version_requirements: !ruby/object:Gem::Requirement
|
150
150
|
requirements:
|
151
|
-
- - ~>
|
151
|
+
- - "~>"
|
152
152
|
- !ruby/object:Gem::Version
|
153
153
|
version: 2.0.0
|
154
154
|
- !ruby/object:Gem::Dependency
|
155
155
|
name: methadone
|
156
156
|
requirement: !ruby/object:Gem::Requirement
|
157
157
|
requirements:
|
158
|
-
- -
|
158
|
+
- - ">="
|
159
159
|
- !ruby/object:Gem::Version
|
160
160
|
version: '0'
|
161
161
|
type: :runtime
|
162
162
|
prerelease: false
|
163
163
|
version_requirements: !ruby/object:Gem::Requirement
|
164
164
|
requirements:
|
165
|
-
- -
|
165
|
+
- - ">="
|
166
166
|
- !ruby/object:Gem::Version
|
167
167
|
version: '0'
|
168
168
|
- !ruby/object:Gem::Dependency
|
169
169
|
name: rm-digest
|
170
170
|
requirement: !ruby/object:Gem::Requirement
|
171
171
|
requirements:
|
172
|
-
- -
|
172
|
+
- - ">="
|
173
173
|
- !ruby/object:Gem::Version
|
174
174
|
version: '0'
|
175
175
|
type: :runtime
|
176
176
|
prerelease: false
|
177
177
|
version_requirements: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
179
|
-
- -
|
179
|
+
- - ">="
|
180
180
|
- !ruby/object:Gem::Version
|
181
181
|
version: '0'
|
182
182
|
description: RubyMotion apps development framework
|
@@ -187,9 +187,9 @@ executables:
|
|
187
187
|
extensions: []
|
188
188
|
extra_rdoc_files: []
|
189
189
|
files:
|
190
|
-
- .gitignore
|
191
|
-
- .travis.yml
|
192
|
-
- .yardopts
|
190
|
+
- ".gitignore"
|
191
|
+
- ".travis.yml"
|
192
|
+
- ".yardopts"
|
193
193
|
- CHANGELOG.md
|
194
194
|
- Gemfile
|
195
195
|
- Gemfile.lock
|
@@ -286,6 +286,7 @@ files:
|
|
286
286
|
- motion-prime/models/_finder_mixin.rb
|
287
287
|
- motion-prime/models/_nano_bag_mixin.rb
|
288
288
|
- motion-prime/models/_sync_mixin.rb
|
289
|
+
- motion-prime/models/_timestamps_mixin.rb
|
289
290
|
- motion-prime/models/association_collection.rb
|
290
291
|
- motion-prime/models/errors.rb
|
291
292
|
- motion-prime/models/exceptions.rb
|
@@ -385,17 +386,17 @@ require_paths:
|
|
385
386
|
- lib
|
386
387
|
required_ruby_version: !ruby/object:Gem::Requirement
|
387
388
|
requirements:
|
388
|
-
- -
|
389
|
+
- - ">="
|
389
390
|
- !ruby/object:Gem::Version
|
390
391
|
version: '0'
|
391
392
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
392
393
|
requirements:
|
393
|
-
- -
|
394
|
+
- - ">="
|
394
395
|
- !ruby/object:Gem::Version
|
395
396
|
version: '0'
|
396
397
|
requirements: []
|
397
398
|
rubyforge_project:
|
398
|
-
rubygems_version: 2.
|
399
|
+
rubygems_version: 2.2.1
|
399
400
|
signing_key:
|
400
401
|
specification_version: 4
|
401
402
|
summary: RubyMotion apps development framework
|