dbt 1.1.2 → 1.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +51 -6
- data/lib/dbt.rb +13 -7
- data/lib/dbt/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5153399f4bfbef848e903d4d05746d072b134bfe
|
4
|
+
data.tar.gz: d257bbf98944963437dafc1f802db78e6aa01118
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ecac263c5e9f6ac0d94d5853f2345846a01f70064958fcd186cb1381db991144923bf10180e8bda7a51971769c239037d0098d15244622b42cad9d15478cfc4
|
7
|
+
data.tar.gz: 0a60c2d365128894d4dc72aa143fa270e0064d916b55ee08e8bc238c3a46a651e6a8e240b03e74a69e536ffee84616693423f3e771dd06aa218b7cacf087674f
|
data/README.md
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
DBT
|
2
|
-
|
2
|
+
---
|
3
3
|
|
4
4
|
DBT (Dependencies and deBugging Tool) is a tool that looks for `break`,
|
5
5
|
`require`, and `provides` commands (and does a *teensy* bit of code analyzing -
|
6
6
|
it will detect VERY basic class and module declarations) to make your RubyMotion
|
7
|
-
`
|
7
|
+
`debugger_cmds` file easy to create, and declaring your file dependencies stupid
|
8
|
+
simple.
|
8
9
|
|
9
10
|
**CAUTION**: It overwrites the `debugger_cmds` file!
|
10
11
|
|
11
12
|
To use, include this gem (`gem 'dbt'`), and add `DBT.analyze(app)` to your
|
12
|
-
`Rakefile`, after you have added your
|
13
|
+
`Rakefile`, after you have added your own files to `app.files`. It looks at
|
13
14
|
`app.files` and scans those files, so I mean it when I say "after you have added
|
14
|
-
your
|
15
|
+
your own files". In your source code you add DBT commands:
|
15
16
|
|
16
17
|
```ruby
|
17
18
|
# @provides Foo
|
@@ -30,7 +31,7 @@ end
|
|
30
31
|
```
|
31
32
|
|
32
33
|
When you run `rake`, these commands will be found and translated into directives
|
33
|
-
for `app.files_dependencies` and `debugger_cmds`.
|
34
|
+
for `app.files_dependencies` and `debugger_cmds`. Run `rake` or `rake debug=1`,
|
34
35
|
and off you go!
|
35
36
|
|
36
37
|
Your files will be grep'd for `^\w*(class|module)`, and these will be registered
|
@@ -43,7 +44,17 @@ class ClassName
|
|
43
44
|
end
|
44
45
|
|
45
46
|
# @provides module:ModuleName
|
46
|
-
|
47
|
+
module ModuleName
|
48
|
+
end
|
49
|
+
|
50
|
+
|
51
|
+
# @provides module:Foo
|
52
|
+
module Foo
|
53
|
+
# Sorry, no support for Foo::Bar... I do intend to add it, though!
|
54
|
+
#
|
55
|
+
# @provides class:Bar
|
56
|
+
class Bar
|
57
|
+
end
|
47
58
|
end
|
48
59
|
|
49
60
|
|
@@ -59,6 +70,40 @@ So right out of the box, you can add `# @requires class:Foo` if you're having
|
|
59
70
|
trouble with dependencies and want a quick fix without having to add
|
60
71
|
`# @provides` declarations all over the place.
|
61
72
|
|
73
|
+
Which begs the question, *when* would you need to declare an explicit
|
74
|
+
`# @provides`? Examples:
|
75
|
+
|
76
|
+
##### Splitting up a class across multiple files:
|
77
|
+
###### controller.rb
|
78
|
+
```ruby
|
79
|
+
# @provides Controller
|
80
|
+
class Controller < UIViewController
|
81
|
+
end
|
82
|
+
```
|
83
|
+
|
84
|
+
###### controller_table_view.rb
|
85
|
+
```ruby
|
86
|
+
# provides table view methods
|
87
|
+
#
|
88
|
+
# @requires Controller
|
89
|
+
class Controller
|
90
|
+
|
91
|
+
def numberOfSectionsInTableView(table_view)
|
92
|
+
1
|
93
|
+
end
|
94
|
+
|
95
|
+
end
|
96
|
+
```
|
97
|
+
|
98
|
+
##### Not-easily-greppable syntax
|
99
|
+
```ruby
|
100
|
+
# @provides module:Foo::Bar
|
101
|
+
module Foo ; module Bar
|
102
|
+
end end
|
103
|
+
```
|
104
|
+
|
105
|
+
# Breakpoints
|
106
|
+
|
62
107
|
Breakpoints are created using the syntax `#--> break`, with two or more dashes
|
63
108
|
before the `>`. There must not be any whitespace before or after the `#`.
|
64
109
|
|
data/lib/dbt.rb
CHANGED
@@ -3,9 +3,10 @@
|
|
3
3
|
module DBT
|
4
4
|
module_function
|
5
5
|
def analyze(app)
|
6
|
-
debugger_cmds_output =
|
6
|
+
debugger_cmds_output = ''
|
7
7
|
dependers = Hash.new { |hash,key| hash[key] = [] }
|
8
8
|
providers = {}
|
9
|
+
default_providers = {}
|
9
10
|
|
10
11
|
files = app.files.flatten.uniq
|
11
12
|
files.flatten.each do |filename|
|
@@ -15,8 +16,8 @@ module DBT
|
|
15
16
|
|
16
17
|
if line =~ /^#--+>/
|
17
18
|
command, dep = line.rstrip.sub(/^#--+> */, '').split(' ', 2)
|
18
|
-
elsif line =~
|
19
|
-
command, dep = line.rstrip.sub(
|
19
|
+
elsif line =~ /^[ \t]*#[ \t]*@(provides|requires)/
|
20
|
+
command, dep = line.rstrip.sub(/^[ \t]*#[ \t]*@/, '').split(' ', 2)
|
20
21
|
end
|
21
22
|
|
22
23
|
if command
|
@@ -35,17 +36,21 @@ module DBT
|
|
35
36
|
puts "\033[1m!NO COMPRENDO!\033[0m \"#{command} #{dep}\""
|
36
37
|
puts "\033[1;31m#{filename}:#{file.lineno}\033[0m"
|
37
38
|
end
|
38
|
-
elsif line =~
|
39
|
+
elsif line =~ /^[ \t]*class[ \t]+(\w+)/
|
39
40
|
dep = "class:#{$1}"
|
40
|
-
|
41
|
-
elsif line =~
|
41
|
+
default_providers[dep] = filename
|
42
|
+
elsif line =~ /^[ \t]*module[ \t]+(\w+)/
|
42
43
|
dep = "module:#{$1}"
|
43
|
-
|
44
|
+
default_providers[dep] = filename
|
44
45
|
end
|
45
46
|
end
|
46
47
|
end
|
47
48
|
end # files
|
48
49
|
|
50
|
+
default_providers.each do |dep, filename|
|
51
|
+
providers[key] ||= filename
|
52
|
+
end
|
53
|
+
|
49
54
|
dependers.each do |filename, dependencies|
|
50
55
|
if dep = dependencies.find { |dep| ! providers.include? dep }
|
51
56
|
puts "\033[1m!NO HAY!\033[0m \033[1;31m#{dep}\033[0m"
|
@@ -57,6 +62,7 @@ module DBT
|
|
57
62
|
|
58
63
|
unless debugger_cmds_output.empty?
|
59
64
|
File.open('debugger_cmds', 'w') do |file|
|
65
|
+
file.write "#------> Creado por el DBT <------#\n"
|
60
66
|
file.write debugger_cmds_output
|
61
67
|
end
|
62
68
|
end
|
data/lib/dbt/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dbt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Colin Thomas-Arnold <colinta@gmail.com>
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-04-
|
11
|
+
date: 2014-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |
|
14
14
|
== DBT (Dependencies and deBugging Tool)
|