Module: Sequel::Database::SQLComments
- Defined in:
- lib/sequel/extensions/sql_comments.rb
Defined Under Namespace
Modules: DatasetSQLComments
Instance Attribute Summary collapse
- 
  
    
      #comment_hashes  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    A map of threads to comment hashes, used for correctly setting comments for all queries inside #with_comments blocks. 
Class Method Summary collapse
Instance Method Summary collapse
- 
  
    
      #with_comments(comment_hash)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Store the comment hash and use it to create comments inside the block. 
Instance Attribute Details
#comment_hashes ⇒ Object (readonly)
A map of threads to comment hashes, used for correctly setting comments for all queries inside #with_comments blocks.
| 150 151 152 | # File 'lib/sequel/extensions/sql_comments.rb', line 150 def comment_hashes @comment_hashes end | 
Class Method Details
.extended(db) ⇒ Object
| 143 144 145 146 | # File 'lib/sequel/extensions/sql_comments.rb', line 143 def self.extended(db) db.instance_variable_set(:@comment_hashes, {}) db.extend_datasets DatasetSQLComments end | 
Instance Method Details
#with_comments(comment_hash) ⇒ Object
Store the comment hash and use it to create comments inside the block
| 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | # File 'lib/sequel/extensions/sql_comments.rb', line 153 def with_comments(comment_hash) hashes = @comment_hashes t = Sequel.current new_hash = if hash = Sequel.synchronize{hashes[t]} hash.merge(comment_hash) else comment_hash.dup end yield Sequel.synchronize{hashes[t] = new_hash} ensure if hash Sequel.synchronize{hashes[t] = hash} else t && Sequel.synchronize{hashes.delete(t)} end end |