status_bar 0.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzZlOGIwZTJkYmJkZTQzZDFjODI3MjIwMjBhOTZjOTMzYzI5NTEyMg==
4
+ YTkwY2NmMzJjOGY3ZTQ3YWFlZGMxNDMxOTNlODRhY2JkM2Y5YzY4Yg==
5
5
  data.tar.gz: !binary |-
6
- YjllNGQ1YTg4YTRmOTNkN2VlZjQzNTQ3NmYzYTgxZGIyOThjZTMxMA==
6
+ OGQ1Mjc3NDAyZWU1MmQ3NWNmNGJiOTcxYjRhMWU4NmY0NTQwNWY1MA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YmRkMzRlMGJjMTg4OWVkMDA5YmY4MzJhZGVjODg4NjY0OWQ5YWM0ZTg0YmVl
10
- ZDAwMTQ4NTY4YTliM2ZkNmE0MDRiNTNjNGY0NWE3OTA3N2U1OGIyODQ5N2Rm
11
- ZjI0ZWQyNjg5NmM1MDVlNmQyMWY5MzM3Yzg4YzZlODEzMWQ1Mzg=
9
+ NGU4M2Y5OTIxMWIxZDQ5ODI1OGMzYTY3MTJjNGE1MjBjNWFhMjY2OGU4N2M2
10
+ OWQ2OTBmNzBlZGMyYzVlY2ZmYjMwOGE4NmQ5NTI2NjZmMzQ2NjYwOGI2NjRl
11
+ MjU1ODRhNTJlZTIzMDcyMTU3YzlmYTFjMDkwYjhkNzQzNTk5ZWY=
12
12
  data.tar.gz: !binary |-
13
- MzM5MmQ1NmVhNDhlMDQ0YTU0Yjg0ZTUxNzRmMDNkNzRjY2I1NzVjZDdjMmIw
14
- YzlkOTc4ZDNmNTFmNzViY2QxYmRiMTA2NTVjNjQ2YmZiNDZhMWQ4OTdhM2Rk
15
- MTNiYjljOGZiNTk0ZjY3OTQ0YTkyMzNiMGMwMzkzNmVjZTUwZTQ=
13
+ NTBlNjZhYTYwYjZlYmZiOGQwMTMyM2MyMDFmOTRlMDA2YTdjYzdiMmNkNGNj
14
+ MGZmZDM5NDJjNzM0Zjc5OTgxZGEwYTNmMGM3YjNmMzEwY2UxZDVhNjVmZDhj
15
+ YmQxODYxY2M4MWNlNjI5YzE4NTVhZjE1YzJhMWFiZmY4NzZhODA=
data/Gemfile CHANGED
@@ -2,7 +2,7 @@ source 'https://rubygems.org'
2
2
 
3
3
  gem 'status_bar', :path => '~/Projects/*Defaults/Misc/Gems/status_bar'
4
4
  gem 'teacup', '2.1.13'
5
- gem 'sugarcube', '1.3.2'
5
+ gem 'sugarcube', '1.3.5'
6
6
 
7
7
  group :development do
8
8
  gem 'awesome_print_motion'
