dwc-archive 0.9.6 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +31 -0
  3. data/.rspec +3 -0
  4. data/.rubocop.yml +23 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +4 -5
  7. data/CHANGELOG +15 -7
  8. data/Gemfile +3 -15
  9. data/LICENSE +1 -1
  10. data/README.md +135 -111
  11. data/Rakefile +13 -54
  12. data/dwc-archive.gemspec +37 -0
  13. data/features/step_definitions/dwc-creator_steps.rb +5 -5
  14. data/features/step_definitions/dwc-reader_steps.rb +47 -28
  15. data/features/support/env.rb +1 -1
  16. data/lib/dwc_archive.rb +121 -0
  17. data/lib/dwc_archive/archive.rb +59 -0
  18. data/lib/dwc_archive/classification_normalizer.rb +382 -0
  19. data/lib/dwc_archive/core.rb +25 -0
  20. data/lib/{dwc-archive → dwc_archive}/errors.rb +2 -0
  21. data/lib/dwc_archive/expander.rb +85 -0
  22. data/lib/{dwc-archive → dwc_archive}/extension.rb +5 -3
  23. data/lib/dwc_archive/generator.rb +90 -0
  24. data/lib/dwc_archive/generator_eml_xml.rb +116 -0
  25. data/lib/dwc_archive/generator_meta_xml.rb +72 -0
  26. data/lib/dwc_archive/gnub_taxon.rb +14 -0
  27. data/lib/dwc_archive/ingester.rb +106 -0
  28. data/lib/dwc_archive/metadata.rb +56 -0
  29. data/lib/dwc_archive/taxon_normalized.rb +23 -0
  30. data/lib/dwc_archive/version.rb +6 -0
  31. data/lib/dwc_archive/xml_reader.rb +89 -0
  32. data/spec/files/file with characters(3).gz b/data/spec/files/file with → characters(3).tar.gz +0 -0
  33. data/spec/files/generator_eml.xml +47 -0
  34. data/spec/files/generator_meta.xml +19 -0
  35. data/spec/lib/classification_normalizer_spec.rb +214 -0
  36. data/spec/lib/core_spec.rb +100 -0
  37. data/spec/lib/darwin_core_spec.rb +249 -0
  38. data/spec/lib/generator_eml_xml_spec.rb +22 -0
  39. data/spec/lib/generator_meta_xml_spec.rb +22 -0
  40. data/spec/lib/generator_spec.rb +124 -0
  41. data/spec/lib/gnub_taxon_spec.rb +32 -0
  42. data/spec/lib/metadata_spec.rb +89 -0
  43. data/spec/lib/taxon_normalized_spec.rb +142 -0
  44. data/spec/lib/xml_reader_spec.rb +11 -11
  45. data/spec/spec_helper.rb +78 -6
  46. metadata +180 -92
  47. data/.rvmrc +0 -1
  48. data/Gemfile.lock +0 -155
  49. data/VERSION +0 -1
  50. data/lib/dwc-archive.rb +0 -95
  51. data/lib/dwc-archive/.expander.rb.swo +0 -0
  52. data/lib/dwc-archive/archive.rb +0 -37
  53. data/lib/dwc-archive/classification_normalizer.rb +0 -424
  54. data/lib/dwc-archive/core.rb +0 -17
  55. data/lib/dwc-archive/expander.rb +0 -80
  56. data/lib/dwc-archive/generator.rb +0 -75
  57. data/lib/dwc-archive/generator_eml_xml.rb +0 -84
  58. data/lib/dwc-archive/generator_meta_xml.rb +0 -50
  59. data/lib/dwc-archive/ingester.rb +0 -101
  60. data/lib/dwc-archive/metadata.rb +0 -42
  61. data/lib/dwc-archive/utf_regex_ruby18.rb +0 -10
  62. data/lib/dwc-archive/xml_reader.rb +0 -64
  63. data/spec/lib/dwc-archive_spec.rb +0 -250
  64. data/spec/spec.opts +0 -1
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a5d4e174cb4ec6df2328fe99abb52b13587c74f22f01efb2a9017db4d9f1d7ba
4
+ data.tar.gz: e341038db2a23282173cf2e4671750739464dca6076f7560694cc40251bdd036
5
+ SHA512:
6
+ metadata.gz: 8b51b82724e21acab76e1763dc2375658080a16dc440c9913fd632aff195a45c34e7bf9446cf5d4afc9fc397c8ee562763ab36532ab5992421e5ed3f2df64273
7
+ data.tar.gz: 04cbcc92c8b565b2c5f8e8bf082d284b65c55520d91f19c16bc63789519ea374f5ed0466c176ce69907a83566caa8efd2f834399f7b57a26801603455cf2b118
@@ -0,0 +1,31 @@
1
+ ## MAC OS
2
+ .DS_Store
3
+
4
+ ## TEXTMATE
5
+ *.tmproj
6
+ tmtags
7
+
8
+ ## EMACS
9
+ *~
10
+ \#*
11
+ .\#*
12
+
13
+ ## VIM
14
+ *.swp
15
+
16
+ ## PROJECT::GENERAL
17
+ coverage
18
+ rdoc
19
+ pkg
20
+ install
21
+ Gemfile.lock
22
+
23
+ ## PROJECT::SPECIFIC
24
+ tags
25
+ bin
26
+ .bundle
27
+ bundle_bin
28
+ Gemfile.lock
29
+ .byebug_history
30
+
31
+
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --format p
2
+ --color
3
+ --require spec_helper
@@ -0,0 +1,23 @@
1
+ AllCops:
2
+ TargetRubyVersion: 2.6
3
+ Exclude:
4
+ - features/**/*
5
+ - .bundle/**/*
6
+ - bundle_bin/**/*
7
+ - lib/dwc_archive/ingester.rb
8
+ - lib/dwc_archive/generator_meta_xml.rb
9
+ - lib/dwc_archive/generator_eml_xml.rb
10
+ - lib/dwc_archive/classification_normalizer.rb
11
+
12
+ Style/StringLiterals:
13
+ EnforcedStyle: double_quotes
14
+
15
+ Layout/DotPosition:
16
+ EnforcedStyle: trailing
17
+
18
+ Metrics/BlockLength:
19
+ Exclude:
20
+ - 'Rakefile'
21
+ - '*.gemspec'
22
+ - '**/*.rake'
23
+ - 'spec/**/*spec.rb'
@@ -0,0 +1 @@
1
+ 2.7.1
@@ -1,14 +1,13 @@
1
1
  rvm:
