activerecord-raw-data 0.2.0 → 0.3.0

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,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6e6a04299fc4000c230a640a07ea0ced7af74422
4
+ data.tar.gz: ce9f59a27f67d55662de920f5f6004f98b81b446
5
+ SHA512:
6
+ metadata.gz: 4570d705996b3507aa12185ad3a5c864527e0e7a13c67750ff7efe413b5bc3348f6e728f82cb42d09f950243182eb163b42ca2cbe00c617919796dd96a6f18fd
7
+ data.tar.gz: f6ac74b94f05bda6f4fbf78b72dcd11ebc083b4a4fb511abe783f31054c990f5396194ffa04494cd10f6c16d717133e28ddc6d1fcea7182186f8e78cb06df569
@@ -1,28 +1,32 @@
1
-
2
1
  require 'active_record'
3
2
  require 'activerecord-raw-data/version'
3
+ require 'activerecord-raw-data/compatibility_adapter'
4
4
 
5
5
  module ActiveRecord
6
6
  module RawData
7
+ mattr_accessor :adapter
8
+
7
9
  def self.included(klass)
8
10
  klass.extend(ClassMethods)
9
11
  end
10
12
 
13
+ self.adapter = ActiveRecord::RawData::CompatibilityAdapter.new(ActiveRecord::VERSION::MAJOR)
14
+
11
15
  module ClassMethods
12
16
  def raw_data
13
- connection.select_all scoped.to_sql
17
+ RawData.adapter.result_to_hash(connection.select_all RawData.adapter.blank_scope(self).to_sql)
14
18
  end
15
19
 
16
20
  def raw_rows
17
- connection.select_rows scoped.to_sql
21
+ connection.select_rows RawData.adapter.blank_scope(self).to_sql
18
22
  end
19
23
 
20
24
  def raw_values
21
- connection.select_values scoped.to_sql
25
+ connection.select_values RawData.adapter.blank_scope(self).to_sql
22
26
  end
23
27
 
24
28
  def raw_data_by_sql(sql)
25
- connection.select_all sanitize_sql(sql)
29
+ RawData.adapter.result_to_hash(connection.select_all sanitize_sql(sql))
26
30
  end
27
31
  end
28
32
  end
@@ -0,0 +1,24 @@
1
+
2
+ module ActiveRecord
3
+ module RawData
4
+ class CompatibilityAdapter
5
+ def initialize(version)
6
+ @version = version
7
+ end
8
+
9
+ def ar4?
10
+ @version == 4
11
+ end
12
+
13
+ def blank_scope(klass)
14
+ ar4? ? klass.all : klass.scoped
15
+ end
16
+
17
+ def result_to_hash(result)
18
+ return result unless ar4?
19
+
20
+ result.to_hash
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,5 +1,5 @@
1
1
  module ActiveRecord
2
2
  module RawData
3
- VERSION = "0.2.0"
3
+ VERSION = "0.3.0"
4
4
  end
5
5
  end
@@ -14,9 +14,9 @@ describe ActiveRecord::RawData do
14
14
 
15
15
  it "should result raw data" do
16
16
  User.raw_data.should eq [
17
- {"id"=>1, "name"=>"alice", "mail"=>"alice@example.com"},
18
- {"id"=>2, "name"=>"bob", "mail"=>"bob@example.com"},
19
- {"id"=>3, "name"=>"carol", "mail"=>"carol@example.com"}
17
+ {"id"=> alice.id, "name"=>"alice", "mail"=>"alice@example.com"},
18
+ {"id"=> bob.id, "name"=>"bob", "mail"=>"bob@example.com"},
19
+ {"id"=> carol.id, "name"=>"carol", "mail"=>"carol@example.com"}
20
20
  ]
21
21
  end
22
22
 
@@ -30,9 +30,9 @@ describe ActiveRecord::RawData do
30
30
 
31
31
  it "should result raw rows" do
32
32
  User.raw_rows.should eq [
33
- [1, "alice", "alice@example.com"],
34
- [2, "bob", "bob@example.com"],
35
- [3, "carol", "carol@example.com"]
33
+ [alice.id, "alice", "alice@example.com"],
34
+ [bob.id, "bob", "bob@example.com"],
35
+ [carol.id, "carol", "carol@example.com"]
36
36
  ]
37
37
  end
38
38
 
@@ -44,9 +44,8 @@ describe ActiveRecord::RawData do
44
44
  ]
45
45
  end
46
46
 
47
-
48
47
  it "should result raw values" do
49
- User.raw_values.should eq [1, 2, 3]
48
+ User.raw_values.should eq [alice.id, bob.id, carol.id]
50
49
  end
51
50
 
52
51
  it "should result raw values with select" do
