skiima 0.1.000 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +9 -0
  3. data/.travis.yml +11 -3
  4. data/Gemfile +12 -6
  5. data/Guardfile +13 -11
  6. data/LICENSE +20 -0
  7. data/Procfile.example +2 -0
  8. data/README.md +170 -23
  9. data/Rakefile +26 -22
  10. data/lib/skiima.rb +61 -240
  11. data/lib/skiima/config.rb +60 -0
  12. data/lib/skiima/config/struct.rb +87 -0
  13. data/lib/skiima/db/connector.rb +195 -0
  14. data/lib/skiima/db/connector/active_record.rb +11 -0
  15. data/lib/skiima/db/connector/active_record/base_connector.rb +34 -0
  16. data/lib/skiima/db/connector/active_record/mysql2_connector.rb +147 -0
  17. data/lib/skiima/db/connector/active_record/mysql_connector.rb +177 -0
  18. data/lib/skiima/db/connector/active_record/postgresql_connector.rb +39 -0
  19. data/lib/skiima/db/helpers/mysql.rb +230 -0
  20. data/lib/skiima/db/helpers/postgresql.rb +221 -0
  21. data/lib/skiima/db/resolver.rb +62 -0
  22. data/lib/skiima/dependency/reader.rb +55 -0
  23. data/lib/skiima/dependency/script.rb +63 -0
  24. data/lib/skiima/i18n.rb +24 -0
  25. data/lib/skiima/loader.rb +108 -0
  26. data/lib/skiima/locales/en.yml +2 -2
  27. data/lib/skiima/logger.rb +54 -0
  28. data/lib/skiima/railtie.rb +10 -0
  29. data/lib/skiima/railties/skiima.rake +31 -0
  30. data/lib/skiima/version.rb +2 -2
  31. data/skiima.gemspec +5 -5
  32. data/spec/config/{database.yml → database.yml.example} +16 -0
  33. data/spec/config/database.yml.travis +69 -0
  34. data/spec/db/skiima/{depends.yml → dependencies.yml} +7 -2
  35. data/spec/db/skiima/{empty_depends.yml → empty_dependencies.yml} +0 -0
  36. data/spec/db/skiima/init_test_db/database.skiima_test.mysql.current.sql +7 -0
  37. data/spec/db/skiima/init_test_db/database.skiima_test.postgresql.current.sql +7 -0
  38. data/spec/mysql2_spec.rb +61 -12
  39. data/spec/mysql_spec.rb +66 -27
  40. data/spec/postgresql_spec.rb +55 -34
  41. data/spec/shared_examples/config_shared_example.rb +40 -0
  42. data/spec/skiima/config/struct_spec.rb +78 -0
  43. data/spec/skiima/config_spec.rb +6 -0
  44. data/spec/skiima/db/connector/active_record/base_connector_spec.rb +0 -0
  45. data/spec/skiima/db/connector/active_record/mysql2_connector_spec.rb +3 -0
  46. data/spec/skiima/db/connector/active_record/mysql_connector_spec.rb +3 -0
  47. data/spec/skiima/db/connector/active_record/postgresql_connector_spec.rb +7 -0
  48. data/spec/skiima/db/connector_spec.rb +6 -0
  49. data/spec/skiima/db/resolver_spec.rb +54 -0
  50. data/spec/skiima/dependency/reader_spec.rb +52 -0
  51. data/spec/skiima/{dependency_spec.rb → dependency/script_spec.rb} +3 -41
  52. data/spec/skiima/i18n_spec.rb +29 -0
  53. data/spec/skiima/loader_spec.rb +102 -0
  54. data/spec/skiima/logger_spec.rb +0 -0
  55. data/spec/skiima_spec.rb +43 -64
  56. data/spec/spec_helper.rb +38 -4
  57. metadata +144 -100
  58. data/lib/skiima/db_adapters.rb +0 -187
  59. data/lib/skiima/db_adapters/base_mysql_adapter.rb +0 -308
  60. data/lib/skiima/db_adapters/mysql2_adapter.rb +0 -114
  61. data/lib/skiima/db_adapters/mysql_adapter.rb +0 -287
  62. data/lib/skiima/db_adapters/postgresql_adapter.rb +0 -509
  63. data/lib/skiima/dependency.rb +0 -84
  64. data/lib/skiima_helpers.rb +0 -49
  65. data/spec/skiima/db_adapters/mysql_adapter_spec.rb +0 -38
  66. data/spec/skiima/db_adapters/postgresql_adapter_spec.rb +0 -20
  67. data/spec/skiima/db_adapters_spec.rb +0 -31