2
- - 1.9.3
3
- - 2.0.0
2
+ - 2.5
3
+ - 2.6
4
+ - 2.7
4
5
  before_install:
5
6
  - sudo apt-get update
6
- - sudo apt-get install redis-server
7
- bundler_args: --without development
7
+ - gem install bundler
8
8
  script:
9
9
  - bundle exec cucumber
10
10
  - bundle exec rake
11
11
  branches:
12
12
  only:
13
13
  - master
14
-
data/CHANGELOG CHANGED
@@ -1,13 +1,21 @@
1
- 0.9.6 Added support for GNUB DwCA files
1
+ 1.1.0 Update name parser to go-based biodiversity
2
2
 
3
- 0.9.4 Gem dependencies updated, added travis support
3
+ 1.0.1 Cleanup and gems update
4
4
 
5
- 0.9.0 Migrated code to ruby 1.9.3
5
+ 0.9.11 Removed VERSION duplicate
6
6
 
7
- 0.8.3 Updated outdated exception rasing
7
+ 0.9.7 Refactoring and tests improvements
8
8
 
9
- 0.8.2 Removed species info from linnean classification path
9
+ 0.9.6 Added support for GNUB DwCA files
10
10
 
11
- 0.8.1 Linnean classification path is now only for species and infraspecies with canonical forms. It ends with a canonical form of the taxon
11
+ 0.9.4 Gem dependencies updated, added travis support
12
12
 
13
- 0.8.0 Added linnean classification path to normalized data from DwCA. It consists of data associated with clades like 'kingdom', 'order' etc.
13
+ 0.9.0 Migrated code to ruby 1.9.3
14
+
15
+ 0.8.3 Updated outdated exception rasing
16
+
17
+ 0.8.2 Removed species info from linnean classification path
18
+
19
+ 0.8.1 Linnean classification path is now only for species and infraspecies with canonical forms. It ends with a canonical form of the taxon
20
+
21
+ 0.8.0 Added linnean classification path to normalized data from DwCA. It consists of data associated with clades like 'kingdom', 'order' etc.
data/Gemfile CHANGED
@@ -1,17 +1,5 @@
1
- source 'https://rubygems.org'
1
+ # frozen_string_literal: true
2
2
 