data/Gemfile.lock CHANGED
@@ -1,16 +1,41 @@
1
- GIT
2
- remote: https://github.com/holgersindbaek/sugarcube
3
- revision: 24c813f16f5799dd7ddffdf801d83a989270befa
1
+ PATH
2
+ remote: ~/Projects/*Defaults/Misc/Gems/status_bar
4
3
  specs:
5
- sugarcube (1.3.4)
4
+ status_bar (0.2)
5
+ bubble-wrap (= 1.4.0)
6
+ hs
7
+ sugarcube (= 1.3.5)
8
+ teacup (= 2.1.13)
6
9
 
7
10
  GEM
8
11
  remote: https://rubygems.org/
9
12
  specs:
13
+ activesupport (3.2.15)
14
+ i18n (~> 0.6, >= 0.6.4)
15
+ multi_json (~> 1.0)
10
16
  awesome_print_motion (0.1.0)
17
+ bubble-wrap (1.4.0)
11
18
  celluloid (0.15.2)
12
19
  timers (~> 1.1.0)
20
+ claide (0.3.2)
21
+ cocoapods (0.27.1)
22
+ activesupport (>= 3.2.15, < 4)
23
+ claide (~> 0.3.2)
24
+ cocoapods-core (= 0.27.1)
25
+ cocoapods-downloader (~> 0.2.0)
26
+ colored (~> 1.2)
27
+ escape (~> 0.0.4)
28
+ json_pure (~> 1.8)
29
+ open4 (~> 1.3)
30
+ xcodeproj (~> 0.14.0)
31
+ cocoapods-core (0.27.1)
32
+ activesupport (>= 3.2.15, < 4)
33
+ json_pure (~> 1.8)
34
+ nap (~> 0.5)
35
+ cocoapods-downloader (0.2.0)
13
36
  coderay (1.0.9)
37
+ colored (1.2)
38
+ escape (0.0.4)
14
39
  ffi (1.9.3)
15
40
  formatador (0.2.4)
16
41
  guard (2.2.2)
@@ -22,12 +47,23 @@ GEM
22
47
  guard-motion (0.1.2)
23
48
  guard (>= 1.1.0)
24
49
  rake (>= 0.9)
50
+ hs (0.1.1)
51
+ bubble-wrap (>= 1.3.0)
52
+ motion-cocoapods (>= 1.3.7)
53
+ sugarcube
54
+ i18n (0.6.5)
55
+ json_pure (1.8.1)
25
56
  listen (2.2.0)
26
57
  celluloid (>= 0.15.2)
27
58
  rb-fsevent (>= 0.9.3)
28
59
  rb-inotify (>= 0.9)
29
60
  lumberjack (1.0.4)
30
61
  method_source (0.8.2)
62
+ motion-cocoapods (1.4.0)
63
+ cocoapods (>= 0.26.2)
64
+ multi_json (1.8.2)
65
+ nap (0.5.1)
66
+ open4 (1.3.0)
31
67
  pry (0.9.12.2)
32
68
  coderay (~> 1.0.5)
33
69
  method_source (~> 0.8)
@@ -37,9 +73,14 @@ GEM
37
73
  rb-inotify (0.9.2)
38
74
  ffi (>= 0.5.0)
39
75
  slop (3.4.6)
76
+ sugarcube (1.3.5)
40
77
  teacup (2.1.13)
41
78
  thor (0.18.1)
42
79
  timers (1.1.0)
80
+ xcodeproj (0.14.1)
81
+ activesupport (~> 3.0)
82
+ colored (~> 1.2)
83
+ rake
43
84
 
44
85
  PLATFORMS
45
86
  ruby
@@ -47,5 +88,6 @@ PLATFORMS
47
88
  DEPENDENCIES
48
89
  awesome_print_motion
49
90
  guard-motion
50
- sugarcube!
91
+ status_bar!
92
+ sugarcube (= 1.3.5)
51
93
  teacup (= 2.1.13)
data/app/app_delegate.rb CHANGED
@@ -1,9 +1,9 @@
1
1
  class AppDelegate
2
2
  def application(application, didFinishLaunchingWithOptions:launchOptions)
3
3
  @window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
4
- @window.makeKeyAndVisible
5
- @window.backgroundColor = "#000000".uicolor
4
+ @window.backgroundColor = UIColor.clearColor
6
5
  @window.rootViewController = DemoController.new
6
+ @window.makeKeyAndVisible
7
7
 
8
8
  true
9
9
  end
@@ -1,7 +1,9 @@
1
1
  class DemoController < UIViewController
2
- stylesheet :demo
2
+ stylesheet :demo_sheet
3
3
 
4
- layout :demo_view do
4
+ attr_reader :status_bar
5
+
6
+ layout :demo do
5
7
  @container = subview(UIView, :container) do
6
8
  @show_notice_button = subview(UIButton.buttonWithType(UIButtonTypeRoundedRect), :show_notice_button)
7
9
  @show_activity_button = subview(UIButton.buttonWithType(UIButtonTypeRoundedRect), :show_activity_button)
@@ -15,8 +17,6 @@ class DemoController < UIViewController
15
17
  def viewDidLoad
16
18
  super
17
19
 
18
- ap "first viewDidLoad"
19
-
20
20
  @status_bar = StatusBar::Base.new
21
21
 
22
22
  @show_notice_button.when(UIControlEventTouchUpInside) {
@@ -1,6 +1,6 @@
1
- Teacup::Stylesheet.new :demo do
1
+ Teacup::Stylesheet.new :demo_sheet do
2
2
 
3
- style :demo_view,
3
+ style :demo,
4
4
  backgroundColor: "#000000".uicolor
5
5
 
6
6
  style :container,
data/lib/project/base.rb CHANGED
@@ -1,11 +1,18 @@
1
1
  module StatusBar
2
2
  class Base
3
3
 
4
+ attr_reader :view, :current_notice_view
5
+
4
6
  def initialize
5
7
 
6
- @status_bar_view = StatusBar::View.new
7
- App.shared.keyWindow.rootViewController.view.addSubview(@status_bar_view.view)
8
- App.shared.keyWindow.rootViewController.view.sendSubviewToBack(@status_bar_view.view)
8
+ # Add statusbar to root view controller, once root controller is there.
9
+ timer = 0.1.second.every do
10
+ return if App.shared.keyWindow == nil || App.shared.keyWindow.rootViewController == nil
11
+ @view = StatusBar::View.new
12
+ App.shared.keyWindow.rootViewController.view.addSubview(@view.view)
13
+ App.shared.keyWindow.rootViewController.view.sendSubviewToBack(@view.view)
14
+ timer.invalidate
15
+ end
9
16
 
10
17
  # Set old orientation and rotation effect
11
18
  @current_notice_view = nil
@@ -24,19 +31,19 @@ module StatusBar
24
31
 
25
32
  # EXTERNAL COMMANDS
26
33
  def show_notice(text)
27
- show_notice_view(@status_bar_view.notice_view, text:text)
34
+ show_notice_view(@view.notice_view, text:text)
28
35
  end
29
36
 
30
37
  def show_activity_notice(text)
31
- show_notice_view(@status_bar_view.activity_view, text:text)
38
+ show_notice_view(@view.activity_view, text:text)
32
39
  end
33
40
 
34
41
  def show_success_notice(text)
35
- show_notice_view(@status_bar_view.success_view, text:text)
42
+ show_notice_view(@view.success_view, text:text)
36
43
  end
37
44
 
38
45
  def show_error_notice(text)
39
- show_notice_view(@status_bar_view.error_view, text:text)
46
+ show_notice_view(@view.error_view, text:text)
40
47
  end
41
48
 
42
49
  def hide_notice
@@ -44,7 +51,7 @@ module StatusBar
44
51
  end
45
52
 
46
53
  def visible?
47
- StatusBar::Helper.view_visible?(@status_bar_view.status_bar_view)
54
+ StatusBar::Helper.view_visible?(@view.status_bar_view)
48
55
  end
49
56
 
50
57
 
@@ -53,13 +60,13 @@ module StatusBar
53
60
  def show_status_bar_view
54
61
  if !visible?
55
62
  App.shared.setStatusBarHidden(true, withAnimation:UIStatusBarAnimationSlide)
56
- @status_bar_view.status_bar_view.move_to([0, 0])
63
+ @view.status_bar_view.move_to([0, 0])
57
64
  end
58
65
  end
59
66
 
60
67
  def hide_status_bar_view
61
68
  if visible?
62
- @status_bar_view.status_bar_view.move_to([0, 20])
69
+ @view.status_bar_view.move_to([0, 20])
63
70
  App.shared.setStatusBarHidden(false, withAnimation:UIStatusBarAnimationSlide)
64
71
  end
65
72
  end
@@ -75,7 +82,7 @@ module StatusBar
75
82
  notice_view.y = 0 if !visible?
76
83
  notice_view.move_to([0, 0]) if visible?
77
84
  position_inner_views(notice_view)
78
- @timer = EM.add_timer 3 { hide_status_bar_view } unless accessory == nil
85
+ @timer = EM.add_timer 3 { hide_status_bar_view } if accessory != nil && accessory.class == UIImageView
79
86
 
80
87
  show_status_bar_view unless visible?
81
88
  @current_notice_view = notice_view
data/lib/project/style.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  include StatusBar
2
2
 
3
- Teacup::Stylesheet.new :status_bar_style do
3
+ Teacup::Stylesheet.new :status_bar_sheet do
4
4
 
5
5
  style :status_bar_view,
6
6
  height: 20,
data/lib/project/view.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  module StatusBar
2
2
  class View < UIViewController
3
- stylesheet :status_bar_style
3
+ stylesheet :status_bar_sheet
4
4
 
5
5
  attr_accessor :status_bar_view, :notice_view, :notice_label, :activity_view, :activity_spinner, :activity_label, :success_view, :success_image, :success_label, :error_view, :error_image, :error_label
6
6
 
7
- layout :status_bar_view_controller do
7
+ layout :status_bar_vc_view do
8
8
 
9
9
  @status_bar_view = subview(UIView, :status_bar_view) do
10
10
  @notice_view = subview(UIView, :notice_view) do
data/lib/status_bar.rb CHANGED
@@ -33,5 +33,5 @@ Motion::Project::App.setup do |app|
33
33
  end
34
34
 
35
35
  # app.files.unshift Dir.glob(File.join(lib_dir_path, "project/**/*.rb"))