File without changes
@@ -2,20 +2,54 @@
2
2
  require 'spec_helper'
3
3
 
4
4
  describe Skiima do
5
- describe "Module Configuration Options" do
6
- it "should set the proper module defaults" do
5
+ subject { Skiima }
6
+
7
+ it_behaves_like "a skiima config"
8
+
9
+ it { subject.must_respond_to :config }
10
+ it { subject.must_respond_to :defaults }
11
+
12
+ describe "#setup" do
13
+ it "must set the properties in the config block" do
7
14
  Skiima.root_path.must_equal SKIIMA_ROOT
8
15
  Skiima.config_path.must_equal 'config'
9
- Skiima.database_yaml.must_equal 'database.yml'
10
- Skiima.scripts_path.must_equal 'db/skiima'
11
- Skiima.depends_yaml.must_equal 'depends.yml'
16
+ Skiima.database_yml.must_equal 'database.yml'
17
+ end
18
+
19
+ it "must set the translation repository" do
20
+ Skiima.text_domain.must_equal 'skiima'
21
+ Skiima.locale.must_equal 'en'
12
22
  end
13
23
  end
14
24
 
15
- describe "#message" do
16
- it "should default to using the locale specified in config block" do
17
- Skiima.msg('messages', 'create', 'start').must_equal "Creating objects for @class"
25
+ describe "#defaults" do
26
+ it "must set the following as module defaults" do
27
+ Skiima.root_path.must_equal SKIIMA_ROOT
28
+ Skiima.config_path.must_equal 'config'
29
+ Skiima.database_yml.must_equal 'database.yml'
30
+ Skiima.scripts_path.must_equal 'db/skiima'
31
+ Skiima.dependencies_yml.must_equal 'dependencies.yml'
18
32
  end
33
+
34
+ it "must return a config struct with the defaults for the Skiima module"
35
+ end
36
+
37
+ describe "#new" do
38
+ it "delegates to Skiima::Loader"
39
+ end
40
+
41
+ describe "#up" do
42
+ it "parses the options correctly"
43
+ it "delegates to a new instance of Skiima::Loader"
44
+ end
45
+
46
+ describe "#down" do
47
+ it "parses the options correctly"
48
+ it "delegates to a new instance of Skiima::Loader"
49
+ end
50
+
51
+ describe "#exe_with_connection" do
52
+ it "deprecates?"
19
53
  end
20
54
 
21
55
  # describe "implementation" do
@@ -34,64 +68,9 @@ describe Skiima do
34
68
  # end
35
69
 
36
70
  # describe "Errors: " do
37
- # it "should return a group not found error when a class/string can't be found in depends.yml" do
38
-
39
- # end
40
- # end
41
- # end
42
- end
43
-
44
- describe Skiima::Loader do
45
- subject { Skiima::Loader.new(:test) }
46
-
47
- describe "#config" do
48
- before(:each) { Skiima::Loader.any_instance.expects(:make_connection).returns(true) }
49
- let(:config_path) { 'config' }
50
- let(:db_yaml) { 'database.yml' }
51
-
52
- it "inherits module defaults" do
53
- subject.root_path.must_equal SKIIMA_ROOT
54
- subject.config_path.must_equal config_path
55
- subject.database_yaml.must_equal db_yaml
56
- end
57
-
58
- it "overrides module defaults with options hash" do
59
- ski_too = Skiima::Loader.new(:test, :logging_out => 'STDERR')
60
- ski_too.logging_out.must_equal 'STDERR'
61
- end
62
- end
63
-
64
- describe "Logger: " do
65
- before(:each) { Skiima::Loader.any_instance.expects(:make_connection).returns(true) }
66
-
67
- it "creates a logger with the correct options" do
68
- subject.logger.class.must_equal ::Logger
69
- end
70
- end
71
-
72
- # describe "Implementation: " do
73
- # let(:groups) { groups = %w(friend team_member) }
74
- # let(:scripts) do
75
- # scripts = %w(view_friends rule_view_friends_delete rule_view_friends_insert).map {|s| Skiima::Dependency::Script.new('friend', s)}
76
- # end
77
-
78
- # it "should take a list of strings and run their SQL up scripts for them" do
79
- # subject.expects(:execute_dependency_reader).with(groups).returns(scripts)
80
- # subject.expects(:execute_loader).with(:up, scripts).returns('Great Success!!')
81
- # subject.up(*groups)
82
- # end
71
+ # it "should return a group not found error when a class/string can't be found in dependencies.yml" do
83
72
 