3
- gem 'nokogiri', '~> 1.5'
4
- gem 'parsley-store', '~> 0.3.2'
5
- gem 'archive-tar-minitar', '~> 0.5'
3
+ source "https://rubygems.org"
6
4
 
7
- group :development do
8
- gem 'debugger', '~> 1.3'
9
- end
10
-
11
- group :test do
12
- gem 'rspec', '~> 2.13'
13
- gem 'cucumber', '~> 1.3'
14
- gem 'bundler', '~> 1.3'
15
- gem 'jeweler', '~> 1.8'
16
- gem 'jazz_hands', '~> 0.5'
17
- end
5
+ gemspec
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2010-2012 Marine Biological Laboratory
1
+ Copyright (c) 2010-2020 Dmitry Mozzherin
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -3,145 +3,156 @@ Darwin Core Archive
3
3
 
4
4
  [![Gem Version][1]][2]
5
5
  [![Continuous Integration Status][3]][4]
6
- [![Dependency Status][5]][6]
6
+ [![Coverage Status][5]][6]
7
+ [![CodePolice][7]][8]
8
+ [![Dependency Status][9]][10]
7
9
 
8
10
  Darwin Core Archive format is a current standard for information exchange
9
11
  between Global Names Architecture modules. This gem allows to work with
10
12
  Darwin Core Archive data compressed to either zip or tar.gz files.
11
- More information about Darwing Core Archive can be found on a [GBIF page:][7]
13
+ More information about Darwing Core Archive can be found on a [GBIF page:][11]
12
14
 
13
15
  Installation
14
16
  ------------
15
17
 
16
18
  sudo gem install dwc-archive
17
19
 
20
+ ### System Requirements
21
+
22
+ You need [Redis Server][12] and unzip library installed
23
+
24
+
18
25
  Usage
19
26
  -----
20
27
 
