motion-prime 1.0.2 → 1.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: cf57e2b87cb9d1c7912cde4c4214abc26989e8cb
4
- data.tar.gz: b2b2918d58563b1d69cee7d61441506f64e946f8
3
+ metadata.gz: 6b5a8d65686ce22cebae1f6a18212692367805be
4
+ data.tar.gz: 3e66ba6bf3966649c60a86210fdad3165a5822a2
5
5
  SHA512:
6
- metadata.gz: 06032b2cfc04f709afba17c4d44cf5a71358e66d82f4034fb80abd0c4411f1656e4e4c68dd35c2417d00086af37fed9183dc3fdac0b5bb2c0c3434579a0ee4c8
7
- data.tar.gz: 2e0a943eb5290ac7cc763e5f1489af9fca9200ead20aa7f9e379c61844ede1b74daa41a42c8b973b5bdd58d99d30a62410d59aa51dd58f3e88da8a6387c951c6
6
+ metadata.gz: 599c6c60f50516854af50238bcbfd1e09a6d2e248e8687c9436672bbe9b7c86192d36c642e0a647da3f04667a57411df4de03aa557efec3a32511738fffad736
7
+ data.tar.gz: 04eadebb2e6967e2abb9ff613bdbc1c38632ec2b907442df57c54ddcd19f3b0477ec6592093ba100cb44c5f6e91f17f769c25fbfadc39989072686ad346e4a7f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ === 1.0.3
2
+ * Fixed issue with overriding background color
3
+ * Improved support for UIPageViewController
4
+
1
5
  === 1.0.2
2
6
  * Fix regression for UIButton builder
3
7
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- motion-prime (1.0.2)
4
+ motion-prime (1.0.3)
5
5
  activesupport
6
6
  afmotion (~> 2.1.0)
7
7
  bubble-wrap (~> 1.6.0)
data/files/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
3
  gem 'motion-cocoapods', '~> 1.4.1'
4
- gem 'motion-prime', '1.0.2'
4
+ gem 'motion-prime', '1.0.3'
5
5
 
6
6
  # add reside menu for sidebar support
7
7
  # gem 'prime_reside_menu', '~> 0.1.4'
@@ -0,0 +1,5 @@
1
+ def diff(other)
2
+ dup.
3
+ delete_if { |k, v| other[k] == v }.
4
+ merge!(other.dup.delete_if { |k, v| has_key?(k) })
5
+ end
@@ -16,10 +16,36 @@ class Kernel
16
16
  end
17
17
 
18
18
  def pp(*attrs)
19
- NSLog([*attrs].map(&:inspect).join(' '))
19
+ attrs = [*attrs]
20
+ results = attrs.map.with_index do |entity, i|
21
+ if entity.is_a?(Hash)
22
+ "#{"\n" unless attrs[i-1].is_a?(Hash)}#{inspect_hash(entity)}\n"
23
+ else
24
+ entity.inspect
25
+ end
26
+ end
27
+ NSLog(results.compact.join(' '))
20
28
  attrs
21
29
  end
22
30
 
31
+ def inspect_hash(hash, depth = 0)
32
+ return '{}' if hash.blank?
33
+ res = hash.map.with_index do |(key, value), i|
34
+ k = "#{' '*depth}#{i.zero? ? '{' : ' '}#{key.inspect}=>"
35
+ pair = if value.is_a?(Hash)
36
+ "#{k}\n#{inspect_hash(value, depth + 1)}"
37
+ else
38
+ [k, value.inspect].join
39
+ end
40
+ if i == hash.count-1
41
+ pair + '}'
42
+ else
43
+ pair + ",\n"
44
+ end
45
+ end
46
+ res.join
47
+ end
48
+
23
49
  def class_name_without_kvo
24
50
  self.class.name.gsub(/^NSKVONotifying_/, '')
25
51
  end
@@ -66,7 +66,7 @@ module MotionPrime
66
66
  block.try(:call, view, self)
67
67
  end
68
68
 
