flounder 0.11.5 → 0.11.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3a13735f8160f9b23fb2c87b473998bfc4e146e2
4
- data.tar.gz: a7e29a24118ad278bcdaecf42c0b47702924ddb6
3
+ metadata.gz: 76dff20170b73d435d8031c55fbfdc351a50de2e
4
+ data.tar.gz: fd03c13174d8f59b0d1920ab40756fc87e06be99
5
5
  SHA512:
6
- metadata.gz: 39706dd19768ace33133e5f30520edcd87c455fd031fa5c012f76b44a7224f546e3b4f077413a1e12fe31410355c906481e67be1d97d42cd30ff139e89653984
7
- data.tar.gz: 9db75632b66282a30b7106a58e1a8b7759b5e70fd86892d0031ac8759a41434bcfb40e51ebdbbe8240c5b86ce2185d2bc83be0ed30ca56a849e43217fbebee2d
6
+ metadata.gz: d48b7d9ef4003ba6d3c1a661852e21675108c918e55f540b588f087a56f04d4563bff05d2c6e1db428c377faa097993cb2ec4734e0994f39c28427ce7fc9c1c8
7
+ data.tar.gz: de7d5743d7ec8253d240df7b67505d52f7aa985562ce65f5f35ad30c78a4de447b44292602750924ba306765c48565daaa3680065fe67ac2af542d9e1987c125
data/Gemfile.lock CHANGED
@@ -1,12 +1,12 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- flounder (0.11.1)
4
+ flounder (0.11.5)
5
5
  arel (~> 5, > 5.0.1)
6
6
  connection_pool (~> 2)
7
7
  hashie (~> 3, >= 3.2)
8
8
  pg (~> 0.17)
9
- pg-hstore (~> 1.2.0)
9
+ pg-hstore (~> 1.2, >= 1.2.0)
10
10
 
11
11
  GEM
12
12
  remote: https://rubygems.org/
Binary file
data/flounder.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "flounder"
5
- s.version = '0.11.5'
5
+ s.version = '0.11.6'
6
6
  s.summary = "Flounder is a way to write SQL simply in Ruby. It deals with everything BUT object relational mapping. "
7
7
  s.email = "kaspar.schiess@technologyastronauts.ch"
8
8
  s.homepage = "https://bitbucket.org/technologyastronauts/oss_flounder"
@@ -29,6 +29,11 @@ module Flounder::Query
29
29
  # so that they can be traced back to the entity that contributed them.
30
30
  attr_reader :default_projection
31
31
 
32
+ # Set to true once #project is used. From that point on, no fields can
33
+ # be added through default projections.
34
+ #
35
+ attr_reader :has_projection
36
+
32
37
  # Each projection has a unique prefix mapping to the entity that uses this
33
38
  # prefix during this query.
34
39
  attr_reader :projection_prefixes
@@ -48,6 +53,10 @@ module Flounder::Query
48
53
  end
49
54
 
50
55
  def add_fields_to_default entity
56
+ # Don't add fields through the default method if #project was already
57
+ # used.
58
+ return if has_projection
59
+
51
60
  prefix = entity.name.to_s
52
61
  table = entity.table
53
62
 
@@ -92,7 +101,7 @@ module Flounder::Query
92
101
  #
93
102
  def project *field_list
94
103
  @has_projection = true
95
- @default_projection = {}
104
+ @default_projection = []
96
105
 
97
106
  manager.project *map_to_arel(field_list)
98
107
  self
data/qed/projection.md CHANGED
@@ -17,4 +17,13 @@ When projecting, all result data will be toplevel and only the projected data is
17
17
 
18
18
  result.id.assert == nil # Not loaded.
19
19
  result.name.assert == 'John Snow'
20
- ~~~
20
+ ~~~
21
+
22
+ Otherwise a projected query can be treated like an ordinary query, including appending stuff by joining it in.
23
+
24
+ ~~~ruby
25
+ posts.
26
+ project(users[:name]).
27
+ join(users).on(:user_id => :id).
28
+ first
29
+ ~~~
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flounder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.5
4
+ version: 0.11.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kaspar Schiess
@@ -9,94 +9,94 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-09-03 00:00:00.000000000 Z
12
+ date: 2014-09-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: arel
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ~>
19
19
  - !ruby/object:Gem::Version
20
20
  version: '5'
