lmdb 0.6 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/ext/lmdb_ext/extconf.rb +7 -3
  3. data/ext/lmdb_ext/lmdb_ext.c +126 -113
  4. data/lib/lmdb/version.rb +1 -1
  5. data/lmdb.gemspec +11 -9
  6. data/{ext/lmdb_ext → vendor/libraries}/liblmdb/.gitignore +8 -0
  7. data/{ext/lmdb_ext → vendor/libraries}/liblmdb/COPYRIGHT +1 -1
  8. data/vendor/libraries/liblmdb/Doxyfile +1631 -0
  9. data/vendor/libraries/liblmdb/Makefile +118 -0
  10. data/vendor/libraries/liblmdb/intro.doc +192 -0
  11. data/{ext/lmdb_ext → vendor/libraries}/liblmdb/lmdb.h +161 -61
  12. data/{ext/lmdb_ext → vendor/libraries}/liblmdb/mdb.c +3244 -1302
  13. data/vendor/libraries/liblmdb/mdb_copy.1 +61 -0
  14. data/vendor/libraries/liblmdb/mdb_copy.c +84 -0
  15. data/vendor/libraries/liblmdb/mdb_drop.1 +40 -0
  16. data/vendor/libraries/liblmdb/mdb_drop.c +135 -0
  17. data/vendor/libraries/liblmdb/mdb_dump.1 +81 -0
  18. data/vendor/libraries/liblmdb/mdb_dump.c +319 -0
  19. data/vendor/libraries/liblmdb/mdb_load.1 +84 -0
  20. data/vendor/libraries/liblmdb/mdb_load.c +492 -0
  21. data/vendor/libraries/liblmdb/mdb_stat.1 +70 -0
  22. data/vendor/libraries/liblmdb/mdb_stat.c +264 -0
  23. data/{ext/lmdb_ext → vendor/libraries}/liblmdb/midl.c +66 -5
  24. data/{ext/lmdb_ext → vendor/libraries}/liblmdb/midl.h +19 -5
  25. data/vendor/libraries/liblmdb/mtest.c +177 -0
  26. data/vendor/libraries/liblmdb/mtest2.c +124 -0
  27. data/vendor/libraries/liblmdb/mtest3.c +133 -0
  28. data/vendor/libraries/liblmdb/mtest4.c +168 -0
  29. data/vendor/libraries/liblmdb/mtest5.c +135 -0
  30. data/vendor/libraries/liblmdb/mtest6.c +141 -0
  31. data/vendor/libraries/liblmdb/sample-bdb.txt +73 -0
  32. data/vendor/libraries/liblmdb/sample-mdb.txt +62 -0
  33. data/vendor/libraries/liblmdb/tooltag +27 -0
  34. metadata +44 -24
  35. data/.gitignore +0 -15
  36. data/.travis.yml +0 -14
  37. data/ext/lmdb_ext/liblmdb/CHANGES +0 -112
  38. /data/{ext/lmdb_ext → vendor/libraries}/liblmdb/LICENSE +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2eac165bb0261c0af6813f16df9b725b2ca2a63f4c5de98734473d9976930735
4
- data.tar.gz: 3aa0562060e4586dd7c7a44e795adc1449f489f57634787ef5e6480abbd49a48
3
+ metadata.gz: ce93aeb587bfdacbda4c767a85fc71d7207707cb3ac8f11a614bd6b9478a6c5d
4
+ data.tar.gz: 9ae5404da5dccaeac5be828f3ea3710b81c2f4942642370d706b89b7d2183806
5
5
  SHA512:
