active_triples-local_name 0.1.0 → 0.5.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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MTcyOTBhODdmODAzNWQ5OWJiYjFlOWY3YTA4ZDRmZTBlNDIwYzI3MA==
4
+ OThlYTNlODZlOGMwNTBiZGE0ZjYwOWZiNDE1Njc2NjViNjljNjgyNw==
5
5
  data.tar.gz: !binary |-
6
- MTRjNzcwNWQ3NjhkMjQzOWRlZTcyMDVkNTE3ZDFmZDA0NjUzNjM1Nw==
6
+ MGRlMjgyMmE1ZDMxOGRmN2ZjODA2MmNlYTcwYTBlN2FjMjc3NjFmNw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZTRmYzc4NmEyMjgyYzg2MDE5MWNkMWVlZWJjZjExMzFmMWY4YzBkYTEyZWQ0
10
- NTg4MTYyZGNlYmMzZGQyYzJmYjI1MDQ5YWNiZjMzMThiNTU5MmRiMGFmMGIx
11
- NTI5YTVhNWQ5NDgwMzgyY2ViZGU2YmVjMWExOGVlOTIwOGVmNTA=
9
+ NmY4NjEzZDZmZTM0OWRjNGEwMTZmZTc2NzQ2YTMzZDAwZjYzOWFmZDljMWMw
10
+ ZDAwNWM0OGQ4ODU4MWVjNmRmNzk1NTU4MmJkNTVjOWRiM2VmMDdkMjE5ODRk
11
+ MGI1ODAxYmE2NDE3YTQ4YTRjZjk2YTNkNzJkNjVlYzllZGY4YzE=
12
12
  data.tar.gz: !binary |-