21
- require 'rubygems'
22
- require 'dwc-archive'
28
+ ```ruby
29
+ require 'rubygems'
30
+ require 'dwc_archive'
23
31
 
24
- dwc = DarwinCore.new('/path_to_file/archive_file.tar.gz')
25
- dwc.archive.files # the archive file list
26
- dwc.metadata.data # summary of metadata from eml.xml if it exists
27
- dwc.metadata.authors # authors of the archive
28
- dwc.core.data # summary of DarwinCore main file
29
- dwc.core.file_path # path to the DarwinCore main file
30
- dwc.extensions # array of DarwinCore Star extensions
31
- dwc.extensions[0].data # summary for an extension
32
+ dwc = DarwinCore.new('/path_to_file/archive_file.tar.gz')
33
+ dwc.archive.files # the archive file list
34
+ dwc.metadata.data # summary of metadata from eml.xml if it exists
35
+ dwc.metadata.authors # authors of the archive
36
+ dwc.core.data # summary of DarwinCore main file
37
+ dwc.core.file_path # path to the DarwinCore main file
38
+ dwc.extensions # array of DarwinCore Star extensions
39
+ dwc.extensions[0].data # summary for an extension
32
40
 
33
- # read content of the core data file into memory or used with a block
34
- # it returns array of arrays of data
35
- # rows that had a wrong encoding will be collected into errors array
36
- data, errors = dwc.core.read
41
+ # read content of the core data file into memory or used with a block
42
+ # it returns array of arrays of data
43
+ # rows that had a wrong encoding will be collected into errors array
44
+ data, errors = dwc.core.read
37
45
 
38
- # read content using a block, getting back results in sets of 100 rows each
39
- results = []
40
- tail_data, tail_errors = dwc.core.read(100) do |data, errors|
41
- results << [data, errors]
42
- end
43
- results << [tail_data, tail_errors]
46
+ # read content using a block, getting back results in sets of 100 rows each
47
+ results = []
48
+ tail_data, tail_errors = dwc.core.read(100) do |data, errors|
49
+ results << [data, errors]
50
+ end
51
+ results << [tail_data, tail_errors]
44
52
 
45
- # read content of an extension data file into memory
46
- data, errors = dwc.core.extensions[0].read
53
+ # read content of an extension data file into memory
54
+ data, errors = dwc.core.extensions[0].read
47
55
 
48
- # read content of an extension data using block
49
- results = []
50
- tail_data, tail_errors = dwc.core.extensions[0](100) do |data, errors|
51
- results << [data, errors]
52
- end
53
- results << [tail_data, tail_errors]
56
+ # read content of an extension data using block
57
+ results = []
58
+ tail_data, tail_errors = dwc.core.extensions[0](100) do |data, errors|
59
+ results << [data, errors]
60
+ end
61
+ results << [tail_data, tail_errors]
54
62
 
55
- # normalize names in classification collecting together synonyms,
56
- # canonical names, vernacular names and associating paths to taxons
57
- # in a classification distributed as DwCA file
63
+ # normalize names in classification collecting together synonyms,
64
+ # canonical names, vernacular names and associating paths to taxons
65
+ # in a classification distributed as DwCA file
58
66
 
59
- result = dwc.normalize_classification
67
+ result = dwc.normalize_classification
60
68
 
61
- # for a finer control over normalization:
69
+ # for a finer control over normalization:
62
70
 
63
- cn = DarwinCore::ClassificationNormalizer.new(dwc)
64
- cn.normalize
65
- # if you don't want to generate path consisting of canonical forms
66
- # of ancestors to a taxon
67
- cn.normalize(:with_canonical_names => false)
71
+ cn = DarwinCore::ClassificationNormalizer.new(dwc)
72
+ cn.normalize
73
+ # if you don't want to generate path consisting of canonical forms
74
+ # of ancestors to a taxon
75
+ cn.normalize(:with_canonical_names => false)
68
76
 
69
- # if you don't want to ingest information from extensions
70
- cn.normalize(:with_extensions => false)
77
+ # if you don't want to ingest information from extensions
78
+ cn.normalize(:with_extensions => false)
71
79
 
72
- # to get a flat hash of nodes with attached vernacular names and synonyms
73
- normalized_data = cn.normalized_data
80
+ # to get a flat hash of nodes with attached vernacular names and synonyms
81
+ normalized_data = cn.normalized_data
74
82
 
75
- # to get a representation of tree organization as a hash
76
- classification_tree = cn.tree
83
+ # to get a representation of tree organization as a hash
84
+ classification_tree = cn.tree
77
85
 
78
- # to get list of all name strings used as scientific or vernacular names
79
- all_name_strings = cn.name_strings
86
+ # to get list of all name strings used as scientific or vernacular names
87
+ all_name_strings = cn.name_strings
80
88
 
81
- # to get list of errors generated during the normalization
82
- errors = cn.error_names
89
+ # to get list of errors generated during the normalization
90
+ errors = cn.error_names
83
91
 
84
- DarwinCore.clean_all # remove all expanded archives
92
+ DarwinCore.clean_all # remove all expanded archives
93
+ ```
85
94
 
86
95
  Creating a DarwinCore Archive file
87
96
  ----------------------------------
88
97
 
