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.
@@ -0,0 +1,18 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ coverage
6
+ InstalledFiles
7
+ lib/bundler/man
8
+ pkg
9
+ rdoc
10
+ spec/reports
11
+ test/tmp
12
+ test/version_tmp
13
+ tmp
14
+
15
+ # YARD artifacts
16
+ .yardoc
17
+ _yardoc
18
+ doc/
data/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec
@@ -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,2 @@
1
+ # specs
2
+ # some settings, like app name, base path (to subtract from caller path) and so on
@@ -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: