mince 2.0.2 → 2.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 9289921e574adca62309c4dba6ee0f15d257bd39
4
+ data.tar.gz: 0a11a1df9dd21d16ee02843ccb9c062cafb88ada
5
+ SHA512:
6
+ metadata.gz: 395c89bc97cacc641a4380f0a28c2ffa06761f4f3ee94a31759c1b9a0e65ea4a6244cdc88686c4d9be615cef839298d226dabe87fd4456257f120ca7800a3e99
7
+ data.tar.gz: c35e8428c60ab564b19fdfce9239bac3fbaa8d0e3cbc15887811ecbe5c836977bad42db3cdf43d6981b6af880ff696aff2fc484b10b014f428c716fd7ba46c53
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2012 Asynchrony
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,95 @@
1
+ # What is Mince
2
+
3
+ [![Travis CI](https://travis-ci.org/coffeencoke/mince.png)](https://travis-ci.org/#!/coffeencoke/mince)
4
+
5
+ Mince is a ruby gem to provide a light weight ORM to persist data to a variety of databases in ruby apps.
6
+
7
+ The motivation behind this is so your application is not tightly tied to a specific database. As your application grows you may need to upgrade to a different database or pull specific models to a different persistence strategy.
8
+
9
+ Other ORMs are married to the [Active Record Architecture Pattern](http://en.wikipedia.org/wiki/Active_record_pattern). Although Mince can be used with the Active Record pattern as well, it is designed to be used in more of a [Multitier Architecture Pattern](http://en.wikipedia.org/wiki/Multitier_architecture), where the data layer is separated from the business logic layer in the application.
10
+
11
+ *View the [Why Multitier Architecture?](https://github.com/coffeencoke/mince/wiki/Why-multitier-architecture%3F) page for more discussion*
12
+
13
+ ## Language Dependency
14
+
15
+ **Currently only compatible with Ruby 1.9+. Support for Ruby 1.8 to come later.**
16
+
17
+ # How to use it
18
+
19
+ This library contains the core components to use Mince [supported database interfaces](https://github.com/coffeencoke/mince/wiki/Existing-interfaces). These interfaces can be interchanged, but in this setup example we will be using [HashyDb](https://github.com/coffeencoke/hashy_db), which is an in-memory ruby hash database.
20
+
21
+ ## Install
22
+
23
+ Install `mince` and `hashy_db` gems:
24
+
25
+ ```bash
26
+ gem install mince hashy_db
27
+ ```
28
+
29
+ ## Config
30
+
31
+ Use the config class to configure which mince database interface you
32
+ desire to use:
33
+
34
+ ```ruby
35
+ require 'mince'
36
+ require 'hashy_db'
37
+
38
+ Mince::Config.interface = Mince::HashyDb::Interface
39
+ ```
40
+
41
+ ## Use it
42
+
43
+ ```ruby
44
+ # Get the interface
45
+ interface = Mince::Config.interface
46
+
47
+ # Add a book
48
+ interface.add 'books', title: 'The World In Photographs', publisher: 'National Geographic'
49
+
50
+ # Get all books
51
+ interface.find_all 'books'
52
+
53
+ # Replace a book where the record's id is 1
54
+ # Use the interface's primary_key field because
55
+ # some databases use non `id` fields for the primary key
56
+ primary_key = interface.primary_key
57
+ interface.replace 'books', primary_key => 1, title: 'A World In Photographs', publisher: 'National Geographic'
58
+ ```
59
+
60
+ # Deeper Look
61
+
62
+ The following pages provide a deeper look into Mince
63
+
64
+ Link | Description
65
+ ----|-----
66
+ [API Docs](http://rdoc.info/github/coffeencoke/mince/master/frames) | API docs for Mince
67
+ [Existing Interfaces](https://github.com/coffeencoke/mince/wiki/Existing-interfaces) | List of supported database interfaces that can be used with Mince
68
+ [Usage with Rails](https://github.com/coffeencoke/mince/wiki/Usage-with-rails) | More information on how to use Mince with Rails
69
+ [Fancy Mixins](https://github.com/coffeencoke/mince/wiki/Fancy-mixins) | We've written a few mixins that provide some standard behavior to your models while using Mince
70
+ [Development](https://github.com/coffeencoke/mince/wiki/Development) | Help by contributing
71
+ [Mailing List](https://groups.google.com/forum/?fromgroups#!forum/mince_dev)
72
+ [Travis CI](https://travis-ci.org/#!/coffeencoke/mince) | Check out the build status of Mince
73
+ [Why Multitier Architecture?](https://github.com/coffeencoke/mince/wiki/Why-multitier-architecture%3F) | Discussion about why to use multi tier architecture as apposed to others, such as Active Record
74
+
75
+ # Contribute
76
+
77
+ You can contribute to Mince by doing a number of things. View the [Development](https://github.com/coffeencoke/mince/wiki/Development) page for more details.
78
+
79
+ # Contributors
80
+
81
+ Name | Twitter | Github
82
+ -----|----|-----
83
+ **Matt Simpson** (owner & maintainer) | [@railsgrammer](https://twitter.com/railsgrammer) | [@coffeencoke](https://github.com/coffeencoke/)
84
+ Jason Mayer | [@farkerhaiku](https://twitter.com/farkerhaiku) | [@farkerhaiku](https://github.com/farkerhaiku)
85
+ Amos King | [@adkron](https://twitter.com/adkron) | [@adkron](https://github.com/adkron)
86
+ Ionic Mobile Team | [@asynchrony](https://twitter.com/asynchrony) | [@ionicmobile](https://github.com/ionicmobile)
87
+ David Czarnecki | [@czarneckid](https://twitter.com/czarneckid) | [@czarneckid](https://github.com/czarneckid)
88
+ Kenny Ortmann | [@yairgo](https://twitter.com/yairgo) | [@yairgo](https://github.com/yairgo)
89
+ Helena Converse | [@n3rdgir1](https://twitter.com/n3rdgir1) | [@n3rdgir1](https://github.com/n3rdgir1)
90
+
91
+ If you've been missed on this list, let us know by creating an issue or sending one of us a message.
92
+
93
+ # Version 1
94
+
95
+ Looking for support for Version 1? Put an issue in, or send one of us a message.
@@ -32,7 +32,7 @@ module Mince
32
32
  # Saves the object to the data model. Stores if new, updates previous entry if it has already
33
33
  # been saved.
34
34
  def save
35
- ensure_no_extra_fields if self.respond_to?(:ensure_no_extra_fields)
35
+ ensure_no_extra_fields if self.respond_to?(:ensure_no_extra_fields, true)
36
36
 
37
37
  if persisted?
38
38
  data_model.update(self)
@@ -5,11 +5,11 @@ module Mince
5
5
  end
6
6
 
7
7
  def self.minor
8
- 0
8
+ 1
9
9
  end
10
10
 
11
11
  def self.patch
12
- 2
12
+ 0
13
13
  end
14
14
  end
15
15
 
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mince
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
5
- prerelease:
4
+ version: 2.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - Matt Simpson
@@ -10,12 +9,11 @@ authors:
10
9
  autorequire:
11
10
  bindir: bin
12
11
  cert_chain: []
13
- date: 2013-03-18 00:00:00.000000000 Z
12
+ date: 2013-03-29 00:00:00.000000000 Z
14
13
  dependencies:
15
14
  - !ruby/object:Gem::Dependency
16
15
  name: activesupport
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ~>
21
19
  - !ruby/object:Gem::Version
@@ -23,7 +21,6 @@ dependencies:
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
24
  requirements:
28
25
  - - ~>
29
26
  - !ruby/object:Gem::Version
@@ -31,7 +28,6 @@ dependencies:
31
28
  - !ruby/object:Gem::Dependency
32
29
  name: activemodel
33
30
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
31
  requirements:
36
32
  - - ~>
37
33
  - !ruby/object:Gem::Version
@@ -39,7 +35,6 @@ dependencies:
39
35
  type: :runtime
40
36
  prerelease: false
41
37
  version_requirements: !ruby/object:Gem::Requirement
42
- none: false
43
38
  requirements:
44
39
  - - ~>
45
40
  - !ruby/object:Gem::Version
@@ -47,7 +42,6 @@ dependencies:
47
42
  - !ruby/object:Gem::Dependency
48
43
  name: rake
49
44
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
45
  requirements:
52
46
  - - ~>
53
47
  - !ruby/object:Gem::Version
@@ -55,7 +49,6 @@ dependencies:
55
49
  type: :development
56
50
  prerelease: false
57
51
  version_requirements: !ruby/object:Gem::Requirement
58
- none: false
59
52
  requirements:
60
53
  - - ~>
61
54
  - !ruby/object:Gem::Version
@@ -63,7 +56,6 @@ dependencies:
63
56
  - !ruby/object:Gem::Dependency
64
57
  name: rspec
65
58
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
59
  requirements:
68
60
  - - ~>
69
61
  - !ruby/object:Gem::Version
@@ -71,7 +63,6 @@ dependencies:
71
63
  type: :development
72
64
  prerelease: false
73
65
  version_requirements: !ruby/object:Gem::Requirement
74
- none: false
75
66
  requirements:
76
67
  - - ~>
77
68
  - !ruby/object:Gem::Version
@@ -79,7 +70,6 @@ dependencies:
79
70
  - !ruby/object:Gem::Dependency
80
71
  name: guard-rspec
81
72
  requirement: !ruby/object:Gem::Requirement
82
- none: false
83
73
  requirements:
84
74
  - - ~>
85
75
  - !ruby/object:Gem::Version
@@ -87,7 +77,6 @@ dependencies:
87
77
  type: :development
88
78
  prerelease: false
89
79
  version_requirements: !ruby/object:Gem::Requirement
90
- none: false
91
80
  requirements:
92
81
  - - ~>
93
82
  - !ruby/object:Gem::Version
@@ -95,7 +84,6 @@ dependencies:
95
84
  - !ruby/object:Gem::Dependency
96
85
  name: yard
97
86
  requirement: !ruby/object:Gem::Requirement
98
- none: false
99
87
  requirements:
100
88
  - - ~>
101
89
  - !ruby/object:Gem::Version
@@ -103,7 +91,6 @@ dependencies:
103
91
  type: :development
104
92
  prerelease: false
105
93
  version_requirements: !ruby/object:Gem::Requirement
106
- none: false
107
94
  requirements:
108
95
  - - ~>
109
96
  - !ruby/object:Gem::Version
@@ -111,7 +98,6 @@ dependencies:
111
98
  - !ruby/object:Gem::Dependency
112
99
  name: redcarpet
113
100
  requirement: !ruby/object:Gem::Requirement
114
- none: false
115
101
  requirements:
116
102
  - - ~>
117
103
  - !ruby/object:Gem::Version
@@ -119,7 +105,6 @@ dependencies:
119
105
  type: :development
120
106
  prerelease: false
121
107
  version_requirements: !ruby/object:Gem::Requirement
122
- none: false
123
108
  requirements:
124
109
  - - ~>
125
110
  - !ruby/object:Gem::Version
@@ -127,7 +112,6 @@ dependencies:
127
112
  - !ruby/object:Gem::Dependency
128
113
  name: debugger
129
114
  requirement: !ruby/object:Gem::Requirement
130
- none: false
131
115
  requirements:
132
116
  - - ~>
133
117
  - !ruby/object:Gem::Version
@@ -135,7 +119,6 @@ dependencies:
135
119
  type: :development
136
120
  prerelease: false
137
121
  version_requirements: !ruby/object:Gem::Requirement
138
- none: false
139
122
  requirements:
140
123
  - - ~>
141
124
  - !ruby/object:Gem::Version
@@ -143,7 +126,6 @@ dependencies:
143
126
  - !ruby/object:Gem::Dependency
144
127
  name: hashy_db
145
128
  requirement: !ruby/object:Gem::Requirement
146
- none: false
147
129
  requirements:
148
130
  - - ~>
149
131
  - !ruby/object:Gem::Version
@@ -151,7 +133,6 @@ dependencies:
151
133
  type: :development
152
134
  prerelease: false
153
135
  version_requirements: !ruby/object:Gem::Requirement
154
- none: false
155
136
  requirements:
156
137
  - - ~>
157
138
  - !ruby/object:Gem::Version
@@ -159,7 +140,6 @@ dependencies:
159
140
  - !ruby/object:Gem::Dependency
160
141
  name: rb-fsevent
161
142
  requirement: !ruby/object:Gem::Requirement
162
- none: false
163
143
  requirements:
164
144
  - - ~>
165
145
  - !ruby/object:Gem::Version
@@ -167,74 +147,73 @@ dependencies:
167
147
  type: :development
168
148
  prerelease: false
169
149
  version_requirements: !ruby/object:Gem::Requirement
170
- none: false
171
150
  requirements:
172
151
  - - ~>
173
152
  - !ruby/object:Gem::Version
174
153
  version: 0.9.0
175
- description: Library to interact with mince interfacing data libraries
154
+ description: Library to interact with databases, not tied to rails, and not tied to
155
+ active record pattern
176
156
  email:
177
157
  - matt@railsgrammer.com
178
158
  executables: []
179
159
  extensions: []
180
160
  extra_rdoc_files: []
181
161
  files:
182
- - lib/mince.rb
183
162
  - lib/mince/config.rb
184
163
  - lib/mince/data_model.rb
185
- - lib/mince/model.rb
186
- - lib/mince/version.rb
187
- - lib/mince/shared_examples/interface_example.rb
188
164
  - lib/mince/model/data_model.rb
189
165
  - lib/mince/model/fields.rb
190
166
  - lib/mince/model/finders.rb
191
167
  - lib/mince/model/persistence.rb
168
+ - lib/mince/model.rb
169
+ - lib/mince/shared_examples/interface_example.rb
170
+ - lib/mince/version.rb
171
+ - lib/mince.rb
172
+ - LICENSE.txt
173
+ - README.md
192
174
  - spec/integration/mince_data_model_spec.rb
193
175
  - spec/integration/mince_model_spec.rb
194
- - spec/support/shared_examples/modeL_data_model_example.rb
176
+ - spec/support/shared_examples/model_data_model_example.rb
195
177
  - spec/support/shared_examples/model_finders_example.rb
196
- - spec/units/mince/model/data_model_spec.rb
197
- - spec/units/mince/model/finders_spec.rb
198
178
  - spec/units/mince/config_spec.rb
199
- - spec/units/mince/interface_example_spec.rb
200
179
  - spec/units/mince/data_model_spec.rb
180
+ - spec/units/mince/interface_example_spec.rb
181
+ - spec/units/mince/model/data_model_spec.rb
182
+ - spec/units/mince/model/finders_spec.rb
201
183
  - spec/units/mince/model_spec.rb
202
184
  homepage: https://github.com/coffeencoke/mince
203
- licenses: []
185
+ licenses:
186
+ - MIT
187
+ metadata: {}
204
188
  post_install_message:
205
189
  rdoc_options: []
206
190
  require_paths:
207
191
  - lib
208
192
  required_ruby_version: !ruby/object:Gem::Requirement
209
- none: false
210
193
  requirements:
211
- - - ! '>='
194
+ - - '>='
212
195
  - !ruby/object:Gem::Version
213
196
  version: 1.9.3
214
197
  required_rubygems_version: !ruby/object:Gem::Requirement
215
- none: false
216
198
  requirements:
217
- - - ! '>='
199
+ - - '>='
218
200
  - !ruby/object:Gem::Version
219
201
  version: '0'
220
- segments:
221
- - 0
222
- hash: 174576690081751794
223
202
  requirements: []
224
203
  rubyforge_project: mince
225
- rubygems_version: 1.8.25
204
+ rubygems_version: 2.0.3
226
205
  signing_key:
227
- specification_version: 3
228
- summary: Library to interact with mince interfacing data libraries
206
+ specification_version: 4
207
+ summary: Ruby library to provide a light weight flexible ORM
229
208
  test_files:
230
209
  - spec/integration/mince_data_model_spec.rb
231
210
  - spec/integration/mince_model_spec.rb
232
- - spec/support/shared_examples/modeL_data_model_example.rb
211
+ - spec/support/shared_examples/model_data_model_example.rb
233
212
  - spec/support/shared_examples/model_finders_example.rb
234
- - spec/units/mince/model/data_model_spec.rb
235
- - spec/units/mince/model/finders_spec.rb
236
213
  - spec/units/mince/config_spec.rb
237
- - spec/units/mince/interface_example_spec.rb
238
214
  - spec/units/mince/data_model_spec.rb
215
+ - spec/units/mince/interface_example_spec.rb
216
+ - spec/units/mince/model/data_model_spec.rb
217
+ - spec/units/mince/model/finders_spec.rb
239
218
  - spec/units/mince/model_spec.rb
240
219
  has_rdoc: true