sequel_marginalia 0.0.1
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 +18 -0
- data/Gemfile +3 -0
- data/README.md +27 -0
- data/TODO.md +2 -0
- data/lib/sequel/extensions/sequel_marginalia.rb +34 -0
- data/sequel_marginalia.gemspec +19 -0
- metadata +127 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
sequel_marginalia
|
2
|
+
=================
|
3
|
+
|
4
|
+
Kind of port of 37signals' [marginalia](https://github.com/37signals/marginalia)
|
5
|
+
for use with [Sequel](http://sequel.rubyforge.org/index.html).
|
6
|
+
(It's rather port of an idea than code.)
|
7
|
+
|
8
|
+
It just adds comments about caller code to your Sequel SQL queries.
|
9
|
+
|
10
|
+
When used, produces SQL like this:
|
11
|
+
|
12
|
+
/* lib/myapp/somefile.rb:40:in `some_method' */
|
13
|
+
SELECT COUNT(*) FROM `clients`
|
14
|
+
|
15
|
+
## Usage
|
16
|
+
|
17
|
+
Install it is a gem.
|
18
|
+
|
19
|
+
Than just do
|
20
|
+
|
21
|
+
my_database.extension :sequel_marginalia
|
22
|
+
|
23
|
+
and it's here.
|
24
|
+
|
25
|
+
Being dead simple, should presumably work with and DB adapter, though
|
26
|
+
tested only with mysql2.
|
27
|
+
|
data/TODO.md
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
module Sequel
|
2
|
+
module SequelMarginalia
|
3
|
+
def self.included(dataset_class)
|
4
|
+
dataset_class.class_eval do
|
5
|
+
if defined? :execute
|
6
|
+
alias_method :execute_without_sequel_marginalia, :execute
|
7
|
+
alias_method :execute, :execute_with_sequel_marginalia
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def execute_with_sequel_marginalia(sql, opts={}, &block)
|
13
|
+
execute_without_sequel_marginalia(annotate_sql(sql), opts, &block)
|
14
|
+
end
|
15
|
+
|
16
|
+
def annotate_sql(sql)
|
17
|
+
comment = caller.
|
18
|
+
reject{|ln| ln =~ /lib\/sequel/}.
|
19
|
+
first
|
20
|
+
|
21
|
+
if comment && !sql.include?(comment)
|
22
|
+
"/* #{comment} */\n#{sql}"
|
23
|
+
else
|
24
|
+
sql
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
Database.register_extension(:sequel_marginalia){|db|
|
30
|
+
db.dataset_class.module_eval do
|
31
|
+
include SequelMarginalia
|
32
|
+
end
|
33
|
+
}
|
34
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
Gem::Specification.new do |gem|
|
2
|
+
gem.authors = ["Victor Shepelev"]
|
3
|
+
gem.email = ["zverok.offline@gmail.com"]
|
4
|
+
gem.homepage = "https://github.com/zverok/sequel_marginalia"
|
5
|
+
|
6
|
+
gem.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
7
|
+
gem.files = `git ls-files`.split("\n")
|
8
|
+
gem.test_files = `git ls-files -- {spec,test}/*`.split("\n")
|
9
|
+
gem.name = "sequel_marginalia"
|
10
|
+
gem.require_paths = ["lib"]
|
11
|
+
gem.version = "0.0.1"
|
12
|
+
|
13
|
+
gem.add_development_dependency "rake"
|
14
|
+
gem.add_development_dependency "sequel"
|
15
|
+
gem.add_development_dependency "sqlite3"
|
16
|
+
gem.add_development_dependency "rspec"
|
17
|
+
|
18
|
+
gem.summary = description = %q{Attach comments to your Sequel queries.}
|
19
|
+
end
|
metadata
ADDED
@@ -0,0 +1,127 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: sequel_marginalia
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 29
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 0
|
9
|
+
- 1
|
10
|
+
version: 0.0.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Victor Shepelev
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2013-04-04 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: rake
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
type: :development
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: sequel
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
type: :development
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: sqlite3
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rspec
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
74
|
+
type: :development
|
75
|
+
version_requirements: *id004
|
76
|
+
description:
|
77
|
+
email:
|
78
|
+
- zverok.offline@gmail.com
|
79
|
+
executables: []
|
80
|
+
|
81
|
+
extensions: []
|
82
|
+
|
83
|
+
extra_rdoc_files: []
|
84
|
+
|
85
|
+
files:
|
86
|
+
- .gitignore
|
87
|
+
- Gemfile
|
88
|
+
- README.md
|
89
|
+
- TODO.md
|
90
|
+
- lib/sequel/extensions/sequel_marginalia.rb
|
91
|
+
- sequel_marginalia.gemspec
|
92
|
+
homepage: https://github.com/zverok/sequel_marginalia
|
93
|
+
licenses: []
|
94
|
+
|
95
|
+
post_install_message:
|
96
|
+
rdoc_options: []
|
97
|
+
|
98
|
+
require_paths:
|
99
|
+
- lib
|
100
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
101
|
+
none: false
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
hash: 3
|
106
|
+
segments:
|
107
|
+
- 0
|
108
|
+
version: "0"
|
109
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
|
+
none: false
|
111
|
+
requirements:
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
hash: 3
|
115
|
+
segments:
|
116
|
+
- 0
|
117
|
+
version: "0"
|
118
|
+
requirements: []
|
119
|
+
|
120
|
+
rubyforge_project:
|
121
|
+
rubygems_version: 1.8.17
|
122
|
+
signing_key:
|
123
|
+
specification_version: 3
|
124
|
+
summary: Attach comments to your Sequel queries.
|
125
|
+
test_files: []
|
126
|
+
|
127
|
+
has_rdoc:
|