dwc-archive 0.9.6 → 1.1.1

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