debugmotion 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.
- data/.gitignore +11 -0
- data/Debugmotion.gemspec +19 -0
- data/Gemfile +6 -0
- data/LICENSE +21 -0
- data/README.md +44 -0
- data/Rakefile +13 -0
- data/app/app_delegate.rb +15 -0
- data/app/test_view_controller.rb +14 -0
- data/lib/debugmotion/console.rb +51 -0
- data/lib/debugmotion/debugmotion.rb +11 -0
- data/lib/debugmotion/logger.rb +35 -0
- data/lib/debugmotion/version.rb +3 -0
- data/lib/debugmotion.rb +4 -0
- data/spec/debugmotion_spec.rb +12 -0
- metadata +92 -0
data/.gitignore
ADDED
data/Debugmotion.gemspec
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
require File.expand_path('../lib/debugmotion/version', __FILE__)
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "debugmotion"
|
6
|
+
s.version = Debugmotion::VERSION
|
7
|
+
s.authors = ["Joffrey Jafeux"]
|
8
|
+
s.email = ["j.jaffeux@gmail.com"]
|
9
|
+
s.homepage = "https://github.com/jjaffeux/Debugmotion"
|
10
|
+
s.summary = "Log live debug informations on your device for rubymotion"
|
11
|
+
s.description = "Log live debug informations on your device for rubymotion"
|
12
|
+
|
13
|
+
s.files = `git ls-files`.split($\)
|
14
|
+
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
15
|
+
s.require_paths = ["lib"]
|
16
|
+
|
17
|
+
s.add_dependency "bubble-wrap", ">= 1.1.3"
|
18
|
+
s.add_development_dependency 'rake'
|
19
|
+
end
|
data/Gemfile
ADDED
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2010 Joffrey Jaffeux <j.jaffeux@gmail.com>
|
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,44 @@
|
|
1
|
+
# Debugmotion
|
2
|
+
|
3
|
+
|
4
|
+
## Overview
|
5
|
+
|
6
|
+

