synamoid 1.2.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +52 -52
- metadata +5 -41
- data/.document +0 -5
- data/.gitignore +0 -67
- data/.rspec +0 -2
- data/.travis.yml +0 -15
- data/CHANGELOG.md +0 -48
- data/Gemfile +0 -4
- data/Rakefile +0 -64
- data/dynamoid.gemspec +0 -53
- data/lib/dynamoid.rb +0 -53
- data/lib/dynamoid/adapter.rb +0 -190
- data/lib/dynamoid/adapter_plugin/aws_sdk_v2.rb +0 -892
- data/lib/dynamoid/associations.rb +0 -106
- data/lib/dynamoid/associations/association.rb +0 -116
- data/lib/dynamoid/associations/belongs_to.rb +0 -44
- data/lib/dynamoid/associations/has_and_belongs_to_many.rb +0 -40
- data/lib/dynamoid/associations/has_many.rb +0 -39
- data/lib/dynamoid/associations/has_one.rb +0 -39
- data/lib/dynamoid/associations/many_association.rb +0 -193
- data/lib/dynamoid/associations/single_association.rb +0 -69
- data/lib/dynamoid/components.rb +0 -37
- data/lib/dynamoid/config.rb +0 -58
- data/lib/dynamoid/config/options.rb +0 -78
- data/lib/dynamoid/criteria.rb +0 -29
- data/lib/dynamoid/criteria/chain.rb +0 -214
- data/lib/dynamoid/dirty.rb +0 -47
- data/lib/dynamoid/document.rb +0 -201
- data/lib/dynamoid/errors.rb +0 -66
- data/lib/dynamoid/fields.rb +0 -164
- data/lib/dynamoid/finders.rb +0 -199
- data/lib/dynamoid/identity_map.rb +0 -92
- data/lib/dynamoid/indexes.rb +0 -273
- data/lib/dynamoid/middleware/identity_map.rb +0 -16
- data/lib/dynamoid/persistence.rb +0 -359
- data/lib/dynamoid/validations.rb +0 -63
- data/lib/dynamoid/version.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1524b6ecb48d2bbea676257322ee7e5ddf8edf15
|
4
|
+
data.tar.gz: 4769c15ddf8e45b1cd1c4b733ab299ebe9a870ee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9f42341036d5329c14bbf24754b7a7c638973085f854f28a219224da0b356645e8c265aece2c55ff715c0e0b7dfdf7ca3fa9cf0745a34fb9b78e5f6420ca6f2
|
7
|
+
data.tar.gz: 64af375b597084c891418c8c34580f53dcde5ecce9c23a8758d275c1490330e8060eff3c349629f1bc64a0d9a36d531589cac4481eabe5262a4c31897dcf13f0
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# Synamoid
|
2
2
|
|
3
|
-
|
3
|
+
Synamoid is an ORM for Amazon's DynamoDB for Ruby applications. It
|
4
4
|
provides similar functionality to ActiveRecord and improves on
|
5
5
|
Amazon's existing
|
6
6
|
[HashModel](http://docs.amazonwebservices.com/AWSRubySDK/latest/AWS/Record/HashModel.html)
|
@@ -12,14 +12,14 @@ But if you want a fast, scalable, simple, easy-to-use database (and a Gem that s
|
|
12
12
|
|
13
13
|
## Installation
|
14
14
|
|
15
|
-
Installing
|
15
|
+
Installing Synamoid is pretty simple. First include the Gem in your Gemfile:
|
16
16
|
|
17
17
|
```ruby
|
18
|
-
gem '
|
18
|
+
gem 'synamoid', '~> 1'
|
19
19
|
```
|
20
20
|
## Prerequisities
|
21
21
|
|
22
|
-
|
22
|
+
Synamoid depends on the aws-sdk, and this is tested on the current version of aws-sdk (~> 2), rails (~> 4).
|
23
23
|
Hence the configuration as needed for aws to work will be dealt with by aws setup.
|
24
24
|
|
25
25
|
Here are the steps to setup aws-sdk.
|
@@ -30,7 +30,7 @@ gem 'aws-sdk', '~>2'
|
|
30
30
|
|
31
31
|
(or) include the aws-sdk in your Gemfile.
|
32
32
|
|
33
|
-
**NOTE:**
|
33
|
+
**NOTE:** Synamoid-1.0 doesn't support aws-sdk Version 1 (Use Synamoid Major Version 0 for aws-sdk 1)
|
34
34
|
|
35
35
|
Configure AWS access:
|
36
36
|
[Reference](https://github.com/aws/aws-sdk-ruby)
|
@@ -51,12 +51,12 @@ Create config/initializers/aws.rb as follows:
|
|
51
51
|
For a full list of the DDB regions, you can go
|
52
52
|
[here](http://docs.aws.amazon.com/general/latest/gr/rande.html#ddb_region).
|
53
53
|
|
54
|
-
Then you need to initialize
|
54
|
+
Then you need to initialize Synamoid config to get it going. Put code similar to this somewhere (a Rails initializer would be a great place for this if you're using Rails):
|
55
55
|
|
56
56
|
```ruby
|
57
|
-
|
57
|
+
Synamoid.configure do |config|
|
58
58
|
config.adapter = 'aws_sdk_v2' # This adapter establishes a connection to the DynamoDB servers using Amazon's own AWS gem.
|
59
|
-
config.namespace = "
|
59
|
+
config.namespace = "synamoid_app_development" # To namespace tables created by Synamoid from other tables you might have. Set to nil to avoid namespacing.
|
60
60
|
config.warn_on_scan = true # Output a warning to the logger when you perform a scan rather than a query on a table.
|
61
61
|
config.read_capacity = 5 # Read capacity for your tables
|
62
62
|
config.write_capacity = 5 # Write capacity for your tables
|
@@ -69,28 +69,28 @@ Once you have the configuration set up, you need to move on to making models.
|
|
69
69
|
|
70
70
|
## Setup
|
71
71
|
|
72
|
-
You *must* include ```
|
72
|
+
You *must* include ```Synamoid::Document``` in every Synamoid model.
|
73
73
|
|
74
74
|
```ruby
|
75
75
|
class User
|
76
|
-
include
|
76
|
+
include Synamoid::Document
|
77
77
|
|
78
78
|
end
|
79
79
|
```
|
80
80
|
|
81
81
|
### Table
|
82
82
|
|
83
|
-
|
83
|
+
Synamoid has some sensible defaults for you when you create a new table, including the table name and the primary key column. But you can change those if you like on table creation.
|
84
84
|
|
85
85
|
```ruby
|
86
86
|
class User
|
87
|
-
include
|
87
|
+
include Synamoid::Document
|
88
88
|
|
89
89
|
table :name => :awesome_users, :key => :user_id, :read_capacity => 5, :write_capacity => 5
|
90
90
|
end
|
91
91
|
```
|
92
92
|
|
93
|
-
These fields will not change an existing table: so specifying a new read_capacity and write_capacity here only works correctly for entirely new tables. Similarly, while
|
93
|
+
These fields will not change an existing table: so specifying a new read_capacity and write_capacity here only works correctly for entirely new tables. Similarly, while Synamoid will look for a table named `awesome_users` in your namespace, it won't change any existing tables to use that name; and if it does find a table with the correct name, it won't change its hash key, which it expects will be user_id. If this table doesn't exist yet, however, Synamoid will create it with these options.
|
94
94
|
|
95
95
|
### Fields
|
96
96
|
|
@@ -105,7 +105,7 @@ You get magic columns of id (string), created_at (datetime), and updated_at (dat
|
|
105
105
|
|
106
106
|
```ruby
|
107
107
|
class User
|
108
|
-
include
|
108
|
+
include Synamoid::Document
|
109
109
|
|
110
110
|
field :name
|
111
111
|
field :email
|
@@ -130,26 +130,26 @@ To use a custom type for a field, suppose you have a `Money` type.
|
|
130
130
|
class Money
|
131
131
|
# ... your business logic ...
|
132
132
|
|
133
|
-
def
|
133
|
+
def synamoid_dump
|
134
134
|
"serialized representation as a string"
|
135
135
|
end
|
136
136
|
|
137
|
-
def self.
|
137
|
+
def self.synamoid_load(serialized_str)
|
138
138
|
# parse serialized representation and return a Money instance
|
139
139
|
Money.new(...)
|
140
140
|
end
|
141
141
|
end
|
142
142
|
|
143
143
|
class User
|
144
|
-
include
|
144
|
+
include Synamoid::Document
|
145
145
|
|
146
146
|
field :balance, Money
|
147
147
|
end
|
148
148
|
```
|
149
149
|
|
150
|
-
If you want to use a third-party class (which does not support `#
|
151
|
-
as your field type, you can use an adapter class providing `.
|
152
|
-
for your third-party class. (`.
|
150
|
+
If you want to use a third-party class (which does not support `#synamoid_dump` and `.synamoid_load`)
|
151
|
+
as your field type, you can use an adapter class providing `.synamoid_dump` and `.synamoid_load` class methods
|
152
|
+
for your third-party class. (`.synamoid_load` can remain the same from the previous example; here we just
|
153
153
|
add a level of indirection for serializing.) Example:
|
154
154
|
|
155
155
|
```ruby
|
@@ -157,17 +157,17 @@ add a level of indirection for serializing.) Example:
|
|
157
157
|
class Money; end
|
158
158
|
|
159
159
|
class MoneyAdapter
|
160
|
-
def self.
|
160
|
+
def self.synamoid_load(money_serialized_str)
|
161
161
|
Money.new(...)
|
162
162
|
end
|
163
163
|
|
164
|
-
def self.
|
164
|
+
def self.synamoid_dump(money_obj)
|
165
165
|
money_obj.value.to_s
|
166
166
|
end
|
167
167
|
end
|
168
168
|
|
169
169
|
class User
|
170
|
-
include
|
170
|
+
include Synamoid::Document
|
171
171
|
|
172
172
|
field :balance, MoneyAdapter
|
173
173
|
end
|
@@ -176,20 +176,20 @@ add a level of indirection for serializing.) Example:
|
|
176
176
|
Lastly, you can control the data type of your custom-class-backed field at the DynamoDB level.
|
177
177
|
This is especially important if you want to use your custom field as a numeric range or for
|
178
178
|
number-oriented queries. By default custom fields are persisted as a string attribute, but
|
179
|
-
your custom class can override this with a `.
|
179
|
+
your custom class can override this with a `.synamoid_field_type` class method, which would
|
180
180
|
return either `:string` or `:number`.
|
181
|
-
(DynamoDB supports some other attribute types, but
|
181
|
+
(DynamoDB supports some other attribute types, but Synamoid does not yet.)
|
182
182
|
|
183
183
|
|
184
184
|
### Associations
|
185
185
|
|
186
|
-
Just like in ActiveRecord (or your other favorite ORM),
|
186
|
+
Just like in ActiveRecord (or your other favorite ORM), Synamoid uses associations to create links between models.
|
187
187
|
|
188
|
-
The only supported associations (so far) are ```has_many```, ```has_one```, ```has_and_belongs_to_many```, and ```belongs_to```. Associations are very simple to create: just specify the type, the name, and then any options you'd like to pass to the association. If there's an inverse association either inferred or specified directly,
|
188
|
+
The only supported associations (so far) are ```has_many```, ```has_one```, ```has_and_belongs_to_many```, and ```belongs_to```. Associations are very simple to create: just specify the type, the name, and then any options you'd like to pass to the association. If there's an inverse association either inferred or specified directly, Synamoid will update both objects to point at each other.
|
189
189
|
|
190
190
|
```ruby
|
191
191
|
class User
|
192
|
-
include
|
192
|
+
include Synamoid::Document
|
193
193
|
|
194
194
|
...
|
195
195
|
|
@@ -203,7 +203,7 @@ class User
|
|
203
203
|
end
|
204
204
|
|
205
205
|
class Address
|
206
|
-
include
|
206
|
+
include Synamoid::Document
|
207
207
|
|
208
208
|
...
|
209
209
|
|
@@ -216,11 +216,11 @@ Contrary to what you'd expect, association information is always contained on th
|
|
216
216
|
|
217
217
|
### Validations
|
218
218
|
|
219
|
-
|
219
|
+
Synamoid bakes in ActiveModel validations, just like ActiveRecord does.
|
220
220
|
|
221
221
|
```ruby
|
222
222
|
class User
|
223
|
-
include
|
223
|
+
include Synamoid::Document
|
224
224
|
|
225
225
|
...
|
226
226
|
|
@@ -233,11 +233,11 @@ To see more usage and examples of ActiveModel validations, check out the [Active
|
|
233
233
|
|
234
234
|
### Callbacks
|
235
235
|
|
236
|
-
|
236
|
+
Synamoid also employs ActiveModel callbacks. Right now, callbacks are defined on ```save```, ```update```, ```destroy```, which allows you to do ```before_``` or ```after_``` any of those.
|
237
237
|
|
238
238
|
```ruby
|
239
239
|
class User
|
240
|
-
include
|
240
|
+
include Synamoid::Document
|
241
241
|
|
242
242
|
...
|
243
243
|
|
@@ -251,7 +251,7 @@ end
|
|
251
251
|
|
252
252
|
### Object Creation
|
253
253
|
|
254
|
-
|
254
|
+
Synamoid's syntax is generally very similar to ActiveRecord's. Making new objects is simple:
|
255
255
|
|
256
256
|
```ruby
|
257
257
|
u = User.new(:name => 'Josh')
|
@@ -289,7 +289,7 @@ And you can also query on associations:
|
|
289
289
|
u.addresses.where(:city => 'Chicago').all
|
290
290
|
```
|
291
291
|
|
292
|
-
But keep in mind
|
292
|
+
But keep in mind Synamoid -- and document-based storage systems in general -- are not drop-in replacements for existing relational databases. The above query does not efficiently perform a conditional join, but instead finds all the user's addresses and naively filters them in Ruby. For large associations this is a performance hit compared to relational database engines.
|
293
293
|
|
294
294
|
You can also limit the number of evaluated records, or select a record from which to start, to support pagination:
|
295
295
|
|
@@ -297,7 +297,7 @@ You can also limit the number of evaluated records, or select a record from whic
|
|
297
297
|
Address.eval_limit(5).start(address) # Only 5 addresses.
|
298
298
|
```
|
299
299
|
|
300
|
-
For large queries that return many rows,
|
300
|
+
For large queries that return many rows, Synamoid can use AWS' support for requesting documents in batches:
|
301
301
|
|
302
302
|
```ruby
|
303
303
|
#Do some maintenance on the entire table without flooding DynamoDB
|
@@ -316,7 +316,7 @@ Address.where(:city => 'Chicago').consistent.all # Find all addresses where t
|
|
316
316
|
|
317
317
|
### Range Finding
|
318
318
|
|
319
|
-
If you have a range index,
|
319
|
+
If you have a range index, Synamoid provides a number of additional other convenience methods to make your life a little easier:
|
320
320
|
|
321
321
|
```ruby
|
322
322
|
User.where("created_at.gt" => DateTime.now - 1.day).all
|
@@ -327,7 +327,7 @@ It also supports .gte and .lte. Turning those into symbols and allowing a Rails
|
|
327
327
|
|
328
328
|
## Concurrency
|
329
329
|
|
330
|
-
|
330
|
+
Synamoid supports basic, ActiveRecord-like optimistic locking on save operations. Simply add a `lock_version` column to your table like so:
|
331
331
|
|
332
332
|
```ruby
|
333
333
|
class MyTable
|
@@ -339,7 +339,7 @@ class MyTable
|
|
339
339
|
end
|
340
340
|
```
|
341
341
|
|
342
|
-
In this example, all saves to `MyTable` will raise an `
|
342
|
+
In this example, all saves to `MyTable` will raise an `Synamoid::Errors::StaleObjectError` if a concurrent process loaded, edited, and saved the same row. Your code should trap this exception, reload the row (so that it will pick up the newest values), and try the save again.
|
343
343
|
|
344
344
|
Calls to `update` and `update!` also increment the `lock_version`, however they do not check the existing value. This guarantees that a update operation will raise an exception in a concurrent save operation, however a save operation will never cause an update to fail. Thus, `update` is useful & safe only for doing atomic operations (e.g. increment a value, add/remove from a set, etc), but should not be used in a read-modify-write pattern.
|
345
345
|
|
@@ -348,22 +348,22 @@ Calls to `update` and `update!` also increment the `lock_version`, however they
|
|
348
348
|
In test environment you will most likely want to clean the database between test runs to keep tests completely isolated. This can be achieved like so
|
349
349
|
|
350
350
|
```ruby
|
351
|
-
module
|
351
|
+
module SynamoidReset
|
352
352
|
def self.all
|
353
|
-
|
353
|
+
Synamoid.adapter.list_tables.each do |table|
|
354
354
|
# Only delete tables in our namespace
|
355
|
-
if table =~ /^#{
|
356
|
-
|
355
|
+
if table =~ /^#{Synamoid::Config.namespace}/
|
356
|
+
Synamoid.adapter.delete_table(table)
|
357
357
|
end
|
358
358
|
end
|
359
|
-
|
359
|
+
Synamoid.adapter.tables.clear
|
360
360
|
# Recreate all tables to avoid unexpected errors
|
361
|
-
|
361
|
+
Synamoid.included_models.each(&:create_table)
|
362
362
|
end
|
363
363
|
end
|
364
364
|
|
365
365
|
# Reduce noise in test output
|
366
|
-
|
366
|
+
Synamoid.logger.level = Logger::FATAL
|
367
367
|
```
|
368
368
|
|
369
369
|
If you're using RSpec you can invoke the above like so:
|
@@ -371,7 +371,7 @@ If you're using RSpec you can invoke the above like so:
|
|
371
371
|
```ruby
|
372
372
|
RSpec.configure do |config|
|
373
373
|
config.before(:each) do
|
374
|
-
|
374
|
+
SynamoidReset.all
|
375
375
|
end
|
376
376
|
end
|
377
377
|
```
|
@@ -380,14 +380,14 @@ In Rails, you may also want to ensure you do not delete non-test data accidental
|
|
380
380
|
|
381
381
|
```ruby
|
382
382
|
raise "Tests should be run in 'test' environment only" if Rails.env != 'test'
|
383
|
-
|
383
|
+
Synamoid.configure do |config|
|
384
384
|
config.namespace = "#{Rails.application.railtie_name}_#{Rails.env}"
|
385
385
|
end
|
386
386
|
```
|
387
387
|
|
388
388
|
## Credits
|
389
389
|
|
390
|
-
|
390
|
+
Synamoid borrows code, structure, and even its name very liberally from the truly amazing [Mongoid](https://github.com/mongoid/mongoid). Without Mongoid to crib from none of this would have been possible, and I hope they don't mind me reusing their very awesome ideas to make DynamoDB just as accessible to the Ruby world as MongoDB.
|
391
391
|
|
392
392
|
Also, without contributors the project wouldn't be nearly as awesome. So many thanks to:
|
393
393
|
|
@@ -429,8 +429,8 @@ Running the tests is fairly simple. You should have an instance of DynamoDB runn
|
|
429
429
|
rake
|
430
430
|
```
|
431
431
|
|
432
|
-
[![Build Status](https://travis-ci.org/
|
433
|
-
[![Coverage Status](https://coveralls.io/repos/
|
432
|
+
[![Build Status](https://travis-ci.org/Synamoid/Synamoid.svg)](https://travis-ci.org/Synamoid/Synamoid)
|
433
|
+
[![Coverage Status](https://coveralls.io/repos/Synamoid/Synamoid/badge.svg?branch=master&service=github)](https://coveralls.io/github/Synamoid/Synamoid?branch=master)
|
434
434
|
|
435
435
|
## Copyright
|
436
436
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: synamoid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Symonds
|
@@ -190,9 +190,8 @@ dependencies:
|
|
190
190
|
- - ">="
|
191
191
|
- !ruby/object:Gem::Version
|
192
192
|
version: '0'
|
193
|
-
description:
|
194
|
-
|
195
|
-
replacement.
|
193
|
+
description: Synamoid is Dynamoid just change only dependency and name to push to
|
194
|
+
rubygem only nothing's mine.
|
196
195
|
email:
|
197
196
|
- peter.boling@gmail.com
|
198
197
|
- brian@stellaservice.com
|
@@ -202,44 +201,9 @@ extra_rdoc_files:
|
|
202
201
|
- LICENSE.txt
|
203
202
|
- README.md
|
204
203
|
files:
|
205
|
-
- ".document"
|
206
|
-
- ".gitignore"
|
207
|
-
- ".rspec"
|
208
|
-
- ".travis.yml"
|
209
|
-
- CHANGELOG.md
|
210
|
-
- Gemfile
|
211
204
|
- LICENSE.txt
|
212
205
|
- README.md
|
213
|
-
|
214
|
-
- dynamoid.gemspec
|
215
|
-
- lib/dynamoid.rb
|
216
|
-
- lib/dynamoid/adapter.rb
|
217
|
-
- lib/dynamoid/adapter_plugin/aws_sdk_v2.rb
|
218
|
-
- lib/dynamoid/associations.rb
|
219
|
-
- lib/dynamoid/associations/association.rb
|
220
|
-
- lib/dynamoid/associations/belongs_to.rb
|
221
|
-
- lib/dynamoid/associations/has_and_belongs_to_many.rb
|
222
|
-
- lib/dynamoid/associations/has_many.rb
|
223
|
-
- lib/dynamoid/associations/has_one.rb
|
224
|
-
- lib/dynamoid/associations/many_association.rb
|
225
|
-
- lib/dynamoid/associations/single_association.rb
|
226
|
-
- lib/dynamoid/components.rb
|
227
|
-
- lib/dynamoid/config.rb
|
228
|
-
- lib/dynamoid/config/options.rb
|
229
|
-
- lib/dynamoid/criteria.rb
|
230
|
-
- lib/dynamoid/criteria/chain.rb
|
231
|
-
- lib/dynamoid/dirty.rb
|
232
|
-
- lib/dynamoid/document.rb
|
233
|
-
- lib/dynamoid/errors.rb
|
234
|
-
- lib/dynamoid/fields.rb
|
235
|
-
- lib/dynamoid/finders.rb
|
236
|
-
- lib/dynamoid/identity_map.rb
|
237
|
-
- lib/dynamoid/indexes.rb
|
238
|
-
- lib/dynamoid/middleware/identity_map.rb
|
239
|
-
- lib/dynamoid/persistence.rb
|
240
|
-
- lib/dynamoid/validations.rb
|
241
|
-
- lib/dynamoid/version.rb
|
242
|
-
homepage: http://github.com/Dynamoid/Dynamoid
|
206
|
+
homepage: http://github.com/Synamoid/Synamoid
|
243
207
|
licenses:
|
244
208
|
- MIT
|
245
209
|
metadata: {}
|
@@ -262,5 +226,5 @@ rubyforge_project:
|
|
262
226
|
rubygems_version: 2.5.1
|
263
227
|
signing_key:
|
264
228
|
specification_version: 4
|
265
|
-
summary:
|
229
|
+
summary: Synamoid is an ORM for Amazon's DynamoDB
|
266
230
|
test_files: []
|
data/.document
DELETED
data/.gitignore
DELETED
@@ -1,67 +0,0 @@
|
|
1
|
-
.project
|
2
|
-
|
3
|
-
# rcov generated
|
4
|
-
coverage
|
5
|
-
|
6
|
-
# rdoc generated
|
7
|
-
rdoc
|
8
|
-
|
9
|
-
# yardoc generated
|
10
|
-
.yardoc
|
11
|
-
/_yardoc/
|
12
|
-
|
13
|
-
# bundler
|
14
|
-
/.bundle/
|
15
|
-
|
16
|
-
# jeweler generated
|
17
|
-
/pkg/
|
18
|
-
|
19
|
-
# Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
|
20
|
-
#
|
21
|
-
# * Create a file at ~/.gitignore
|
22
|
-
# * Include files you want ignored
|
23
|
-
# * Run: git config --global core.excludesfile ~/.gitignore
|
24
|
-
#
|
25
|
-
# After doing this, these files will be ignored in all your git projects,
|
26
|
-
# saving you from having to 'pollute' every project you touch with them
|
27
|
-
#
|
28
|
-
# Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
|
29
|
-
#
|
30
|
-
# For MacOS:
|
31
|
-
#
|
32
|
-
#.DS_Store
|
33
|
-
|
34
|
-
# For TextMate
|
35
|
-
#*.tmproj
|
36
|
-
#tmtags
|
37
|
-
|
38
|
-
# For emacs:
|
39
|
-
#*~
|
40
|
-
#\#*
|
41
|
-
#.\#*
|
42
|
-
|
43
|
-
# For vim:
|
44
|
-
#*.swp
|
45
|
-
|
46
|
-
# For redcar:
|
47
|
-
#.redcar
|
48
|
-
|
49
|
-
# For rubinius:
|
50
|
-
#*.rbc
|
51
|
-
|
52
|
-
# for RVM
|
53
|
-
.rvmrc
|
54
|
-
|
55
|
-
# For RubyMine:
|
56
|
-
/.idea/
|
57
|
-
|
58
|
-
# For Ctags
|
59
|
-
.gemtags
|
60
|
-
.tags
|
61
|
-
.tags_sorted_by_file
|
62
|
-
|
63
|
-
Gemfile.lock
|
64
|
-
/doc/
|
65
|
-
/spec/reports/
|
66
|
-
/tmp/
|
67
|
-
/spec/DynamoDBLocal-latest/
|