89
- gen = DarwinCore::Generator.new('/tmp/dwc_birches.tar.gz')
90
-
91
- core = [
92
- ["http://rs.tdwg.org/dwc/terms/taxonID",
93
- "http://rs.tdwg.org/dwc/terms/parentNameUsageID",
94
- "http://rs.tdwg.org/dwc/terms/scientificName",
95
- "http://rs.tdwg.org/dwc/terms/taxonRank"],
96
- [1, 0, "Plantae", "kingdom"],
97
- [2, 1, "Betula", "genus"],
98
- [3, 2, "Betula verucosa", "species"]
99
- ]
100
-
101
- vernacular_names = [
102
- ["http://rs.tdwg.org/dwc/terms/TaxonID",
103
- "http://rs.tdwg.org/dwc/terms/vernacularName"],
104
- [1, "Plants"],
105
- [1, "Растения"],
106
- [2, "Birch"],
107
- [2, "Береза"],
108
- [3, "Wheeping Birch"],
109
- [3, "Береза плакучая"]
110
- ]
111
-
112
- eml = {
113
- :id => '1234',
114
- :license => 'http://creativecommons.org/licenses/by-sa/3.0/',
115
- :title => 'Test Classification',
116
- :authors => [
117
- { :first_name => 'John',
118
- :last_name => 'Doe',
119
- :email => 'jdoe@example.com',
120
- :organization => 'Example',
121
- :position => 'Assistant Professor',
122
- :url => 'http://example.org' },
123
- { :first_name => 'Jane',
124
- :last_name => 'Doe',
125
- :email => 'jane@example.com' }
126
- ],
127
- :metadata_providers => [
128
- { :first_name => 'Jim',
129
- :last_name => 'Doe',
130
- :email => 'jimdoe@example.com',
131
- :url => 'http://aggregator.example.org' }],
132
- :abstract => 'test classification',
133
- :citation =>
134
- 'Test classification: Doe John, Doe Jane, Taxnonmy, 10, 1, 2010',
135
- :url => 'http://example.com'
136
- }
137
-
138
- gen.add_core(core, 'core.txt')
139
- gen.add_extension(vernacular_names,
140
- 'vernacular_names.txt',
141
- true, 'http://rs.gbif.org/terms/1.0/VernacularName')
142
- gen.add_meta_xml
143
- gen.add_eml_xml(eml)
144
- gen.pack
98
+ ```ruby
99
+ gen = DarwinCore::Generator.new('/tmp/dwc_birches.tar.gz')
100
+
101
+ core = [
102
+ ["http://rs.tdwg.org/dwc/terms/taxonID",
103
+ "http://rs.tdwg.org/dwc/terms/parentNameUsageID",
104
+ "http://rs.tdwg.org/dwc/terms/scientificName",
105
+ "http://rs.tdwg.org/dwc/terms/taxonRank"],
106
+ [1, 0, "Plantae", "kingdom"],
107
+ [2, 1, "Betula", "genus"],
108
+ [3, 2, "Betula verucosa", "species"]
109
+ ]
110
+
111
+ vernacular_names = [
112
+ ["http://rs.tdwg.org/dwc/terms/TaxonID",
113
+ "http://rs.tdwg.org/dwc/terms/vernacularName"],
114
+ [1, "Plants"],
115
+ [1, "Растения"],
116
+ [2, "Birch"],
117
+ [2, "Береза"],
118
+ [3, "Wheeping Birch"],
119
+ [3, "Береза плакучая"]
120
+ ]
121
+
122
+ eml = {
123
+ :id => '1234',
124
+ :license => 'http://creativecommons.org/licenses/by-sa/3.0/',
125
+ :title => 'Test Classification',
126
+ :authors => [
127
+ { :first_name => 'John',
128
+ :last_name => 'Doe',
129
+ :email => 'jdoe@example.com',
130
+ :organization => 'Example',
131
+ :position => 'Assistant Professor',
132
+ :url => 'http://example.org' },
133
+ { :first_name => 'Jane',
134
+ :last_name => 'Doe',
135
+ :email => 'jane@example.com' }
136
+ ],
137
+ :metadata_providers => [
138
+ { :first_name => 'Jim',
139
+ :last_name => 'Doe',
140
+ :email => 'jimdoe@example.com',
141
+ :url => 'http://aggregator.example.org' }],
142
+ :abstract => 'test classification',
143
+ :citation =>
144
+ 'Test classification: Doe John, Doe Jane, Taxnonmy, 10, 1, 2010',
145
+ :url => 'http://example.com'
146
+ }
147
+
148
+ gen.add_core(core, 'core.txt')
149
+ gen.add_extension(vernacular_names,
150
+ 'vernacular_names.txt',
151
+ true, 'http://rs.gbif.org/terms/1.0/VernacularName')
152
+ gen.add_meta_xml
153
+ gen.add_eml_xml(eml)
154
+ gen.pack
155
+ ```
145
156
 
146
157
  Logging
147
158
  -------
@@ -168,12 +179,25 @@ Note on Patches/Pull Requests
168
179
  Copyright
169
180
  ---------
170
181
 
171
- Copyright (c) 2010-2013 Marine Biological Laboratory. See LICENSE for details.
182
+ Author -- [@dimus][13]
183
+
184
+ Contributors -- [@mjy][14], [@LocoDelAssembly][16]
185
+
186
+ Copyright (c) 2010-2020 [@dimus][15]. See LICENSE for details.
172
187
 
173
188
  [1]: https://badge.fury.io/rb/dwc-archive.png
174
189
  [2]: http://badge.fury.io/rb/dwc-archive
175
190
  [3]: https://secure.travis-ci.org/GlobalNamesArchitecture/dwc-archive.png