36
- app.resources_dirs << File.join(File.dirname(__FILE__), 'resources')
36
+ # app.resources_dirs << File.join(File.dirname(__FILE__), 'resources')
37
37
  end
@@ -1,52 +1,167 @@
1
1
  describe "A - DemoController" do
2
2
  tests DemoController
3
-
4
- # I gave up testing, because things good weird. If anyone wants to take up this, I'd love to see how they'd do it.
5
3
 
6
- context "B - Verify button existence" do
4
+ before do
5
+ # Buttons
6
+ @show_notice_button = view("Show Notice")
7
+ @show_activity_button = view("Show Activity")
8
+ @show_success_button = view("Show Success")
9
+ @show_error_button = view("Show Error")
10
+ @hide_notice_button = view("Hide Notice")
11
+ @visibility_button = view("Visible?")
12
+
13
+ # Statusbar view
14
+ @status_bar_view = controller.view.viewWithStylename(:status_bar_view)
15
+
16
+ # Statusbar subviews
17
+ @notice_view = controller.view.viewWithStylename(:notice_view)
18
+ @notice_label = controller.view.viewWithStylename(:notice_label)
19
+ @activity_view = controller.view.viewWithStylename(:activity_view)
20
+ @activity_spinner = controller.view.viewWithStylename(:activity_spinner)
21
+ @activity_label = controller.view.viewWithStylename(:activity_label)
22
+ @success_view = controller.view.viewWithStylename(:success_view)
23
+ @success_image = controller.view.viewWithStylename(:success_image)
24
+ @success_label = controller.view.viewWithStylename(:success_label)
25
+ @error_view = controller.view.viewWithStylename(:error_view)
26
+ @error_image = controller.view.viewWithStylename(:error_image)
27
+ @error_label = controller.view.viewWithStylename(:error_label)
28
+ end
29
+
30
+
7
31
 
