hyperion-mysql 0.0.1.alpha5 → 0.1.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.
@@ -8,7 +8,7 @@ module Hyperion
8
8
  module Mysql
9
9
 
10
10
  def self.new(opts={})
11
- Sql::Datastore.new(DbStrategy.new, QueryExecutorStrategy.new, QueryBuilderStrategy.new)
11
+ Sql::Datastore.new(opts[:connection_url], DbStrategy.new, QueryExecutorStrategy.new, QueryBuilderStrategy.new)
12
12
  end
13
13
 
14
14
  end
@@ -1,11 +1,11 @@
1
- require 'hyperion/api'
1
+ require 'hyperion'
2
2
 
3
3
  module Hyperion
4
4
  module Mysql
5
5
  class DbStrategy
6
6
 
7
7
  def process_result(given_record, result)
8
- if API.new?(given_record)
8
+ if Hyperion.new?(given_record)
9
9
  given_record.merge('id' => result.insert_id)
10
10
  else
11
11
  given_record
@@ -5,6 +5,8 @@ require 'hyperion/mysql'
5
5
 
6
6
  describe Hyperion::Mysql do
7
7
 
8
+ CONNECTION_URL = 'mysql://localhost/hyperion_ruby'
9
+
8
10
  def execute(query)
9
11
  Hyperion::Sql.connection.create_command(query).execute_non_query
10
12
  end
@@ -25,54 +27,64 @@ describe Hyperion::Mysql do
25
27
  execute "DROP TABLE IF EXISTS #{table_name};"
26
28
  end
27
29
 
30
+ TABLES = ['testing', 'other_testing']
31
+
28
32
  around :each do |example|
29
- Hyperion::Sql.with_connection_and_ds('mysql://localhost/hyperion_ruby', :mysql) do
33
+ Hyperion.with_datastore(:mysql, :connection_url => CONNECTION_URL) do
30
34
  example.run
31
35
  end
32
36
  end
33
37
 
34
- context 'Datastore' do
38
+ before :each do |example|
39
+ Hyperion::Sql.with_connection(CONNECTION_URL) do
40
+ TABLES.each { |table| create_table(table) }
41
+ end
42
+ end
43
+
44
+ after :each do |example|
45
+ Hyperion::Sql.with_connection(CONNECTION_URL) do
46
+ TABLES.each { |table| drop_table(table) }
47
+ end
48
+ end
49
+
50
+ include_examples 'Datastore'
51
+
52
+ context 'Transactions' do
35
53
  around :each do |example|
36
- tables = ['testing', 'other_testing']
37
- begin
38
- tables.each { |table| create_table(table) }
54
+ Hyperion::Sql.with_connection(CONNECTION_URL) do
39
55
  example.run
40
- ensure
41
- tables.each { |table| drop_table(table) }
42
56
  end
43
57
  end
44
58
 
45
- include_examples 'Datastore'
59
+ include_examples 'Sql Transactions'
60
+ end
46
61
 
47
- context 'Sql Injection' do
48
- it 'escapes strings to be inserted' do
49
- evil_name = "my evil name' --"
50
- record = Hyperion::API.save(:kind => 'testing', :name => evil_name)
51
- found_record = Hyperion::API.find_by_key(record[:key])
52
- found_record[:name].should == evil_name
53
- end
62
+ context 'Sql Injection' do
63
+ it 'escapes strings to be inserted' do
64
+ evil_name = "my evil name' --"
65
+ record = Hyperion.save(:kind => 'testing', :name => evil_name)
66
+ found_record = Hyperion.find_by_key(record[:key])
67
+ found_record[:name].should == evil_name
68
+ end
54
69
 
55
- it 'escapes table names' do
56
- error_message = ""
57
- begin
58
- Hyperion::API.save(:kind => 'my evil name` --', :name => 'value')
59
- rescue Exception => e
60
- error_message = e.message
61
- end
62
- error_message.should include("Table 'hyperion_ruby.my_evil_name`___' doesn't exist")
70
+ it 'escapes table names' do
71
+ error_message = ""
72
+ begin
73
+ Hyperion.save(:kind => 'my evil name` --', :name => 'value')
74
+ rescue Exception => e
75
+ error_message = e.message
63
76
  end
77
+ error_message.should include("Table 'hyperion_ruby.my_evil_name`___' doesn't exist")
78
+ end
64
79
 
65
- it 'escapes column names' do
66
- error_message = ""
67
- begin
68
- Hyperion::API.save(:kind => 'testing', 'my evil name` --' => 'value')
69
- rescue Exception => e
70
- error_message = e.message
71
- end
72
- error_message.should include("Unknown column 'my_evil_name`___' in 'field list'")
80
+ it 'escapes column names' do
81
+ error_message = ""
82
+ begin
83
+ Hyperion.save(:kind => 'testing', 'my evil name` --' => 'value')
84
+ rescue Exception => e
85
+ error_message = e.message
73
86
  end
87
+ error_message.should include("Unknown column 'my_evil_name`___' in 'field list'")
74
88
  end
75
89
  end
76
-
77
- it_behaves_like 'Sql Transactions'
78
90
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyperion-mysql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.alpha5
5
- prerelease: 6
4
+ version: 0.1.0
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
- - 8th Light, Inc.
8
+ - Myles Megyesi
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-18 00:00:00.000000000 Z
12
+ date: 2012-10-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - '='
36
36
  - !ruby/object:Gem::Version
37
- version: 0.0.1.alpha5
37
+ version: 0.1.0
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,7 @@ dependencies:
42
42
  requirements:
43
43
  - - '='
44
44
  - !ruby/object:Gem::Version
45
- version: 0.0.1.alpha5
45
+ version: 0.1.0
46
46
  - !ruby/object:Gem::Dependency
47
47
  name: do_mysql
48
48
  requirement: !ruby/object:Gem::Requirement
@@ -62,7 +62,6 @@ dependencies:
62
62
  description: MySQL Datastore for Hyperion
63
63
  email:
64
64
  - myles@8thlight.com
65
- - skim@8thlight.com
66
65
  executables: []
67
66
  extensions: []
68
67
  extra_rdoc_files: []
@@ -88,9 +87,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
88
87
  required_rubygems_version: !ruby/object:Gem::Requirement
89
88
  none: false
90
89
  requirements:
91
- - - ! '>'
90
+ - - ! '>='
92
91
  - !ruby/object:Gem::Version
93
- version: 1.3.1
92
+ version: '0'
94
93
  requirements: []
95
94
  rubyforge_project:
96
95
  rubygems_version: 1.8.24