69
- if computed_options.has_key?(:delegate) && computed_options[:delegate].respond_to?(:delegated_by)
69
+ if computed_options.has_key?(:delegate) && computed_options[:delegate].respond_to?(:delegated_by) && view.respond_to?(:setDelegate)
70
70
  computed_options[:delegate].delegated_by(view)
71
71
  end
72
72
  view
@@ -124,11 +124,11 @@ module MotionPrime
124
124
  end
125
125
 
126
126
  def hide
127
- view.hidden = true
127
+ view.hidden = true if view # TODO: should we update computed options in opposite case?
128
128
  end
129
129
 
130
130
  def show
131
- view.hidden = false
131
+ view.hidden = false if view
132
132
  end
133
133
 
134
134
  def bind_gesture(action, receiver = nil)
@@ -16,7 +16,8 @@ module MotionPrime
16
16
  masks_to_bounds: options[:layer].try(:[], :masks_to_bounds) || options[:clips_to_bounds],
17
17
  corner_radius: options[:layer].try(:[], :corner_radius).to_f,
18
18
  border_width: options[:layer].try(:[], :border_width).to_f,
19
- border_color: options[:layer].try(:[], :border_color).try(:uicolor) || background_color
19
+ border_color: options[:layer].try(:[], :border_color).try(:uicolor) || background_color,
20
+ dashes: options[:layer].try(:[], :dashes),
20
21
  }
21
22
  end
22
23
 
@@ -3,27 +3,35 @@ module MotionPrime
3
3
  def draw_background_in_context(context = nil)
4
4
  context ||= UIGraphicsGetCurrentContext()
5
5
  options = draw_options
6
- rect, background_color, border_width, border_color, corner_radius = options.slice(:rect, :background_color, :border_width, :border_color, :corner_radius).values
6
+ rect, background_color, border_width, border_color, corner_radius, dashes_array = options.slice(:rect, :background_color, :border_width, :border_color, :corner_radius, :dashes).values
7
7
 
8
8
  return unless background_color || border_width > 0
9
9
 
10
10
  inset = border_width > 0 ? (border_width - 1 )*0.5 : 0
11
11
  rect = CGRectInset(rect, -inset, -inset)
12
+
13
+ if dashes_array
14
+ dashes = Pointer.new(:float, dashes_array.count)
15
+ dashes_array.each_with_index { |length, i| dashes[i] = length }
16
+ end
17
+
12
18
  if corner_radius > 0
13
- bezierPath = UIBezierPath.bezierPathWithRoundedRect rect, cornerRadius: corner_radius
19
+ bezier_path = UIBezierPath.bezierPathWithRoundedRect rect, cornerRadius: corner_radius
14
20
  UIGraphicsPushContext(context)
21
+ bezier_path.setLineDash(dashes, count: dashes_array.count, phase: 0) if dashes
15
22
  if border_width > 0
16
- bezierPath.lineWidth = border_width
23
+ bezier_path.lineWidth = border_width
17
24
  border_color.setStroke
18
- bezierPath.stroke
25
+ bezier_path.stroke
19
26
  end
20
27
  if background_color
21
28
  background_color.setFill
22
- bezierPath.fill
29
+ bezier_path.fill
23
30
  end
24
31
  UIGraphicsPopContext()
25
32
  else
26
33
  if border_width > 0 && border_color
34
+ CGContextSetLineDash(context, dashes_array.count, dashes, 0) if dashes
27
35
  CGContextSetLineWidth(context, border_width)
28
36
  CGContextSetStrokeColorWithColor(context, border_color.uicolor.cgcolor)
29
37
  CGContextStrokeRect(context, rect)
@@ -1,23 +1,14 @@
1
1
  module MotionPrime
2
2
  class PageViewControllerElement < BaseElement
3
+ after_render :set_delegated
3
4
  def view_class
4
5
  "UIPageViewController"
5
6
  end
6
7
 