|
7
|
+
|
8
|
+
**Debugmotion**, is a tiny gem to help you debug your app when using your device. It allows you to see a console with debug informations you setup in live while you are using your app in real conditions.
|
9
|
+
|
10
|
+
### Setup
|
11
|
+
|
12
|
+
**Loot at the rakefile and the demo app for fast example**
|
13
|
+
|
14
|
+
1. gem install debugmotion
|
15
|
+
2. require 'debugmotion' (Rakefile)
|
16
|
+
|
17
|
+
### Usage
|
18
|
+
|
19
|
+
|
20
|
+
## In your app_delegate
|
21
|
+
````ruby
|
22
|
+
class AppDelegate
|
23
|
+
|
24
|
+
def application(application, didFinishLaunchingWithOptions:launchOptions)
|
25
|
+
@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
|
26
|
+
@view_controller = TestViewController.alloc.init
|
27
|
+
@view_controller.view.backgroundColor = UIColor.grayColor
|
28
|
+
@window.rootViewController = @view_controller
|
29
|
+
@window.makeKeyAndVisible
|
30
|
+
|
31
|
+
#must be after @window.makeKeyAndVisible
|
32
|
+
Debugmotion.start
|
33
|
+
|
34
|
+
true
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
````
|
39
|
+
|
40
|
+
## In your code
|
41
|
+
````ruby
|
42
|
+
#for example to track informations about your connexion
|
43
|
+
Debugmotion.log("Connexion status : #{connexion_status}")
|
44
|
+
````
|
data/Rakefile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
$:.unshift("/Library/RubyMotion/lib")
|
2
|
+
require 'motion/project'
|
3
|
+
require 'bubble-wrap/core'
|
4
|
+
require 'bubble-wrap/reactor'
|
5
|
+
# require "bundler/gem_tasks"
|
6
|
+
# require "bundler/setup"
|
7
|
+
|
8
|
+
$:.unshift("./lib/")
|
9
|
+
require './lib/debugmotion'
|
10
|
+
|
11
|
+
Motion::Project::App.setup do |app|
|
12
|
+
app.name = 'Debugmotion'
|
13
|
+
end
|
data/app/app_delegate.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
class AppDelegate
|
2
|
+
|
3
|
+
def application(application, didFinishLaunchingWithOptions:launchOptions)
|
4
|
+
@window = UIWindow.alloc.initWithFrame(UIScreen.mainScreen.bounds)
|
5
|
+
@view_controller = TestViewController.alloc.init
|
6
|
+
@view_controller.view.backgroundColor = UIColor.grayColor
|
7
|
+
@window.rootViewController = @view_controller
|
8
|
+
@window.makeKeyAndVisible
|
9
|
+
|
10
|
+
Debugmotion.start
|
11
|
+
|
12
|
+
true
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
class TestViewController < UIViewController
|
2
|
+
|
3
|
+
def viewDidLoad
|
4
|
+
super
|
5
|
+
Debugmotion.log('TestViewController -> viewDidLoad')
|
6
|
+
Debugmotion.log("View height : #{self.view.size.height}")
|
7
|
+
Debugmotion.log("View width : #{self.view.size.width}")
|
8
|
+
end
|
9
|
+
|
10
|
+
def viewWillAppear(animated)
|
11
|
+
Debugmotion.log('TestViewController -> viewWillAppear')
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
module Debugmotion
|
2
|
+
|
3
|
+
class Console < UIView
|
4
|
+
|
5
|
+
def initWithFrame(frame)
|
6
|
+
super
|
7
|
+
move_me
|
8
|
+
@text_view = text_view
|
9
|
+
self
|
10
|
+
end
|
11
|
+
|
12
|
+
def append_text(text)
|
13
|
+
@text_view.text = "#{@text_view.text} \n #{text}"
|
14
|
+
@text_view.scrollRangeToVisible(NSMakeRange(@text_view.text.length - 1, 1))
|
15
|
+
end
|
16
|
+
|
17
|
+
def touchesMoved(touches, withEvent:event)
|
18
|
+
touch = touches.anyObject
|
19
|
+
previous_location = touch.previousLocationInView(self.superview )
|
20
|
+
current_location = touch.locationInView(self.superview )
|
21
|
+
center = self.center
|
22
|
+
center.x += current_location.x - previous_location.x
|
23
|
+
center.y += current_location.y - previous_location.y
|
24
|
+
self.center = center
|
25
|
+
end
|
26
|
+
|
27
|
+
private
|
28
|
+
|
29
|
+
def text_view
|
30
|
+
UITextView.alloc.initWithFrame([[5.0, 20.0],
|
31
|
+
[self.frame.size.width - 10.0, self.frame.size.height - 25.0]]).tap do |text_view|
|
32
|
+
text_view.backgroundColor = UIColor.blackColor
|
33
|
+
text_view.editable = false
|
34
|
+
text_view.font = UIFont.boldSystemFontOfSize(12.0)
|
35
|
+
text_view.textColor = UIColor.greenColor
|
36
|
+
self.addSubview(text_view)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def move_me
|
41
|
+
UILabel.alloc.initWithFrame([[self.frame.size.width - 60, 3],[60, 15]]).tap do |label|
|
42
|
+
label.text = "Move me"
|
43
|
+
label.backgroundColor = UIColor.clearColor
|
44
|
+
label.font = UIFont.boldSystemFontOfSize(12.0)
|
45
|
+
self.addSubview(label)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Debugmotion
|
2
|
+
|
3
|
+
class Logger
|
4
|
+
|
5
|
+
@@instance = nil
|
6
|
+
|
7
|
+
def self.instance
|
8
|
+
return @@instance unless @@instance.nil?
|
9
|
+
@@instance = Logger.alloc.init
|
10
|
+
end
|
11
|
+
|
12
|
+
def start(frame)
|
13
|
+
@debug_view = Console.alloc.initWithFrame(frame)
|
14
|
+
@debug_view.backgroundColor = UIColor.darkGrayColor
|
15
|
+
UIApplication.sharedApplication.keyWindow.addSubview(@debug_view)
|
16
|
+
|
17
|
+
App.notification_center.observe "DebugMotionEventLogged" do |notification|
|
18
|
+
time = Time.new
|
19
|
+
@debug_view.append_text("[#{time.hour}:#{time.min}:#{time.sec}] #{notification.object}")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def log(value)
|
24
|
+
# hack for when you try to use debug motion in your root view controller
|
25
|
+
# and your application:didFinishLaunchingWithOptions: has not yet ended
|
26
|
+
unless UIApplication.sharedApplication.keyWindow.nil?
|
27
|
+
App.notification_center.post("DebugMotionEventLogged", value)
|
28
|
+
else
|
29
|
+
App.run_after(0.1) { log(value) }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
data/lib/debugmotion.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
describe "Debugmotion/Debugmotion" do
|
2
|
+
tests TestViewController
|
3
|
+
|
4
|
+
it "should open the debugmotion console" do
|
5
|
+
#Fixme : It's seems like Debugmotion::Console view is removed
|
6
|
+
# when the test starts, wen can see it during half a second and it
|
7
|
+
# disappears, if you know a way to test this, please tell me
|
8
|
+
p "FIXME"
|
9
|
+
true.should == true
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
metadata
ADDED
@@ -0,0 +1,92 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: debugmotion
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Joffrey Jafeux
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-09-05 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: bubble-wrap
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.1.3
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.1.3
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rake
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
description: Log live debug informations on your device for rubymotion
|
47
|
+
email:
|
48
|
+
- j.jaffeux@gmail.com
|
49
|
+
executables: []
|
50
|
+
extensions: []
|
51
|
+
extra_rdoc_files: []
|
52
|
+
files:
|
53
|
+
- .gitignore
|
54
|
+
- Debugmotion.gemspec
|
55
|
+
- Gemfile
|
56
|
+
- LICENSE
|
57
|
+
- README.md
|
58
|
+
- Rakefile
|
59
|
+
- app/app_delegate.rb
|
60
|
+
- app/test_view_controller.rb
|
61
|
+
- lib/debugmotion.rb
|
62
|
+
- lib/debugmotion/console.rb
|
63
|
+
- lib/debugmotion/debugmotion.rb
|
64
|
+
- lib/debugmotion/logger.rb
|
65
|
+
- lib/debugmotion/version.rb
|
66
|
+
- spec/debugmotion_spec.rb
|
67
|
+
homepage: https://github.com/jjaffeux/Debugmotion
|
68
|
+
licenses: []
|
69
|
+
post_install_message:
|
70
|
+
rdoc_options: []
|
71
|
+
require_paths:
|
72
|
+
- lib
|
73
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
81
|
+
requirements:
|
82
|
+
- - ! '>='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
requirements: []
|
86
|
+
rubyforge_project:
|
87
|
+
rubygems_version: 1.8.24
|
88
|
+
signing_key:
|
89
|
+
specification_version: 3
|
90
|
+
summary: Log live debug informations on your device for rubymotion
|
91
|
+
test_files:
|
92
|
+
- spec/debugmotion_spec.rb
|