84
- # it "should take a list of strings and run their SQL down scripts for them" do
85
- # subject.expects(:execute_dependency_reader).with(groups).returns(scripts)
86
- # subject.expects(:execute_loader).with(:down, scripts).returns('Great Success!!')
87
- # subject.down('friend', 'team_member')
88
- # end
89
-
90
- # describe "Errors: " do
91
- # it "should return a group not found error when a class/string can't be found in depends.yml" do
92
- # proc { subject.up('friendz', 'team_memberz') }.must_raise(Skiima::SqlGroupNotFound)
93
73
  # end
94
74
  # end
95
75
  # end
96
76
  end
97
-
@@ -10,6 +10,20 @@ require "minitest/pride"
10
10
  require "mocha"
11
11
  require "pry"
12
12
 
13
+ # To Test:
14
+ # TODO: finish skiima_spec.rb
15
+ # TODO: finish loader_spec.rb
16
+ # TODO: finish struct_spec.rb
17
+ # TODO: finish config_spec.rb
18
+ # TODO: finish resolver_spec.rb
19
+
20
+ # Integration:
21
+ # TODO: update mysql_spec.rb
22
+ # TODO: update mysql2_spec.rb
23
+ # TODO: update postgresql_spec.rb
24
+
25
+ Bundler.require(:active_record)
26
+
13
27
  require "skiima"
14
28
 
15
29
  SKIIMA_ROOT = File.dirname(__FILE__)
@@ -24,12 +38,32 @@ end
24
38
  def ensure_closed(s, &block)
25
39
  yield s
26
40
  ensure
27
- s.connection.close
41
+ s.connector.disconnect!
28
42
  end
29
43
 
30
44
  def within_transaction(s, &block)
31
- s.connection.begin_db_transaction
45
+ s.connector.begin_db_transaction
32
46
  yield s
33
47
  ensure
34
- s.connection.rollback_db_transaction
35
- end
48
+ s.connector.rollback_db_transaction
49
+ end
50
+
51
+ # minitest config for shared examples
52
+ MiniTest::Spec.class_eval do
53
+ def self.shared_examples
54
+ @shared_examples ||= {}
55
+ end
56
+ end
57
+
58
+ module MiniTest::Spec::SharedExamples
59
+ def shared_examples_for(desc, &block)
60
+ MiniTest::Spec.shared_examples[desc] = block
61
+ end
62
+
63
+ def it_behaves_like(desc)
64
+ self.instance_eval(&MiniTest::Spec.shared_examples[desc])
65
+ end
66
+ end
67
+
68
+ Object.class_eval { include(MiniTest::Spec::SharedExamples) }
69
+ require 'shared_examples/config_shared_example'
metadata CHANGED
@@ -1,115 +1,142 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: skiima
3
- version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.1.000
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.2
6
5
  platform: ruby
7
- authors:
6
+ authors:
8
7
  - David Conner
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
-
13
- date: 2012-04-27 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
11
+ date: 2013-04-19 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
16
14
  name: fast_gettext
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
19
- none: false
20
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
21
17
  - - ~>
22
- - !ruby/object:Gem::Version
18
+ - !ruby/object:Gem::Version
23
19
  version: 0.6.0
24
20
  type: :runtime
25
- version_requirements: *id001
26
- - !ruby/object:Gem::Dependency
27
- name: erubis
28
21
  prerelease: false
29
- requirement: &id002 !ruby/object:Gem::Requirement
30
- none: false
31
- requirements:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 0.6.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: erubis
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
32
31
  - - ~>
33
- - !ruby/object:Gem::Version
32
+ - !ruby/object:Gem::Version
34
33
  version: 2.7.0
35
34
  type: :runtime
36
- version_requirements: *id002
37
- - !ruby/object:Gem::Dependency
38
- name: bundler
39
35
  prerelease: false
40
- requirement: &id003 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- version: 1.0.21
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 2.7.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: bundler
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.3.3
46
48
  type: :development
47
- version_requirements: *id003
48
- - !ruby/object:Gem::Dependency
49
- name: minitest
50
49
  prerelease: false
51
- requirement: &id004 !ruby/object:Gem::Requirement
52
- none: false
53
- requirements:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.3.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: minitest
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
54
59
  - - ~>
55
- - !ruby/object:Gem::Version
56
- version: 2.9.1
60
+ - !ruby/object:Gem::Version
61
+ version: 4.6.2
57
62
  type: :development