7
- def render!(options = {}, &block)
8
- builder = ViewBuilder.new(class_factory(view_class), computed_options.merge(options))
9
- controller = builder.view
10
- ViewStyler.new(controller, CGRectZero, builder.options).apply
11
-
12
- first = section.collection_delegate.fetch_item(0)
13
- controller.setViewControllers([first], direction:UIPageViewControllerNavigationDirectionForward,
14
- animated:false, completion:lambda{|a|}) # completion:nil blows up!
15
-
16
- screen.addChildViewController(controller)
17
- screen.view.addSubview(controller.view)
18
- controller.didMoveToParentViewController(screen)
19
- screen.view.gestureRecognizers = controller.gestureRecognizers
20
- self.view = controller
8
+ def set_delegated
9
+ if computed_options.has_key?(:delegate) && computed_options[:delegate].respond_to?(:delegated_by) && section.respond_to?(:page_controller)
10
+ computed_options[:delegate].delegated_by(section.page_controller)
11
+ end
21
12
  end
22
13
  end
23
14
  end
@@ -106,7 +106,7 @@ module MotionPrime
106
106
  inspection = self.info.keys.map { |name|
107
107
  "#{name}: #{attribute_for_inspect(name)}"
108
108
  }.compact.join(", ")
109
- "#<#{self.class}:0x#{self.object_id.to_s(16)}> #{inspection}>"
109
+ "#<#{self.class}:0x#{self.object_id.to_s(16)} #{inspection}>"
110
110
  end
111
111
 
112
112
  # Returns a clone of the record with empty bags
@@ -236,6 +236,9 @@ module MotionPrime
236
236
  api_client.get association_sync_url(key, options, sync_options), params do |response, status_code|
237
237
  data = options[:sync_key] && response ? response[options[:sync_key]] : response
238
238
  if data
239
+ unless data.is_a?(Array)
240
+ raise MotionPrime::SyncError, "Expected Array for sync '#{key}', but received object"
241
+ end
239
242
  NSLog("SYNC: finished sync for #{key} in #{self.class_name_without_kvo}")
240
243
  fetch_has_many_with_attributes(key, data, sync_options)
241
244
  block.call(data, status_code, response) if use_callback
@@ -1,3 +1,4 @@
1
1
  module MotionPrime
2
2
  class StoreError < StandardError; end
3
+ class SyncError < StandardError; end
3
4
  end
@@ -6,7 +6,7 @@ module MotionPrime
6
6
  end
7
7
 
8
8
  def clear_delegated
9
- Array.wrap(@delegated_views).each { |view| view.setDelegate(nil) }
9
+ Array.wrap(@delegated_views).each { |view| view.try(:setDelegate, nil) }
10
10
  end
11
11
  end
12
12
  end
@@ -51,9 +51,9 @@ module MotionPrime
51
51
  end
52
52
 
53
53
  def dealloc
54
- Prime.logger.dealloc_message :collection, self, self.collection_element.try(:view).to_s
55
- collection_delegate.clear_delegated
56
- collection_view.setDataSource nil
54
+ Prime.logger.dealloc_message :collection, self, @collection_element.try(:view).to_s
55
+ @collection_delegate.try(:clear_delegated)
56
+ @collection_element.try(:view).try(:setDataSource, nil)
57
57
  super
58
58
  end
59
59
 
@@ -156,7 +156,7 @@ module MotionPrime
156
156
  end
157
157
 
158
158
  def collection_element_options