8
- it "show notice button" do
9
- view("Show Notice").should.not.equal nil
32
+ context "B - View existence" do
33
+
34
+ it "buttons" do
35
+ @show_notice_button.should.not.equal nil
36
+ @show_activity_button.should.not.equal nil
37
+ @show_success_button.should.not.equal nil
38
+ @show_error_button.should.not.equal nil
39
+ @hide_notice_button.should.not.equal nil
40
+ @visibility_button.should.not.equal nil
10
41
  end
11
42
 
12
- it "show activity button" do
13
- view("Show Activity").should.not.equal nil
43
+ it "statusbar view" do
44
+ @status_bar_view.should.not.equal nil
14
45
  end
15
46
 
16
- it "show success button" do
17
- view("Show Success").should.not.equal nil
47
+ it "statusbar subviews" do
48
+ @notice_view.should.not.equal nil
49
+ @notice_label.should.not.equal nil
50
+ @activity_view.should.not.equal nil
51
+ @activity_spinner.should.not.equal nil
52
+ @activity_label.should.not.equal nil
53
+ @success_view.should.not.equal nil
54
+ @success_image.should.not.equal nil
55
+ @success_label.should.not.equal nil
56
+ @error_view.should.not.equal nil
57
+ @error_image.should.not.equal nil
58
+ @error_label.should.not.equal nil
18
59
  end
19
60
 