metadata CHANGED
@@ -1,82 +1,99 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activerecord-raw-data
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
5
- prerelease:
4
+ version: 0.3.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Yuichi Tateno
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2012-03-28 00:00:00.000000000 Z
11
+ date: 2015-10-08 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activerecord
16
- requirement: &2191751760 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ! '>='
17
+ - - ">="
20
18
  - !ruby/object:Gem::Version
21
19
  version: 3.0.0
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *2191751760
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 3.0.0
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: rake
27
- requirement: &2191751240 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
29
30
  requirements:
30
- - - ! '>='
31
+ - - ">="
31
32
  - !ruby/object:Gem::Version
32
33
  version: 0.8.0
33
34
  type: :runtime
34
35
  prerelease: false
35
- version_requirements: *2191751240
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: 0.8.0
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: rspec
38
- requirement: &2191750760 !ruby/object:Gem::Requirement
39
- none: false
43
+ requirement: !ruby/object:Gem::Requirement
40
44
  requirements:
41
- - - ~>
45
+ - - "~>"
42
46
  - !ruby/object:Gem::Version
43
47
  version: 2.8.0
44
48
  type: :development
45
49
  prerelease: false
46
- version_requirements: *2191750760
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 2.8.0
47
55
  - !ruby/object:Gem::Dependency
48
56
  name: pry
49
- requirement: &2191750280 !ruby/object:Gem::Requirement
50
- none: false
57
+ requirement: !ruby/object:Gem::Requirement
51
58
  requirements:
52
- - - ! '>='
59
+ - - ">="
53
60
  - !ruby/object:Gem::Version
54
61
  version: '0'
55
62
  type: :development
56
63
  prerelease: false
57
- version_requirements: *2191750280
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: sqlite3
60
- requirement: &2191749800 !ruby/object:Gem::Requirement
61
- none: false
71
+ requirement: !ruby/object:Gem::Requirement
62
72
  requirements:
63
- - - ! '>='
73
+ - - ">="
64
74
  - !ruby/object:Gem::Version
65
75
  version: '0'
66
76
  type: :development
67
77
  prerelease: false
68
- version_requirements: *2191749800
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: database_cleaner
71
- requirement: &2191749320 !ruby/object:Gem::Requirement
72
- none: false
85
+ requirement: !ruby/object:Gem::Requirement
73
86
  requirements:
74
- - - ! '>='
87
+ - - ">="
75
88
  - !ruby/object:Gem::Version
76
89
  version: '0'
77
90
  type: :development
78
91
  prerelease: false
79
- version_requirements: *2191749320
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
80
97
  description: Get raw data from ActiveRecord
81
98
  email:
82
99
  - hotchpotch@gmail.com
@@ -84,47 +101,41 @@ executables: []
84
101
  extensions: []
85
102
  extra_rdoc_files: []
86
103
  files:
87
- - .gitignore
88
- - .travis.yml
104
+ - ".gitignore"
105
+ - ".travis.yml"
89
106
  - Gemfile
90
107
  - LICENSE
91
108
  - README.md
92
109
  - Rakefile
93
110
  - activerecord-raw-data.gemspec
94
111
  - lib/activerecord-raw-data.rb
112
+ - lib/activerecord-raw-data/compatibility_adapter.rb
95
113
  - lib/activerecord-raw-data/version.rb
96
114
  - spec/activerecord-raw-data_spec.rb
97
115
  - spec/database.rb
98
116
  - spec/spec_helper.rb
99
117
  homepage: https://github.com/hotchpotch/activerecord-raw-data
100
118
  licenses: []
119
+ metadata: {}
101
120
  post_install_message:
102
121
  rdoc_options: []
103
122
  require_paths:
104
123
  - lib
105
124
  required_ruby_version: !ruby/object:Gem::Requirement
106
- none: false
107
125
  requirements:
108
- - - ! '>='
126
+ - - ">="
109
127
  - !ruby/object:Gem::Version
110
128
  version: '0'
111
- segments:
112
- - 0
113
- hash: -243093227698944520
114
129
  required_rubygems_version: !ruby/object:Gem::Requirement
115
- none: false
116
130
  requirements:
117
- - - ! '>='
131
+ - - ">="
118
132
  - !ruby/object:Gem::Version
119
133
  version: '0'
120
- segments:
121
- - 0
122
- hash: -243093227698944520
123
134
  requirements: []
124
135
  rubyforge_project:
125
- rubygems_version: 1.8.17
136
+ rubygems_version: 2.4.5
126
137
  signing_key:
127
- specification_version: 3
138
+ specification_version: 4
128
139
  summary: Get raw data from ActiveRecord
129
140
  test_files:
130
141
  - spec/activerecord-raw-data_spec.rb