58
- version_requirements: *id004
59
- - !ruby/object:Gem::Dependency
60
- name: minitest-matchers
61
63
  prerelease: false
62
- requirement: &id005 !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
65
66
  - - ~>
66
- - !ruby/object:Gem::Version
67
- version: 1.1.3
67
+ - !ruby/object:Gem::Version
68
+ version: 4.6.2
69
+ - !ruby/object:Gem::Dependency
70
+ name: minitest-matchers
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 1.2.0
68
76
  type: :development
69
- version_requirements: *id005
70
- - !ruby/object:Gem::Dependency
71
- name: mocha
72
77
  prerelease: false
73
- requirement: &id006 !ruby/object:Gem::Requirement
74
- none: false
75
- requirements:
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
76
80
  - - ~>
77
- - !ruby/object:Gem::Version
78
- version: 0.10.0
81
+ - !ruby/object:Gem::Version
82
+ version: 1.2.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: mocha
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 0.13.2
79
90
  type: :development
80
- version_requirements: *id006
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 0.13.2
81
97
  description: Skiima helps to manage SQL objects like views and functions
82
- email:
98
+ email:
83
99
  - dconner.pro@gmail.com
84
100
  executables: []
85
-
86
101
  extensions: []
87
-
88
102
  extra_rdoc_files: []
89
-
90
- files:
103
+ files:
91
104
  - .gitignore
92
105
  - .travis.yml
93
106
  - CHANGELOG
94
107
  - Gemfile
95
108
  - Guardfile
109
+ - LICENSE
110
+ - Procfile.example
96
111
  - README.md
97
112
  - Rakefile
98
113
  - lib/skiima.rb
99
- - lib/skiima/db_adapters.rb
100
- - lib/skiima/db_adapters/base_mysql_adapter.rb
101
- - lib/skiima/db_adapters/mysql2_adapter.rb
102
- - lib/skiima/db_adapters/mysql_adapter.rb
103
- - lib/skiima/db_adapters/postgresql_adapter.rb
104
- - lib/skiima/dependency.rb
114
+ - lib/skiima/config.rb
115
+ - lib/skiima/config/struct.rb
116
+ - lib/skiima/db/connector.rb
117
+ - lib/skiima/db/connector/active_record.rb
118
+ - lib/skiima/db/connector/active_record/base_connector.rb
119
+ - lib/skiima/db/connector/active_record/mysql2_connector.rb
120
+ - lib/skiima/db/connector/active_record/mysql_connector.rb
121
+ - lib/skiima/db/connector/active_record/postgresql_connector.rb
122
+ - lib/skiima/db/helpers/mysql.rb
123
+ - lib/skiima/db/helpers/postgresql.rb
124
+ - lib/skiima/db/resolver.rb
125
+ - lib/skiima/dependency/reader.rb
126
+ - lib/skiima/dependency/script.rb
127
+ - lib/skiima/i18n.rb
128
+ - lib/skiima/loader.rb
105
129
  - lib/skiima/locales/en.yml
106
130
  - lib/skiima/locales/fr.yml
131
+ - lib/skiima/logger.rb
132
+ - lib/skiima/railtie.rb
133
+ - lib/skiima/railties/skiima.rake
107
134
  - lib/skiima/version.rb
108
- - lib/skiima_helpers.rb
109
135
  - skiima.gemspec
110
- - spec/config/database.yml
111
- - spec/db/skiima/depends.yml
112
- - spec/db/skiima/empty_depends.yml
136
+ - spec/config/database.yml.example
137
+ - spec/config/database.yml.travis
138
+ - spec/db/skiima/dependencies.yml
139
+ - spec/db/skiima/empty_dependencies.yml
113
140
  - spec/db/skiima/init_test_db/database.skiima_test.mysql.current.sql
114
141
  - spec/db/skiima/init_test_db/database.skiima_test.postgresql.current.sql
115
142
  - spec/db/skiima/test_column_names/table.test_column_names.mysql.current.sql
@@ -130,43 +157,50 @@ files:
130
157
  - spec/mysql2_spec.rb
131
158
  - spec/mysql_spec.rb
132
159
  - spec/postgresql_spec.rb