176
191
  [4]: http://travis-ci.org/GlobalNamesArchitecture/dwc-archive
177
- [5]: https://gemnasium.com/GlobalNamesArchitecture/dwc-archive.png
178
- [6]: https://gemnasium.com/GlobalNamesArchitecture/dwc-archive
179
- [7]: http://bit.ly/2IxcBA
192
+ [5]: https://coveralls.io/repos/GlobalNamesArchitecture/dwc-archive/badge.png
193
+ [6]: https://coveralls.io/r/GlobalNamesArchitecture/dwc-archive
194
+ [7]: https://codeclimate.com/github/GlobalNamesArchitecture/dwc-archive.png
195
+ [8]: https://codeclimate.com/github/GlobalNamesArchitecture/dwc-archive
196
+ [9]: https://gemnasium.com/GlobalNamesArchitecture/dwc-archive.png
197
+ [10]: https://gemnasium.com/GlobalNamesArchitecture/dwc-archive
198
+ [11]: http://bit.ly/2IxcBA
199
+ [12]: http://redis.io/topics/quickstart
200
+ [13]: https://github.com/dimus
201
+ [14]: https://github.com/mjy
202
+ [15]: http://mbl.edu
203
+ [16]: https://github.com/LocoDelAssembly
data/Rakefile CHANGED
@@ -1,62 +1,21 @@
1
- require 'rubygems'
2
- require 'rake'
1
+ # frozen_string_literal: true
3
2
 
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "dwc-archive"
8
- gem.summary = %Q{Handler of Darwin Core Archive files}
9
- gem.description = 'Darwin Core Archive is the current standard exchange ' +
10
- 'format for GLobal Names Architecture modules. ' +
11
- 'This gem makes it easy to incorporate files in ' +
12
- 'Darwin Core Archive format into a ruby project.'
13
- gem.email = "dmozzherin at gmail dot com"
14
- gem.homepage = "http://github.com/GlobalNamesArchitecture/dwc-archive"
15
- gem.authors = ["Dmitry Mozzherin"]
16
- #gem.add_dependency "fastercsv" if RUBY_VERSION.match /^1.8/
17
- gem.add_dependency 'parsley-store', ">= 0.3.0"
18
- gem.add_development_dependency "rspec", ">= 1.2.9"
19
- gem.add_development_dependency "cucumber", ">= 0"
20
- end
21
- Jeweler::GemcutterTasks.new
22
- rescue LoadError
23
- puts 'Jeweler (or a dependency) not available. ' +
24
- 'Install it with: gem install jeweler'
25
- end
26
-
27
- require 'rspec/core/rake_task'
28
- RSpec::Core::RakeTask.new(:spec) do |spec|
29
- spec.pattern = 'spec/**/*_spec.rb'
30
- end
31
-
32
- RSpec::Core::RakeTask.new(:rcov) do |spec|
33
- spec.pattern = 'spec/**/*_spec.rb'
34
- spec.rcov = true
35
- end
36
-
37
- # task :spec => :check_dependencies
38
-
39
- begin
40
- require 'cucumber/rake/task'
41
- Cucumber::Rake::Task.new(:features)
3
+ require "bundler/gem_tasks"
4
+ require "rspec/core/rake_task"
5
+ require "cucumber/rake/task"
42
6
 
43
- task :features => :check_dependencies
44
- rescue LoadError
45
- task :features do
46
- abort 'Cucumber is not available. In order to run features, ' +
47
- 'you must: sudo gem install cucumber'
48
- end
7
+ RSpec::Core::RakeTask.new(:rspec) do |rspec|
8
+ rspec.pattern = "spec/**/*_spec.rb"
49
9
  end
50
10
 
51
- desc 'Run an IRB session with CSL loaded'
52
- task :irb, [:script] do |t, args|
53
- ARGV.clear
11
+ Cucumber::Rake::Task.new(:features)
54
12
 
55
- require 'irb'
56
- require_relative 'lib/dwc-archive'
13
+ # task rspec: :check_dependencies
14
+ task features: :check_dependencies
57
15
 
58
- IRB.conf[:SCRIPT] = args.script
59
- IRB.start
16
+ desc "open an irb session preloaded with this library"
17
+ task :console do
18
+ sh "irb -I lib -I extra -r dwc_archive.rb"
60
19
  end
61
20
 
62
- task :default => :spec
21
+ task default: :rspec