6
- metadata.gz: 22cc9f78002a05aa25fba212e4d3e3e97566ed7a9bd2e0c84996297398131b5afd57da0e1510a27086ac4b1938401d1369393f9b0515bdd044856109510c6432
7
- data.tar.gz: eea983ccb0638bed2dbcfcd3e2ea76271072ea91d259b95e392d505c26f184c351f89ae6076025b93f47bfec3e42add3ec41055e5edb67bee5bfec2e8e341a80
6
+ metadata.gz: '038bc6f20a16aa7ef463e5e6bdd25c4db7529aa0c261582890a0e3171c5c2203d124ba1bb281a88852eaf09ad125636ca1affff3560bb4dd7daeab8eeb894d45'
7
+ data.tar.gz: c4eb231408c47a79054d52055ac3c4b1a3b5f8d02937aabddc12fb854ed3f5eb4874db9aa73434aeb320365c74538fa896a39a534fa0014e85691f1a87b17fab
@@ -5,10 +5,14 @@ $CFLAGS << ' -fdeclspec' if /darwin/.match? RUBY_PLATFORM
5
5
 
6
6
  # Embed lmdb if we cannot find it
7
7
  if enable_config("bundled-lmdb", false) || !(find_header('lmdb.h') && have_library('lmdb', 'mdb_env_create'))
8
- $INCFLAGS << " -I$(srcdir)/liblmdb"
8
+ lmdbpath = "../../vendor/libraries/liblmdb"
9
+ $INCFLAGS << " -I$(srcdir)/#{lmdbpath}"
9
10
  $VPATH ||= []
10
- $VPATH << "$(srcdir)/liblmdb"
11
- $srcs = Dir.glob("#{$srcdir}/{,liblmdb/}*.c").map {|n| File.basename(n) }
11
+ $VPATH << "$(srcdir)/#{lmdbpath}"
12
+ # XXX this is a sketchy, sketchy way to do this
13
+ $srcs = Dir.glob("#{$srcdir}/{#{lmdbpath}/{mdb,midl}.c,*.c}").map do |n|
14
+ File.basename(n)
15
+ end
12
16
  end
13
17
 
14
18
  have_header 'limits.h'
@@ -38,21 +38,21 @@ static void check(int code) {
38
38
  }
39
39
 
40
40
  static void transaction_free(Transaction* transaction) {
41
- if (transaction->txn && !NIL_P(transaction->txn)) {
42
- //int id = (int)mdb_txn_id(transaction->txn);
43
- //rb_warn(sprintf("Memory leak: Garbage collecting active transaction %d", id));
44
- rb_warn("Memory leak: Garbage collecting active transaction");
45
- // transaction_abort(transaction);
46
- // mdb_txn_abort(transaction->txn);
47
- }
48
- free(transaction);
41
+ if (transaction->txn) {
42
+ //int id = (int)mdb_txn_id(transaction->txn);
43
+ //rb_warn(sprintf("Memory leak: Garbage collecting active transaction %d", id));
44
+ rb_warn("Memory leak: Garbage collecting active transaction");
45
+ // transaction_abort(transaction);
46
+ // mdb_txn_abort(transaction->txn);
47
+ }
48
+ free(transaction);
49
49
  }
50
50
 
51
51
  static void transaction_mark(Transaction* transaction) {
52
- rb_gc_mark(transaction->parent);
53
- rb_gc_mark(transaction->child);
54
- rb_gc_mark(transaction->env);
55
- rb_gc_mark(transaction->cursors);
52
+ rb_gc_mark(transaction->parent);
53
+ rb_gc_mark(transaction->child);
54
+ rb_gc_mark(transaction->env);
55
+ rb_gc_mark(transaction->cursors);
56
56
  }
57
57
 
58
58
  /**
@@ -197,7 +197,8 @@ static void transaction_finish(VALUE self, int commit) {
197
197
  // no more active read-write transaction; unset the registry
198
198
  if (!(transaction->flags & MDB_RDONLY) && !transaction->parent) {
199
199
  ENVIRONMENT(transaction->env, env);
200
- env->rw_txn_thread = NULL;
200
+ // maybe this should be Qnil, i dunno
201
+ env->rw_txn_thread = (VALUE)NULL;
201
202
  }
202
203
 
203
204
  // now set the active transaction to the parent, if there is one
@@ -296,8 +297,6 @@ static VALUE with_transaction(VALUE venv, VALUE(*fn)(VALUE), VALUE arg, int flag
296
297
  if (vparent && !NIL_P(vparent))
297
298
  Data_Get_Struct(vparent, Transaction, tparent);
298
299
 
299
- // rb_warn("fart lol");
300
-
301
300
  // XXX note this is a cursed goto loop that could almost certainly
302
301
  // be rewritten as a do-while
303
302
  retry:
@@ -600,47 +599,50 @@ static int environment_options(VALUE key, VALUE value, EnvironmentOptions* optio
600
599
  * end
601
600
  */