21
- - - ">"
21
+ - - '>'
22
22
  - !ruby/object:Gem::Version
23
23
  version: 5.0.1
24
24
  type: :runtime
25
25
  prerelease: false
26
26
  version_requirements: !ruby/object:Gem::Requirement
27
27
  requirements:
28
- - - "~>"
28
+ - - ~>
29
29
  - !ruby/object:Gem::Version
30
30
  version: '5'
31
- - - ">"
31
+ - - '>'
32
32
  - !ruby/object:Gem::Version
33
33
  version: 5.0.1
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: pg
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ~>
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.17'
41
41
  type: :runtime
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0.17'
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: hashie
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
54
  version: '3'
55
- - - ">="
55
+ - - '>='
56
56
  - !ruby/object:Gem::Version
57
57
  version: '3.2'
58
58
  type: :runtime
59
59
  prerelease: false
60
60
  version_requirements: !ruby/object:Gem::Requirement
61
61
  requirements:
62
- - - "~>"
62
+ - - ~>
63
63
  - !ruby/object:Gem::Version
64
64
  version: '3'
65
- - - ">="
65
+ - - '>='
66
66
  - !ruby/object:Gem::Version
67
67
  version: '3.2'
68
68
  - !ruby/object:Gem::Dependency
69
69
  name: connection_pool
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - "~>"
72
+ - - ~>
73
73
  - !ruby/object:Gem::Version
74
74
  version: '2'
75
75
  type: :runtime
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - "~>"
79
+ - - ~>
80
80
  - !ruby/object:Gem::Version
81
81
  version: '2'
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: pg-hstore
84
84
  requirement: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - "~>"
86
+ - - ~>
87
87
  - !ruby/object:Gem::Version
88
88
  version: '1.2'
89
- - - ">="
89
+ - - '>='
90
90
  - !ruby/object:Gem::Version
91
91
  version: 1.2.0
92
92
  type: :runtime
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - "~>"
96
+ - - ~>
97
97
  - !ruby/object:Gem::Version
98
98
  version: '1.2'
99
- - - ">="
99
+ - - '>='
100
100
  - !ruby/object:Gem::Version
101
101
  version: 1.2.0
102
102
  description: " Flounder is the missing piece between the database and your Ruby
@@ -107,14 +107,12 @@ executables: []
107
107
  extensions: []
108
108
  extra_rdoc_files: []
109
109
  files:
110
+ - flounder-0.11.5.gem
111
+ - flounder.gemspec
110
112
  - Gemfile
111
113
  - Gemfile.lock
112
114
  - HACKING
113
115
  - HISTORY
114
- - LICENSE
115
- - README
116
- - flounder.gemspec
117
- - lib/flounder.rb
118
116
  - lib/flounder/connection.rb
119
117
  - lib/flounder/connection_pool.rb
120
118
  - lib/flounder/domain.rb
@@ -132,6 +130,8 @@ files:
132
130
  - lib/flounder/query/select.rb
133
131
  - lib/flounder/query/update.rb
134
132
  - lib/flounder/symbol_extensions.rb
133
+ - lib/flounder.rb
134
+ - LICENSE
135
135
  - qed/applique/ae.rb
136
136
  - qed/applique/flounder.rb
137
137
  - qed/applique/setup_domain.rb
@@ -149,6 +149,7 @@ files:
149
149
  - qed/results.md
150
150
  - qed/selects.md
151
151
  - qed/updates.md
152
+ - README
152
153
  homepage: https://bitbucket.org/technologyastronauts/oss_flounder
153
154
  licenses:
154
155
  - MIT
@@ -159,17 +160,17 @@ require_paths:
159
160
  - lib
160
161
  required_ruby_version: !ruby/object:Gem::Requirement
161
162
  requirements:
162
- - - ">="
163
+ - - '>='
163
164
  - !ruby/object:Gem::Version
164
165
  version: '0'
165
166
  required_rubygems_version: !ruby/object:Gem::Requirement
166
167
  requirements:
167
- - - ">="
168
+ - - '>='
168
169
  - !ruby/object:Gem::Version
169
170
  version: '0'
170
171
  requirements: []
171
172
  rubyforge_project:
172
- rubygems_version: 2.2.2
173
+ rubygems_version: 2.0.14
173
174
  signing_key:
174
175
  specification_version: 4
175
176
  summary: Flounder is a way to write SQL simply in Ruby. It deals with everything BUT