13
- NjBkNDc3NTM4MjMwODlmYTk1M2RlNDJkMmVkMTVkNmJkNjllY2M2YzYzY2Jk
14
- ZTUxMWIwMTc2MzkwNmIyYTdhMTVmMTIxODJjMDhlM2I3ZDEwMmViOGVlMGJm
15
- MjhiNWI2NjBmYjYwZjU2MGEwZjc1OTM5NWUxMDk2ZTFmNGNjMzQ=
13
+ Mjc1ZTZkZGQxYTQyZTk2ZTEyMzBmMGI1NTA2ZmRjNTM1NDZkYjIxZDIzYjIy
14
+ ODg2ZjgzYmYwOGEyZTRiN2UxZGVhYWI3ODg4YTFjOWFkNmY2MzBhOTllOTRl
15
+ MWRlYzQwNTUwMmUxOWJkNWFmZWQyZjliYmM1YWU0NGQwMWM1MGQ=
data/.coveralls.yml ADDED
@@ -0,0 +1 @@
1
+ service_name: travis-ci
data/.gitignore CHANGED
@@ -1,7 +1,27 @@
1
- .bundle/
2
1
  log/*.log
3
- pkg/
4
- Gemfile.lock
5
- tmp/*
6
2
  .sass-cache
3
+ *.gem
4
+ *.rbc
5
+ .bundle
6
+ .config
7
+ .yardoc
8
+ Gemfile.lock
9
+ InstalledFiles
10
+ _yardoc
11
+ coverage
12
+ doc/
13
+ lib/bundler/man
14
+ pkg
15
+ rdoc
16
+ spec/reports
17
+ test/tmp
18
+ test/version_tmp
19
+ tmp
20
+ *.bundle
21
+ *.so
22
+ *.o
23
+ *.a
24
+ mkmf.log
7
25
  .idea
26
+ .ruby-gemset
27
+ .ruby-version
data/.travis.yml CHANGED
@@ -1,4 +1,4 @@
1
- anguage: ruby
1
+ language: ruby
2
2
  bundler_args: --without debug
3
3
  script: "bundle exec rspec spec"
4
4
  rvm:
data/Gemfile CHANGED
@@ -2,7 +2,3 @@ source "https://rubygems.org"
2
2
 
3
3
  gemspec
4
4
 
5
- # GETTING FROM GEMFILE UNTIL ActiveTriples master CODE IS RELEASED (>0.4.0), THEN MOVE THIS BACK TO *.gemspec FILE
6
- # Use active-triple for handling of triple persistence
7
- gem 'active-triples', :git => 'git@github.com:no-reply/ActiveTriples.git', :branch => 'master'
8
-
data/README.md CHANGED
@@ -1,5 +1,8 @@
1
1
  # ActiveTriples::LocalName
2
2
 
3
+ [![Build Status](https://travis-ci.org/ActiveTriples/active_triples-local_name.png?branch=master)](https://travis-ci.org/ActiveTriples/active_triples-local_name)
4
+ [![Coverage Status](https://coveralls.io/repos/ActiveTriples/active_triples-local_name/badge.png?branch=master)](https://coveralls.io/r/ActiveTriples/active_triples-local_name?branch=master)
5
+ [![Gem Version](https://badge.fury.io/rb/active_triples-local_name.svg)](http://badge.fury.io/rb/active_triples-local_name)
3
6
 
4
7
  Provides utilities for working with local names under the [ActiveTriples](https://github.com/ActiveTriples/ActiveTriples)
5
8
  framework. Includes a default implementation of a local name minter.
@@ -7,21 +7,21 @@ Gem::Specification.new do |s|
7
7
  s.version = ActiveTriples::LocalName::VERSION
8
8
  s.platform = Gem::Platform::RUBY
9
9
  s.authors = ["E. Lynette Rayle"]
10
- s.homepage = 'https://github.com/no-reply/active_triples-local_name'
10
+ s.homepage = 'https://github.com/ActiveTriples/active_triples-local_name'
11
11
  s.email = 'elr37@cornell.edu'
12
12
  s.summary = %q{Local name minter for ActiveTriples based resources.}
13
13
  s.description = %q{active_triples-local_name provides a standard interface and default implementation for a minter of the local name portion of a URI.}
14
14
  s.license = "APACHE2"
15
15
  s.required_ruby_version = '>= 1.9.3'
16
16
 
17
- # GETTING FROM GEMFILE UNTIL persistent check CODE IS RELEASED
18
- # s.add_dependency('active-triples', '~> 0.4')
17
+ s.add_dependency('active-triples', '~> 0.5')
19
18
 
20
19
  s.add_dependency('deprecation', '~> 0.1')
21
20
  s.add_dependency('activesupport', '>= 3.0.0')
22
21
 
23
22
  s.add_development_dependency('rdoc')
24
23
  s.add_development_dependency('rspec')
24
+ s.add_development_dependency('coveralls')
25
25
  s.add_development_dependency('guard-rspec')
26
26
 
27
27
  s.files = `git ls-files`.split("\n")
@@ -26,6 +26,8 @@ module ActiveTriples
26
26
  # @raise [Exception] if for_class does not have base_uri configured
27
27
  # @raise [Exception] if an available local name is not found in the maximum allowed tries.
28
28
  #
29
+ # @note See README for examples passing in minter block.
30
+ #
29
31
  # @TODO This is inefficient if max_tries is large. Could try
30
32
  # multi-threading. When using the default_minter included
31
33
  # in this class, it is unlikely to be a problem and should
@@ -63,6 +65,8 @@ module ActiveTriples
63
65
  # numeric as the first character. Pass in an alpha character as <tt>:prefix</tt> to enforce this best
64
66
  # practice.
65
67
  #
68
+ # @note See README for example overriding default minter.
69
+ #
66
70
  # @return [String] a uuid
67
71
  def self.default_minter( *options )
68
72
  prefix = options[0][:prefix] if ! options.empty? && options[0].is_a?(Hash) && options[0].key?(:prefix)
@@ -1,5 +1,5 @@
1
1
  module ActiveTriples
2
2
  module LocalName
3
- VERSION = "0.1.0"
3
+ VERSION = "0.5.0"
4
4
  end
5
5
  end
@@ -81,10 +81,55 @@ describe ActiveTriples::LocalName::Minter do
81
81
  ActiveTriples::Repositories.clear_repositories!
82
82
  end
83
83
 
84
- context "when class doesn't have base_uri defined" do
85
- it "should raise an Exception" do
86
- expect{ ActiveTriples::LocalName::Minter.generate_local_name(DummyResource) }.to raise_error(RuntimeError, 'Requires base_uri to be defined in for_class.')
84
+ context "when one or more arguments are invalid" do
85
+ # def self.generate_local_name(for_class, max_tries=10, *minter_args, &minter_block)
86
+
87
+ context "and all arguments are missing" do
88
+ it "should raise error" do
89
+ # NOTE: ruby < 2 puts out (0 for 1); ruby >= 2 puts out (0 for 1+)
90
+ expect{ ActiveTriples::LocalName::Minter.generate_local_name() }.
91
+ to raise_error(ArgumentError, /wrong number of arguments \(0 for 1\+?\)/)
92
+ end
93
+ end
94
+
95
+ context "and max_tries is negative" do
96
+ it "should raise error" do
97
+ expect{ ActiveTriples::LocalName::Minter.generate_local_name(DummyResource,-1) }.
98
+ to raise_error(ArgumentError, 'Argument max_tries must be >= 1 if passed in')
99
+ end
100
+ end
101
+
102
+ context "and class doesn't inherit from ActiveTriples::Resource" do
103
+ before do
104
+ class DummyNonResource
105
+ end
106
+ end
107
+ after do
108
+ Object.send(:remove_const, "DummyNonResource") if Object
109
+ end
110
+
111
+ it "should raise error" do
112
+ expect{ ActiveTriples::LocalName::Minter.generate_local_name(DummyNonResource) }.
113
+ to raise_error(ArgumentError, 'Argument for_class must inherit from ActiveTriples::Resource')
114
+ end
115
+ end
116
+
117
+
118
+ context "and class doesn't have base_uri defined" do
119
+ it "should raise error" do
120
+ expect{ ActiveTriples::LocalName::Minter.generate_local_name(DummyResource) }.
121
+ to raise_error(RuntimeError, 'Requires base_uri to be defined in for_class.')
122
+ end
87
123
  end
124
+
125
+ ## TODO: Can't see how to test this. The test complains if I pass anything other than a Proc instead of complaining that the passing in thing isn't callable.
126
+ # context "block isn't callable" do
127
+ # it "should raise error" do
128
+ # x = "foo"
129
+ # expect{ ActiveTriples::LocalName::Minter.generate_local_name(DummyResourceWithBaseURI,10,{:prefix => 'a'},&x) }.
130
+ # to raise_error(ArgumentError, 'Invalid minter_block.')
131
+ # end
132
+ # end
88
133
  end
89
134
 
90
135
  context "when all IDs available" do
@@ -92,8 +137,8 @@ describe ActiveTriples::LocalName::Minter do
92
137
  it "should generate an ID using default minter function" do
93
138
  id = ActiveTriples::LocalName::Minter.generate_local_name(DummyResourceWithBaseURI)
94
139
  expect(id).to be_kind_of String
95
- expect(id.length).to be 36
96
- id.should match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
140
+ expect(id.length).to eq 36
141
+ expect(id).to match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
97
142
  end
98
143
  end
99
144
 
@@ -290,8 +335,8 @@ describe ActiveTriples::LocalName::Minter do
290
335
  it "should generate a prefixed ID" do
291
336
  id = ActiveTriples::LocalName::Minter.generate_local_name(DummyResourceWithBaseURI,10,{:prefix=>"s"})
292
337
  expect(id).to be_kind_of String
293
- expect(id.length).to be 37
294
- id.should match /s[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
338
+ expect(id.length).to eq 37
339
+ expect(id).to match /s[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
295
340
  end
296
341
  end
297
342
 
@@ -299,8 +344,8 @@ describe ActiveTriples::LocalName::Minter do
299
344
  it "should generate ID ignoring prefix" do
300
345
  id = ActiveTriples::LocalName::Minter.generate_local_name(DummyResourceWithBaseURI,10,1)
301
346
  expect(id).to be_kind_of String
302
- expect(id.length).to be 36
303
- id.should match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
347
+ expect(id.length).to eq 36
348
+ expect(id).to match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
304
349
  end
305
350
  end
306
351
 
@@ -308,8 +353,8 @@ describe ActiveTriples::LocalName::Minter do
308
353
  it "should generate ID ignoring prefix" do
309
354
  id = ActiveTriples::LocalName::Minter.generate_local_name(DummyResourceWithBaseURI,10,{:prefix=>1.5})
310
355
  expect(id).to be_kind_of String
311
- expect(id.length).to be 36
312
- id.should match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
356
+ expect(id.length).to eq 36
357
+ expect(id).to match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
313
358
  end
314
359
  end
315
360
 
@@ -317,8 +362,8 @@ describe ActiveTriples::LocalName::Minter do
317
362
  it "should generate ID ignoring prefix" do
318
363
  id = ActiveTriples::LocalName::Minter.generate_local_name(DummyResourceWithBaseURI,10,{:prefix=>{"a"=>"b"}})
319
364
  expect(id).to be_kind_of String
320
- expect(id.length).to be 36
321
- id.should match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
365
+ expect(id.length).to eq 36
366
+ expect(id).to match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
322
367
  end
323
368
  end
324
369
 
@@ -326,11 +371,69 @@ describe ActiveTriples::LocalName::Minter do
326
371
  it "should generate ID ignoring prefix" do
327
372
  id = ActiveTriples::LocalName::Minter.generate_local_name(DummyResourceWithBaseURI,10,{:prefix=>[1,2,3]})
328
373
  expect(id).to be_kind_of String
329
- expect(id.length).to be 36
330
- id.should match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
374
+ expect(id.length).to eq 36
375
+ expect(id).to match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
331
376
  end
332
377
  end
333
378
  end
334
379
 
335
380
  end
381
+
382
+ describe "default_minter" do
383
+ context "when options are empty" do
384
+ it "creates a uuid" do
385
+ id = ActiveTriples::LocalName::Minter.default_minter
386
+ expect(id).to be_kind_of String
387
+ expect(id.length).to eq 36
388
+ expect(id).to match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
389
+ end
390
+ end
391
+
392
+ context "when options is passed a prefix" do
393
+ context "and prefix is string" do
394
+ it "should generate a prefixed ID" do
395
+ id = ActiveTriples::LocalName::Minter.default_minter({:prefix=>"s"})
396
+ expect(id).to be_kind_of String
397
+ expect(id.length).to eq 37
398
+ expect(id).to match /s[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
399
+ end
400
+ end
401
+
402
+ context "and prefix is integer" do
403
+ it "should generate ID ignoring prefix" do
404
+ id = ActiveTriples::LocalName::Minter.default_minter({:prefix=>1})
405
+ expect(id).to be_kind_of String
406
+ expect(id.length).to eq 36
407
+ expect(id).to match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
408
+ end
409
+ end
410
+
411
+ context "and prefix is float" do
412
+ it "should generate ID ignoring prefix" do
413
+ id = ActiveTriples::LocalName::Minter.default_minter({:prefix=>1.5})
414
+ expect(id).to be_kind_of String
415
+ expect(id.length).to eq 36
416
+ expect(id).to match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
417
+ end
418
+ end
419
+
420
+ context "and prefix is hash" do
421
+ it "should generate ID ignoring prefix" do
422
+ id = ActiveTriples::LocalName::Minter.default_minter({:prefix=>{"a"=>"b"}})
423
+ expect(id).to be_kind_of String
424
+ expect(id.length).to eq 36
425
+ expect(id).to match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
426
+ end
427
+ end
428
+
429
+ context "and prefix is array" do
430
+ it "should generate ID ignoring prefix" do
431
+ id = ActiveTriples::LocalName::Minter.default_minter({:prefix=>[1,2,3]})
432
+ expect(id).to be_kind_of String
433
+ expect(id.length).to eq 36
434
+ expect(id).to match /[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}/
435
+ end
436
+ end
437
+ end
438
+ end
336
439
  end
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,6 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
1
4
  require 'bundler/setup'
2
5
  Bundler.setup
3
6
 
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_triples-local_name
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - E. Lynette Rayle
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-25 00:00:00.000000000 Z
11
+ date: 2015-01-09 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: active-triples
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '0.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '0.5'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: deprecation
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +80,20 @@ dependencies:
66
80
  - - ! '>='
67
81
  - !ruby/object:Gem::Version
68
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: coveralls
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ! '>='
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
69
97
  - !ruby/object:Gem::Dependency
70
98
  name: guard-rspec
71
99
  requirement: !ruby/object:Gem::Requirement
@@ -89,6 +117,7 @@ extra_rdoc_files:
89
117
  - LICENSE
90
118
  - README.md
91
119
  files:
120
+ - .coveralls.yml
92
121
  - .gitignore
93
122
  - .travis.yml
94
123
  - AUTHORS
@@ -102,8 +131,7 @@ files:
102
131
  - lib/active_triples/local_name/version.rb
103
132
  - spec/active_triples/local_name/minter_spec.rb
104
133
  - spec/spec_helper.rb
105
- - spec/support/active_model_lint.rb
106
- homepage: https://github.com/no-reply/active_triples-local_name
134
+ homepage: https://github.com/ActiveTriples/active_triples-local_name
107
135
  licenses:
108
136
  - APACHE2
109
137
  metadata: {}
@@ -1,81 +0,0 @@
1
- shared_examples_for "an ActiveModel" do
2
- subject { described_class.new }
3
-
4
- describe '#to_key' do
5
- it 'should respond' do
6
- expect(subject).to respond_to :to_key
7
- end
8
-
9
- it 'should return nil when #persisted? is false ' do
10
- def subject.persisted?() false end
11
- expect(subject.to_key).to eq nil
12
- end
13
- end
14
-
15
- describe '#to_param' do
16
- it 'should respond' do
17
- expect(subject).to respond_to :to_param
18
- end
19
-
20
- it 'should return nil when #persisted? is false ' do
21
- def subject.persisted?() false end
22
- expect(subject.to_param).to eq nil
23
- end
24
- end
25
-
26
- describe '#model_name' do
27
- let(:model_name) { subject.class.model_name }
28
-
29
- it 'should have a model name' do
30
- expect(model_name).to respond_to :to_str
31
- end
32
-
33
- it 'should have a human name' do
34
- expect(model_name.human).to respond_to :to_str
35
- end
36
-
37
- it 'should have a singular name' do
38
- expect(model_name.singular).to respond_to :to_str
39
- end
40
-
41
- it 'should have a plural name' do
42
- expect(model_name.plural).to respond_to :to_str
43
- end
44
- end
45
-
46
- describe '#to_partial_path' do
47
- it 'should return a string' do
48
- expect(subject.to_partial_path).to be_a String
49
- end
50
- end
51
-
52
- describe '#persisted?' do
53
- it 'should return a boolean' do
54
- expect(match_boolean(subject.persisted?)).to be true
55
- end
56
- end
57
-
58
- describe '#valid?' do
59
- it 'should return a boolean' do
60
- expect(match_boolean(subject.valid?)).to be true
61
- end
62
- end
63
-
64
- describe '#new_record' do
65
- it 'should return a boolean' do
66
- expect(match_boolean(subject.new_record?)).to be true
67
- end
68
- end
69
-
70
- describe '#destroyed?' do
71
- it 'should return a boolean' do
72
- expect(match_boolean(subject.destroyed?)).to be true
73
- end
74
- end
75
-
76
- private
77
-
78
- def match_boolean(result)
79
- result == true || result == false
80
- end
81
- end