602
601
  static VALUE environment_new(int argc, VALUE *argv, VALUE klass) {
603
- VALUE path, option_hash;
602
+ VALUE path, option_hash;
604
603
 
605
604
  #ifdef RB_SCAN_ARGS_KEYWORDS
606
- rb_scan_args_kw(RB_SCAN_ARGS_LAST_HASH_KEYWORDS,
607
- argc, argv, "1:", &path, &option_hash);
605
+ rb_scan_args_kw(RB_SCAN_ARGS_LAST_HASH_KEYWORDS,
606
+ argc, argv, "1:", &path, &option_hash);
608
607
  #else
609
- rb_scan_args(argc, argv, "1:", &path, &option_hash);
608
+ rb_scan_args(argc, argv, "1:", &path, &option_hash);
610
609
  #endif
611
610
 
612
- EnvironmentOptions options = {
613
- .flags = MDB_NOTLS,
614
- .maxreaders = -1,
615
- .maxdbs = 128,
616
- .mapsize = 0,
617
- .mode = 0755,
618
- };
619
- if (!NIL_P(option_hash))
620
- rb_hash_foreach(option_hash, environment_options, (VALUE)&options);
621
-
622
- MDB_env* env;
623
- check(mdb_env_create(&env));
624
-
625
- Environment* environment;
626
- VALUE venv = Data_Make_Struct(cEnvironment, Environment, environment_mark, environment_free, environment);
627
- environment->env = env;
628
- environment->thread_txn_hash = rb_hash_new();
629
- environment->txn_thread_hash = rb_hash_new();
630
-
631
- if (options.maxreaders > 0)
632
- check(mdb_env_set_maxreaders(env, options.maxreaders));
633
- if (options.mapsize > 0)
634
- check(mdb_env_set_mapsize(env, options.mapsize));
635
-
636
- check(mdb_env_set_maxdbs(env, options.maxdbs <= 0 ? 1 : options.maxdbs));
637
- VALUE expanded_path = rb_file_expand_path(path, Qnil);
638
- check(mdb_env_open(env, StringValueCStr(expanded_path), options.flags, options.mode));
611
+ EnvironmentOptions options = {
612
+ .flags = MDB_NOTLS,
613
+ .maxreaders = -1,
614
+ .maxdbs = 128,
615
+ .mapsize = 0,
616
+ .mode = 0755,
617
+ };
618
+ if (!NIL_P(option_hash))
619
+ rb_hash_foreach(option_hash, (int (*)(ANYARGS))environment_options,
620
+ (VALUE)&options);
621
+
622
+ MDB_env* env;
623
+ check(mdb_env_create(&env));
624
+
625
+ Environment* environment;
626
+ VALUE venv = Data_Make_Struct(cEnvironment, Environment, environment_mark,
627
+ environment_free, environment);
628
+ environment->env = env;
629
+ environment->thread_txn_hash = rb_hash_new();
630
+ environment->txn_thread_hash = rb_hash_new();
639
631
 
640
- if (rb_block_given_p())
641
- return rb_ensure(rb_yield, venv, environment_close, venv);
632
+ if (options.maxreaders > 0)
633
+ check(mdb_env_set_maxreaders(env, options.maxreaders));
634
+ if (options.mapsize > 0)
635
+ check(mdb_env_set_mapsize(env, options.mapsize));
642
636
 
643
- return venv;
637
+ check(mdb_env_set_maxdbs(env, options.maxdbs <= 0 ? 1 : options.maxdbs));
638
+ VALUE expanded_path = rb_file_expand_path(path, Qnil);
639
+ check(mdb_env_open(env, StringValueCStr(expanded_path), options.flags,
640
+ options.mode));
641
+
642
+ if (rb_block_given_p())
643
+ return rb_ensure(rb_yield, venv, environment_close, venv);
644
+
645
+ return venv;
644
646
  }