133
- - spec/skiima/db_adapters/mysql_adapter_spec.rb
134
- - spec/skiima/db_adapters/postgresql_adapter_spec.rb
135
- - spec/skiima/db_adapters_spec.rb
136
- - spec/skiima/dependency_spec.rb
160
+ - spec/shared_examples/config_shared_example.rb
161
+ - spec/skiima/config/struct_spec.rb
162
+ - spec/skiima/config_spec.rb
163
+ - spec/skiima/db/connector/active_record/base_connector_spec.rb
164
+ - spec/skiima/db/connector/active_record/mysql2_connector_spec.rb
165
+ - spec/skiima/db/connector/active_record/mysql_connector_spec.rb
166
+ - spec/skiima/db/connector/active_record/postgresql_connector_spec.rb
167
+ - spec/skiima/db/connector_spec.rb
168
+ - spec/skiima/db/resolver_spec.rb
169
+ - spec/skiima/dependency/reader_spec.rb
170
+ - spec/skiima/dependency/script_spec.rb
171
+ - spec/skiima/i18n_spec.rb
172
+ - spec/skiima/loader_spec.rb
173
+ - spec/skiima/logger_spec.rb
137
174
  - spec/skiima_spec.rb
138
175
  - spec/spec_helper.rb
139
176
  homepage: http://github.com/dcunited001/skiima
140
177
  licenses: []
141
-
178
+ metadata: {}
142
179
  post_install_message:
143
180
  rdoc_options: []
144
-
145
- require_paths:
181
+ require_paths:
146
182
  - lib
147
- required_ruby_version: !ruby/object:Gem::Requirement
148
- none: false
149
- requirements:
150
- - - ">="
151
- - !ruby/object:Gem::Version
152
- version: "0"
153
- required_rubygems_version: !ruby/object:Gem::Requirement
154
- none: false
155
- requirements:
156
- - - ">="
157
- - !ruby/object:Gem::Version
158
- version: "0"
183
+ required_ruby_version: !ruby/object:Gem::Requirement
184
+ requirements:
185
+ - - ! '>='
186
+ - !ruby/object:Gem::Version
187
+ version: '0'
188
+ required_rubygems_version: !ruby/object:Gem::Requirement
189
+ requirements:
190
+ - - ! '>='
191
+ - !ruby/object:Gem::Version
192
+ version: '0'
159
193
  requirements: []
160
-
161
194
  rubyforge_project: skiima
162
- rubygems_version: 1.8.23
195
+ rubygems_version: 2.0.3
163
196
  signing_key:
164
- specification_version: 3
197
+ specification_version: 4
165
198
  summary: A SQL object manager for Rails projects
166
- test_files:
167
- - spec/config/database.yml
168
- - spec/db/skiima/depends.yml
169
- - spec/db/skiima/empty_depends.yml
199
+ test_files:
200
+ - spec/config/database.yml.example
201
+ - spec/config/database.yml.travis
202
+ - spec/db/skiima/dependencies.yml
203
+ - spec/db/skiima/empty_dependencies.yml
170
204
  - spec/db/skiima/init_test_db/database.skiima_test.mysql.current.sql
171
205
  - spec/db/skiima/init_test_db/database.skiima_test.postgresql.current.sql
172
206
  - spec/db/skiima/test_column_names/table.test_column_names.mysql.current.sql
@@ -187,9 +221,19 @@ test_files:
187
221
  - spec/mysql2_spec.rb
188
222
  - spec/mysql_spec.rb
189
223
  - spec/postgresql_spec.rb
190
- - spec/skiima/db_adapters/mysql_adapter_spec.rb
191
- - spec/skiima/db_adapters/postgresql_adapter_spec.rb
192
- - spec/skiima/db_adapters_spec.rb
193
- - spec/skiima/dependency_spec.rb
224
+ - spec/shared_examples/config_shared_example.rb
225
+ - spec/skiima/config/struct_spec.rb
226
+ - spec/skiima/config_spec.rb
227
+ - spec/skiima/db/connector/active_record/base_connector_spec.rb
228
+ - spec/skiima/db/connector/active_record/mysql2_connector_spec.rb
229
+ - spec/skiima/db/connector/active_record/mysql_connector_spec.rb
230
+ - spec/skiima/db/connector/active_record/postgresql_connector_spec.rb
231
+ - spec/skiima/db/connector_spec.rb
232
+ - spec/skiima/db/resolver_spec.rb
233
+ - spec/skiima/dependency/reader_spec.rb
234
+ - spec/skiima/dependency/script_spec.rb
235
+ - spec/skiima/i18n_spec.rb
236
+ - spec/skiima/loader_spec.rb
237
+ - spec/skiima/logger_spec.rb
194
238
  - spec/skiima_spec.rb
195
239
  - spec/spec_helper.rb