skiima 0.1.000 → 0.2.2

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.
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