645
647
 
646
648
  /**
@@ -877,32 +879,35 @@ static void database_mark(Database* database) {
877
879
  * transaction or a read-only environment.
878
880
  */
879
881
  static VALUE environment_database(int argc, VALUE *argv, VALUE self) {
880
- ENVIRONMENT(self, environment);
881
- if (!active_txn(self))
882
- return call_with_transaction(self, self, "database", argc, argv, 0);
882
+ ENVIRONMENT(self, environment);
883
+ if (!active_txn(self))
884
+ return call_with_transaction(self, self, "database", argc, argv, 0);
883
885
 
884
- VALUE name, option_hash;
886
+ VALUE name, option_hash;
885
887
  #ifdef RB_SCAN_ARGS_KEYWORDS
886
- rb_scan_args_kw(RB_SCAN_ARGS_KEYWORDS,
887
- argc, argv, "01:", &name, &option_hash);
888
+ rb_scan_args_kw(RB_SCAN_ARGS_KEYWORDS,
889
+ argc, argv, "01:", &name, &option_hash);
888
890
  #else
889
- rb_scan_args(argc, argv, "01:", &name, &option_hash);
891
+ rb_scan_args(argc, argv, "01:", &name, &option_hash);
890
892
  #endif
891
893
 
892
894
 
893
- int flags = 0;
894
- if (!NIL_P(option_hash))
895
- rb_hash_foreach(option_hash, database_flags, (VALUE)&flags);
895
+ int flags = 0;
896
+ if (!NIL_P(option_hash))
897
+ rb_hash_foreach(option_hash, (int (*)(ANYARGS))database_flags,
898
+ (VALUE)&flags);
896
899
 
897
- MDB_dbi dbi;
898
- check(mdb_dbi_open(need_txn(self), NIL_P(name) ? 0 : StringValueCStr(name), flags, &dbi));
900
+ MDB_dbi dbi;
901
+ check(mdb_dbi_open(need_txn(self), NIL_P(name) ? 0 : StringValueCStr(name),
902
+ flags, &dbi));
899
903
 
900
- Database* database;
901
- VALUE vdb = Data_Make_Struct(cDatabase, Database, database_mark, free, database);
902
- database->dbi = dbi;
903
- database->env = self;
904
+ Database* database;
905
+ VALUE vdb = Data_Make_Struct(cDatabase, Database, database_mark, free,
906
+ database);
907
+ database->dbi = dbi;
908
+ database->env = self;
904
909
 
905
- return vdb;
910
+ return vdb;
906
911
  }
907
912
 
908
913
  /**
@@ -1064,33 +1069,34 @@ static VALUE database_get(VALUE self, VALUE vkey) {
1064
1069
  * data.
1065
1070
  */