159
- container_options.slice(:render_target).merge({
159
+ container_options.except(:styles, :height, :hidden).merge({
160
160
  section: self.weak_ref,
161
161
  styles: collection_styles.values.flatten,
162
162
  delegate: collection_delegate,
@@ -377,7 +377,6 @@ module MotionPrime
377
377
  raw_options = {}
378
378
  raw_options.merge!(self.class.container_options.try(:clone) || {})
379
379
  raw_options.merge!(options[:container] || {})
380
-
381
380
  # allow to pass styles as proc
382
381
  normalize_options(raw_options, elements_eval_object, nil, [:styles])
383
382
  @container_options = raw_options # must be here because section_styles may use container_options for custom styles
@@ -2,7 +2,9 @@ motion_require './page_view/page_view_delegate'
2
2
 
3
3
  module MotionPrime
4
4
  class PageViewSection < AbstractCollectionSection
5
+ attr_accessor :page_controller
5
6
  before_render :render_collection
7
+ after_render :set_first_page
6
8
 
7
9
  def collection_styles_base
8
10
  :base_page_view
@@ -12,16 +14,59 @@ module MotionPrime
12
14
  @collection_delegate ||= PageViewDelegate.new(section: self)
13
15
  end
14
16
 
15
- def grid_element_options
17
+ def page_element_options
16
18
  collection_element_options
17
19
  end
18
20
 
19
21
  def render_collection
20
- self.collection_element = screen.page_view_controller(grid_element_options)
22
+ self.collection_element = screen.page_view_controller(page_element_options)
21
23
  end
22
24
 
23
- def create_section_elements
24
- return
25
+ def set_first_page
26
+ set_page(0)
27
+ end
28
+
29
+ def set_page(index, animated = false, &block)
30
+ block ||= proc{|a|}
31
+ page = page_for_index(index)
32
+ current_index = index_for_page(page_controller.viewControllers.last).to_i
33
+ direction = current_index <= index ? UIPageViewControllerNavigationDirectionForward : UIPageViewControllerNavigationDirectionReverse
34
+ page_controller.setViewControllers([page], direction: direction, animated: animated, completion: block)
35
+ end
36
+
37
+ def reload_collection_data
38
+ page_controller.setViewControllers(page_controller.viewControllers, direction: UIPageViewControllerNavigationDirectionForward, animated: false, completion: proc{|a|})
39
+ end
40
+
41
+ def add_pages(sections, follow = false)
42
+ @data += Array.wrap(sections)
43
+ if follow
44
+ page_index = data.count - 1
45
+ set_page(page_index, true) do |finished|
46
+ BW::Reactor.schedule_on_main { set_page(page_index, false) }
47
+ end
48
+ else
49
+ reload_collection_data
50
+ end
51
+ end
52
+
53
+ # Delegate
54
+ def page_for_index(index)
55
+ return nil if !index || data.length == 0 || index < 0 || index >= data.size
56
+ @view_controllers ||= []
57
+ if @view_controllers[index]
58
+ @view_controllers[index]
59
+ else
60
+ controller = MotionPrime::Screen.new
61
+ section = data[index]
62
+ section.screen = controller.weak_ref
63
+ controller.set_section :main, instance: section
64
+ @view_controllers[index] = controller
65
+ end
66
+ end
67
+
68
+ def index_for_page(view_controller)
69
+ Array.wrap(@view_controllers).index(view_controller)
25
70
  end
26
71
  end
27
72
  end
@@ -6,7 +6,6 @@ module MotionPrime
6
6
  def initialize(options)
7
7
  self.collection_section = options[:section].try(:weak_ref)
8
8
  @section_instance = collection_section.to_s
9
- @view_controllers = {}
10
9
  end
11
10
 
12
11
  # def dealloc
@@ -14,50 +13,27 @@ module MotionPrime
14
13
  # super
15
14
  # end
16
15
 
17
- def data
18
- collection_section.data
19
- end
20
-
21
- def fetch_item(index)
22
- if @view_controllers[index]
23
- @view_controllers[index]
24
- else
25
- controller = MotionPrime::Screen.new
26
- section = data[index]
27
- section.screen = controller.weak_ref
28
- controller.set_section :main, instance: section
29
- @view_controllers[index] = controller
30
- end
31
- end
32
-
33
16
  def viewControllerAtIndex(index, storyboard:storyboard)
34
- return nil if data.length == 0 || index >= data.size
35
- fetch_item(index)
36
- end
37
-
38
- def indexOfViewController(viewController)
39
- @view_controllers.key(viewController)
17
+ collection_section.page_for_index(index)
40
18
  end
41
19
 
42
20
  def pageViewController(pvc, viewControllerBeforeViewController:vc)
43
- index = indexOfViewController(vc)
44
- return if !index || index <= 0
45
- fetch_item(index - 1)
21
+ index = collection_section.index_for_page(vc)
22
+ collection_section.page_for_index(index - 1)
46
23
  end
47
24
 
48
-
49
25
  def pageViewController(pvc, viewControllerAfterViewController:vc)
50
- index = indexOfViewController(vc)
51
- return if !index || index >= data.size - 1
52
- fetch_item(index + 1)
26
+ index = collection_section.index_for_page(vc)
27
+ collection_section.page_for_index(index + 1)
53
28
  end
54
29
 
55
30
  def presentationCountForPageViewController(controller)
56
- data.size
31
+ collection_section.data.size
57
32
  end
58
33
 
59
34
  def pageViewController(pvc, spineLocationForInterfaceOrientation:orientation)
60
- page_view_controller = collection_section.collection_view
35
+ page_view_controller = collection_section.page_controller
36
+
61
37
  current = page_view_controller.viewControllers[0]
62
38
  is_portrait = UIDevice.currentDevice.orientation == UIDeviceOrientationLandscapeLeft ||
63
39
  UIDevice.currentDevice.orientation == UIDeviceOrientationPortraitUpsideDown ||
@@ -67,7 +43,7 @@ module MotionPrime
67
43
  page_view_controller.doubleSided = false
68
44
  return UIPageViewControllerSpineLocationMin
69
45
  else
70
- index = indexOfViewController(current)
46
+ index = collection_section.index_for_page(current)
71
47
  if (index==0 || index%2==0)
72
48
  next_vc = pageViewController(page_view_controller, viewControllerAfterViewController: current)
73
49
  viewControllers = [current, next_vc]
@@ -58,7 +58,7 @@ module MotionPrime
58
58
  next Prime.logger.debug("Reload section: `#{section.name}` is not in the list") unless index
59
59
  paths << index
60
60
  block.call(section, index, counter)
61
- deque_cell(section, at: path) # deque cached
61
+ deque_cell(section, at: index) # deque cached
62
62
  section.reload
63
63
  end
64
64
  self.performSelectorOnMainThread(:reload_cells, withObject: paths, waitUntilDone: false)
@@ -1,3 +1,3 @@
1
1
  module MotionPrime
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
@@ -19,7 +19,7 @@ module MotionPrime
19
19
  view_stack.last.bounds
20
20
  end
21
21
  builder = ViewBuilder.new(klass, options.merge(parent_bounds: parent_bounds))
22
- options = builder.options.merge(calculate_frame: true, parent_bounds: parent_bounds)
22
+ options = builder.options.merge(calculate_frame: options.fetch(:calculate_frame, true), parent_bounds: parent_bounds)
23
23
  view = builder.view
24
24
  insert_index = options.delete(:at_index)
25
25
 
@@ -81,8 +81,20 @@ module MotionPrime
81
81
  klass.alloc.initWithItems items
82
82
  },
83
83
  'UIPageViewController' => Proc.new{|klass, options|
84
- klass.alloc.initWithTransitionStyle(UIPageViewControllerTransitionStylePageCurl,
84
+ controller = klass.alloc.initWithTransitionStyle(options.delete(:transition_style) || UIPageViewControllerTransitionStyleScroll,
85
85
  navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal, options:nil)
86
+
87
+ controller.setDelegate(options.delete(:delegate))
88
+ controller.setDataSource(options.delete(:data_source))
89
+ section = options[:section]
90
+ section.page_controller = controller
91
+ if screen = section.screen
92
+ screen.addChildViewController(controller)
93
+ screen.view.gestureRecognizers = controller.gestureRecognizers
94
+ controller.didMoveToParentViewController(screen)
95
+ end
96
+
97
+ controller.view
86
98
  },
87
99
  'MPTableView' => Proc.new{|klass, options|
88
100
  style = options.delete(:style) || UITableViewStylePlain
@@ -5,7 +5,11 @@ module MotionPrime
5
5
  include HasClassFactory
6
6
  include ElementTextMixin
7
7
 
8
- ORDER = %w[frame font placeholder_font text title_label title]
8
+ ORDER = %w[
9
+ frame
10
+ font placeholder_font text title_label title
11
+ minimum_value maximum_value value
12
+ ]
9
13
 
10
14
  attr_reader :view, :options
11
15
 
@@ -63,14 +67,14 @@ module MotionPrime
63
67
  options[:number_of_lines] = 0
64
68
  end
65
69
  end
70
+ # Fix issue overriding background color
71
+ if options[:background_image].present?
72
+ options.delete(:background_color)
73
+ end
66
74
  extract_font_options(options)
67
75
  extract_font_options(options, 'placeholder')
68
76
 
69
- @options = Hash[
70
- options.sort_by do |k,v|
71
- index = ORDER.index(k.to_s) || -1
72
- end.reverse
73
- ]
77
+ @options = Hash[options.sort_by {|k,v| ORDER.index(k.to_s) || ORDER.count }]
74
78
  end
75
79
 
76
80
  def extract_font_options(options, prefix = nil)
@@ -228,6 +232,8 @@ module MotionPrime
228
232
  stroke_layer.strokeColor = value[:border_color].uicolor.cgcolor
229
233
  stroke_layer.lineWidth = value[:border_width].to_f*2 # another half is hidden by the mask
230
234
 
235
+ stroke_layer.lineDashPattern = value[:dashes] if value[:dashes].present?
236
+
231
237
  container_view = view.delegate
232
238
  stroke_view = UIView.alloc.initWithFrame(layer_bounds)
233
239
  stroke_view.userInteractionEnabled = false
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: 1.0.2
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Iskander Haziev
@@ -9,202 +9,202 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-06-08 00:00:00.000000000 Z
12
+ date: 2014-06-18 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.6.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.6.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.6.0
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.6.0
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.1.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.1.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
  - !ruby/object:Gem::Dependency
183
183
  name: thor
184
184
  requirement: !ruby/object:Gem::Requirement
185
185
  requirements:
186
- - - ">="
186
+ - - '>='
187
187
  - !ruby/object:Gem::Version
188
188
  version: '0'
189
189
  type: :runtime
190
190
  prerelease: false
191
191
  version_requirements: !ruby/object:Gem::Requirement
192
192
  requirements:
193
- - - ">="
193
+ - - '>='
194
194
  - !ruby/object:Gem::Version
195
195
  version: '0'
196
196
  - !ruby/object:Gem::Dependency
197
197
  name: activesupport
198
198
  requirement: !ruby/object:Gem::Requirement
199
199
  requirements:
200
- - - ">="
200
+ - - '>='
201
201
  - !ruby/object:Gem::Version
202
202
  version: '0'
203
203
  type: :runtime
204
204
  prerelease: false
205
205
  version_requirements: !ruby/object:Gem::Requirement
206
206
  requirements:
207
- - - ">="
207
+ - - '>='
208
208
  - !ruby/object:Gem::Version
209
209
  version: '0'
210
210
  description: RubyMotion apps development framework
@@ -215,9 +215,9 @@ executables:
215
215
  extensions: []
216
216
  extra_rdoc_files: []
217
217
  files:
218
- - ".gitignore"
219
- - ".travis.yml"
220
- - ".yardopts"
218
+ - .gitignore
219
+ - .travis.yml
220
+ - .yardopts
221
221
  - CHANGELOG.md
222
222
  - Gemfile
223
223
  - Gemfile.lock
@@ -260,6 +260,7 @@ files:
260
260
  - motion-prime/api_client.rb
261
261
  - motion-prime/config/base.rb
262
262
  - motion-prime/config/config.rb
263
+ - motion-prime/core_ext/hash.rb
263
264
  - motion-prime/core_ext/kernel.rb
264
265
  - motion-prime/core_ext/nil_class.rb
265
266
  - motion-prime/core_ext/time.rb
@@ -431,17 +432,17 @@ require_paths:
431
432
  - lib
432
433
  required_ruby_version: !ruby/object:Gem::Requirement
433
434
  requirements:
434
- - - ">="
435
+ - - '>='
435
436
  - !ruby/object:Gem::Version
436
437
  version: '0'
437
438
  required_rubygems_version: !ruby/object:Gem::Requirement
438
439
  requirements:
439
- - - ">="
440
+ - - '>='
440
441
  - !ruby/object:Gem::Version
441
442
  version: '0'
442
443
  requirements: []
443
444
  rubyforge_project:
444
- rubygems_version: 2.2.2
445
+ rubygems_version: 2.0.6
445
446
  signing_key:
446
447
  specification_version: 4
447
448
  summary: RubyMotion apps development framework