20
- it "show error button" do
21
- view("Show Error").should.not.equal nil
61
+ end
62
+
63
+
64
+
65
+ context "B - Clicking buttons" do
66
+
67
+ it "show notice" do
68
+ @notice_view.y.should.equal 20
69
+ tap "Show Notice"
70
+ wait 0.3 do
71
+ @notice_view.y.should.equal 0
72
+ end
22
73
  end
23
74
 
24
- it "hide notice button" do
25
- view("Hide Notice").should.not.equal nil
75
+ it "activity notice" do
76
+ @activity_view.y.should.equal 20
77
+ tap "Show Activity"
78
+ wait 0.3 do
79
+ @activity_view.y.should.equal 0
80
+ end
26
81
  end
27
82
 
28
- it "visible? button" do
29
- view("Visible?").should.not.equal nil
83
+ it "success notice" do
84
+ @success_view.y.should.equal 20
85
+ tap "Show Success"
86
+ wait 0.3 do
87
+ @success_view.y.should.equal 0
88
+ end
89
+ end
90
+
91
+ it "error notice" do
92
+ @error_view.y.should.equal 20
93
+ tap "Show Error"
94
+ wait 0.3 do
95
+ @error_view.y.should.equal 0
96
+ end
97
+ end
98
+
99
+ it "hide notice" do
100
+ @status_bar_view.y.should.equal 0
101
+ tap "Hide Notice"
102
+ wait 0.3 do
103
+ @status_bar_view.y.should.equal 20
104
+ end
30
105
  end
31
106
 
32
107
  end
33
108
 
34
109
 
35
110
 
36
- # context "B - Clicking buttons" do
111
+ context "B - Multiple clicks" do
37
112
 
38
- # it "notice button should show notice"
113
+ it "show success notice three times" do
114
+ @success_view.y.should.equal 20
115
+ tap "Show Success"
116
+ wait 0.3 do
117
+ tap "Show Success"
118
+ @success_view.y.should.equal 0
119
+ end
39
120
 
40
- # it "activity button should show activity"
121
+ wait 0.4 do
122
+ tap "Show Success"
123
+ @success_view.y.should.equal 0
124
+ end
41
125
 
42
- # it "success button should show success"
126
+ wait 0.5 do
127
+ @success_view.y.should.equal 0
128
+ end
129
+ end
43
130
 
44
- # it "error button should show error"
131
+ it "show success notice twice with different message" do
132
+ @notice_view.y.should.equal 20
133
+ tap "Show Notice"
134
+ wait 0.3 do
135
+ @notice_view.y.should.equal 0
136
+ @notice_label.text.should.equal "This is a notice"
137
+ controller.status_bar.show_notice "This is another notice"
138
+ end
139
+
140
+ wait 0.4 do
141
+ @notice_view.y.should.equal 0
142
+ @notice_label.text.should.equal "This is another notice"
143
+ end
144
+ end
45
145
 
46
- # it "hide button should hide notice"
146
+ it "show success, then notice, then error" do
147
+ @success_view.y.should.equal 20
148
+ tap "Show Success"
149
+ wait 0.3 do
150
+ @success_view.y.should.equal 0
151
+ tap "Show Notice"
152
+ end
153
+
154
+ wait 0.4 do
155
+ @notice_view.y.should < 20
156
+ tap "Show Error"
157
+ end
158
+
159
+ wait 0.5 do
160
+ @error_view.y.should < 20
161
+ end
162
+ end
47
163
 
48
- # it "visible buttons should check visibility"
164
+ end
49
165
 
50
- # end
51
166
 
52
167
  end
data/status_bar.gemspec CHANGED
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
- STATUSBAR_VERSION = "0.2"
2
+ STATUSBAR_VERSION = "0.2.1"
3
3
 
4
4
  Gem::Specification.new do |spec|
5
5
  spec.name = "status_bar"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: status_bar
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Holger Sindbaek
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-01 00:00:00.000000000 Z
11
+ date: 2013-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -166,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
166
166
  version: '0'
167
167
  requirements: []
168
168
  rubyforge_project:
169
- rubygems_version: 2.1.8
169
+ rubygems_version: 2.1.10
170
170
  signing_key:
171
171
  specification_version: 4
172
172
  summary: RubyMotion status bar wrapper.