1066
1071
  static VALUE database_put(int argc, VALUE *argv, VALUE self) {
1067
- DATABASE(self, database);
1068
- if (!active_txn(database->env))
1069
- return call_with_transaction(database->env, self, "put", argc, argv, 0);
1072
+ DATABASE(self, database);
1073
+ if (!active_txn(database->env))
1074
+ return call_with_transaction(database->env, self, "put", argc, argv, 0);
1070
1075
 
1071
- VALUE vkey, vval, option_hash = Qnil;
1076
+ VALUE vkey, vval, option_hash = Qnil;
1072
1077
  #ifdef RB_SCAN_ARGS_KEYWORDS
1073
- rb_scan_args_kw(RB_SCAN_ARGS_LAST_HASH_KEYWORDS,
1074
- argc, argv, "20:", &vkey, &vval, &option_hash);
1078
+ rb_scan_args_kw(RB_SCAN_ARGS_LAST_HASH_KEYWORDS,
1079
+ argc, argv, "20:", &vkey, &vval, &option_hash);
1075
1080
  #else
1076
- rb_scan_args(argc, argv, "20:", &vkey, &vval, &option_hash);
1081
+ rb_scan_args(argc, argv, "20:", &vkey, &vval, &option_hash);
1077
1082
  #endif
1078
1083
 
1079
- int flags = 0;
1080
- if (!NIL_P(option_hash))
1081
- rb_hash_foreach(option_hash, database_put_flags, (VALUE)&flags);
1084
+ int flags = 0;
1085
+ if (!NIL_P(option_hash))
1086
+ rb_hash_foreach(option_hash, (int (*)(ANYARGS))database_put_flags,
1087
+ (VALUE)&flags);
1082
1088
 
1083
- vkey = StringValue(vkey);
1084
- vval = StringValue(vval);
1089
+ vkey = StringValue(vkey);
1090
+ vval = StringValue(vval);
1085
1091
 
1086
- MDB_val key, value;
1087
- key.mv_size = RSTRING_LEN(vkey);
1088
- key.mv_data = RSTRING_PTR(vkey);
1089
- value.mv_size = RSTRING_LEN(vval);
1090
- value.mv_data = RSTRING_PTR(vval);
1092
+ MDB_val key, value;
1093
+ key.mv_size = RSTRING_LEN(vkey);
1094
+ key.mv_data = RSTRING_PTR(vkey);
1095
+ value.mv_size = RSTRING_LEN(vval);
1096
+ value.mv_data = RSTRING_PTR(vval);
1091
1097
 
1092
- check(mdb_put(need_txn(database->env), database->dbi, &key, &value, flags));
1093
- return Qnil;
1098
+ check(mdb_put(need_txn(database->env), database->dbi, &key, &value, flags));
1099
+ return Qnil;
1094
1100
  }
1095
1101
 
1096
1102
  /**
@@ -1454,31 +1460,32 @@ static VALUE cursor_get(VALUE self) {
1454
1460
  * data.
1455
1461
  */
1456
1462
  static VALUE cursor_put(int argc, VALUE* argv, VALUE self) {
1457
- CURSOR(self, cursor);
1463
+ CURSOR(self, cursor);
1458
1464
 
1459
- VALUE vkey, vval, option_hash;
1465
+ VALUE vkey, vval, option_hash;
1460
1466
  #ifdef RB_SCAN_ARGS_KEYWORDS
1461
- rb_scan_args_kw(RB_SCAN_ARGS_LAST_HASH_KEYWORDS,
1462
- argc, argv, "2:", &vkey, &vval, &option_hash);
1467
+ rb_scan_args_kw(RB_SCAN_ARGS_LAST_HASH_KEYWORDS,
1468
+ argc, argv, "2:", &vkey, &vval, &option_hash);
1463
1469
  #else
1464
- rb_scan_args(argc, argv, "2:", &vkey, &vval, &option_hash);
1470
+ rb_scan_args(argc, argv, "2:", &vkey, &vval, &option_hash);
1465
1471
  #endif
1466
1472
 
1467
- int flags = 0;
1468
- if (!NIL_P(option_hash))
1469
- rb_hash_foreach(option_hash, cursor_put_flags, (VALUE)&flags);
1473
+ int flags = 0;
1474
+ if (!NIL_P(option_hash))
1475
+ rb_hash_foreach(option_hash, (int (*)(ANYARGS))cursor_put_flags,
1476
+ (VALUE)&flags);
1470
1477
 
1471
- vkey = StringValue(vkey);
1472
- vval = StringValue(vval);
1478
+ vkey = StringValue(vkey);
1479
+ vval = StringValue(vval);
1473
1480
 
1474
- MDB_val key, value;
1475
- key.mv_size = RSTRING_LEN(vkey);
1476
- key.mv_data = RSTRING_PTR(vkey);
1477
- value.mv_size = RSTRING_LEN(vval);
1478
- value.mv_data = RSTRING_PTR(vval);
1481
+ MDB_val key, value;
1482
+ key.mv_size = RSTRING_LEN(vkey);
1483
+ key.mv_data = RSTRING_PTR(vkey);
1484
+ value.mv_size = RSTRING_LEN(vval);
1485
+ value.mv_data = RSTRING_PTR(vval);
1479
1486
 
1480
- check(mdb_cursor_put(cursor->cur, &key, &value, flags));
1481
- return Qnil;
1487
+ check(mdb_cursor_put(cursor->cur, &key, &value, flags));
1488
+ return Qnil;
1482
1489
  }
1483
1490
 
1484
1491
  #define METHOD cursor_delete_flags
@@ -1496,22 +1503,23 @@ static VALUE cursor_put(int argc, VALUE* argv, VALUE self) {
1496
1503
  * if the database was opened with +:dupsort+.
1497
1504
  */
1498
1505
  static VALUE cursor_delete(int argc, VALUE *argv, VALUE self) {
1499
- CURSOR(self, cursor);
1506
+ CURSOR(self, cursor);
1500
1507
 
1501
- VALUE option_hash;
1508
+ VALUE option_hash;
1502
1509
  #ifdef RB_SCAN_ARGS_KEYWORDS
1503
- rb_scan_args_kw(RB_SCAN_ARGS_LAST_HASH_KEYWORDS,
1504
- argc, argv, ":", &option_hash);
1510
+ rb_scan_args_kw(RB_SCAN_ARGS_LAST_HASH_KEYWORDS,
1511
+ argc, argv, ":", &option_hash);
1505
1512
  #else
1506
- rb_scan_args(argc, argv, ":", &option_hash);
1513
+ rb_scan_args(argc, argv, ":", &option_hash);
1507
1514
  #endif
1508
1515
 
1509
- int flags = 0;
1510
- if (!NIL_P(option_hash))
1511
- rb_hash_foreach(option_hash, cursor_delete_flags, (VALUE)&flags);
1516
+ int flags = 0;
1517
+ if (!NIL_P(option_hash))
1518
+ rb_hash_foreach(option_hash, (int (*)(ANYARGS))cursor_delete_flags,
1519
+ (VALUE)&flags);
1512
1520
 
1513
- check(mdb_cursor_del(cursor->cur, flags));
1514
- return Qnil;
1521
+ check(mdb_cursor_del(cursor->cur, flags));
1522
+ return Qnil;
1515
1523
  }
1516
1524
 
1517
1525
  /**
@@ -1562,7 +1570,8 @@ void Init_lmdb_ext() {
1562
1570
  * A general class of exceptions raised within the LMDB gem.
1563
1571
  */
1564
1572
  cError = rb_define_class_under(mLMDB, "Error", rb_eRuntimeError);
1565
- #define ERROR(name) cError_##name = rb_define_class_under(cError, #name, cError);
1573
+ #define ERROR(name) \
1574
+ cError_##name = rb_define_class_under(cError, #name, cError);
1566
1575
  #include "errors.h"
1567
1576
  #undef ERROR
1568
1577
 
@@ -1591,6 +1600,7 @@ void Init_lmdb_ext() {
1591
1600
  * env.close
1592
1601
  */
1593
1602
  cEnvironment = rb_define_class_under(mLMDB, "Environment", rb_cObject);
1603
+ rb_undef_alloc_func(cEnvironment);
1594
1604
  rb_define_singleton_method(cEnvironment, "new", environment_new, -1);
1595
1605
  rb_define_method(cEnvironment, "database", environment_database, -1);
1596
1606
  rb_define_method(cEnvironment, "active_txn", environment_active_txn, 0);
@@ -1632,6 +1642,7 @@ void Init_lmdb_ext() {
1632
1642
  * env.close
1633
1643
  */
1634
1644
  cDatabase = rb_define_class_under(mLMDB, "Database", rb_cObject);
1645
+ rb_undef_alloc_func(cDatabase);
1635
1646
  rb_undef_method(rb_singleton_class(cDatabase), "new");
1636
1647
  rb_define_method(cDatabase, "stat", database_stat, 0);
1637
1648
  rb_define_method(cDatabase, "flags", database_get_flags, 0);
@@ -1703,6 +1714,7 @@ void Init_lmdb_ext() {
1703
1714
  * #=> storage.
1704
1715
  */
1705
1716
  cTransaction = rb_define_class_under(mLMDB, "Transaction", rb_cObject);
1717
+ rb_undef_alloc_func(cTransaction);
1706
1718
  rb_undef_method(rb_singleton_class(cTransaction), "new");
1707
1719
  rb_define_method(cTransaction, "commit", transaction_commit, 0);
1708
1720
  rb_define_method(cTransaction, "abort", transaction_abort, 0);
@@ -1736,6 +1748,7 @@ void Init_lmdb_ext() {
1736
1748
  * end
1737
1749
  */
1738
1750
  cCursor = rb_define_class_under(mLMDB, "Cursor", rb_cObject);
1751
+ rb_undef_alloc_func(cCursor);
1739
1752
  rb_undef_method(rb_singleton_class(cCursor), "new");
1740
1753
  rb_define_method(cCursor, "close", cursor_close, 0);
1741
1754
  rb_define_method(cCursor, "get", cursor_get, 0);
data/lib/lmdb/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module LMDB
2
- VERSION = '0.6'.freeze
2
+ VERSION = '0.6.2'.freeze
3
3
  end
data/lmdb.gemspec CHANGED
@@ -1,3 +1,4 @@
1
+
1
2
  # -*- encoding: utf-8 -*-
2
3
  require File.dirname(__FILE__) + '/lib/lmdb/version'
3
4
  require 'date'
@@ -9,19 +10,20 @@ Gem::Specification.new do |s|
9
10
  s.date = Date.today.to_s
10
11
  s.licenses = ['MIT']
11
12
  s.summary = 'Ruby bindings to Lightning MDB'
12
- s.email = 'mail@daniel-mendler.de'
13
- s.homepage = 'https://github.com/minad/lmdb'
13
+ s.email = 'code@doriantaylor.com'
14
+ s.homepage = 'https://github.com/doriantaylor/rb-lmdb'
14
15
  s.description = 'lmdb is a Ruby binding to OpenLDAP Lightning MDB.'
15
- s.authors = ['Daniel Mendler']
16
+ s.authors = ['Daniel Mendler', 'Dorian Taylor']
16
17
  s.extensions = Dir['ext/**/extconf.rb']
17
18
 
18
- s.files = `git ls-files`.split("\n")
19
+ s.files = `git ls-files --recurse-submodules -- *`.split("\n")
19
20
  s.test_files = `git ls-files -- spec/*`.split("\n")
20
21
  s.require_paths = ['lib']
21
22
 
22
- s.required_ruby_version = ">= 2.4"
23
- s.add_development_dependency 'rake', "~> 13.0"
24
- s.add_development_dependency 'rake-compiler', '~> 1.1'
25
- s.add_development_dependency 'rspec', "~> 3.0"
26
- s.add_development_dependency 'ruby_memcheck', "~> 1.0"
23
+ s.required_ruby_version = '>= 2.7'
24
+
25
+ s.add_development_dependency 'rake', '~> 13'
26
+ s.add_development_dependency 'rake-compiler', '~> 1.2'
27
+ s.add_development_dependency 'rspec', '~> 3'
28
+ s.add_development_dependency 'ruby_memcheck', '~> 2'
27
29
  end
@@ -3,12 +3,20 @@ mtest[23456]
3
3
  testdb
4
4
  mdb_copy
5
5
  mdb_stat
6
+ mdb_dump
7
+ mdb_load
8
+ mdb_drop
9
+ *.lo
6
10
  *.[ao]
7
11
  *.so
12
+ *.exe
8
13
  *[~#]
9
14
  *.bak
10
15
  *.orig
11
16
  *.rej
17
+ *.gcov
18
+ *.gcda
19
+ *.gcno
12
20
  core
13
21
  core.*
14
22
  valgrind.*
@@ -1,4 +1,4 @@
1
- Copyright 2011-2014 Howard Chu, Symas Corp.
1
+ Copyright 2011-2021 Howard Chu, Symas Corp.
2
2
  All rights reserved.
3
3
 
4
4
  Redistribution and use in source and binary forms, with or without