referehencible 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0e249b8aeee7e472b5a9b497b8d49589483d3949
4
- data.tar.gz: 0d260f6461ccdd619d2600add5211a837d436f91
3
+ metadata.gz: 57a9ef8d5f0f77f5334fa68a5ec81db347636d24
4
+ data.tar.gz: 6516ce6b536ffac4e741a16bb0c3278eefce7770
5
5
  SHA512:
6
- metadata.gz: 89b0e301762a2e8d111275b448fe7528db28c5ab813115619ce80a87f181f9ac9dfc531eb5cf398d3d421eadfb9ef4a74d8487037eb48872c72120e19cd770cf
7
- data.tar.gz: 4e19b7e9e7a0f5206224126322f2a76377bcc22edd9d1af8cf93f3098efcd54070f64d3c9e45960554d67d04011681f3c3b360c3e5c0a91f1571fbeb995f1f17
6
+ metadata.gz: 7a510348b97d1df013b6a58fd7c263e046d789d0228b265c6f235d537bc6a50fad1367146659816ea78eff6b7dfd77da5ad2705b7dd7679e4a3bb7559addcec6
7
+ data.tar.gz: 25730d451b8403cf7e290530423fa9c8097e2e9e331f49000f2448b7d9207e9e6faade429266a220dc7cdada9cad7302944cdd69be9973ac12c2836f3b2ae0ee
data/Rakefile CHANGED
@@ -1 +1 @@
1
- require "bundler/gem_tasks"
1
+ require 'bundler/gem_tasks'
@@ -1,3 +1,3 @@
1
1
  module Referehencible
2
- VERSION = '0.5.0'
2
+ VERSION = '0.5.1'
3
3
  end
@@ -4,55 +4,66 @@ require 'securerandom'
4
4
  module Referehencible
5
5
  DEFAULT_LENGTH = 36
6
6
 
7
+ # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
7
8
  module ClassMethods
8
- def referenced_by(*referenced_attributes)
9
+ def referenced_by(*referenced_attrs)
9
10
  default_options = {
10
11
  length: DEFAULT_LENGTH,
11
12
  type: :uuid,
12
13
  }
13
14
 
14
- referenced_attributes = referenced_attributes.each_with_object({}) do |referenced_attribute, transformed_attributes|
15
- case referenced_attribute
16
- when Symbol
17
- transformed_attributes[referenced_attribute] = default_options
18
- when Hash
19
- transformed_attributes.merge! referenced_attribute
20
- end
21
- end
15
+ referenced_attrs = \
16
+ referenced_attrs.each_with_object({}) do |referenced_attr, transformed_attr|
17
+ case referenced_attr
18
+ when Symbol
19
+ transformed_attr[referenced_attr] = default_options
20
+ when Hash
21
+ transformed_attr.merge! referenced_attr
22
+ end
23
+ end
22
24
 
23
- referenced_attributes.each do |reference_attribute, options|
24
- raise RuntimeError, "You attempted to pass in a length of #{options[:length]} for #{reference_attribute} in #{self.name}. Only even numbers are allowed." \
25
+ referenced_attrs.each do |reference_attribute, options|
26
+ fail "You attempted to pass in a length of #{options[:length]} for " \
27
+ "#{reference_attribute} in #{name}. Only even numbers are allowed." \
25
28
  if options[:length].odd?
26
29
 
27
- validates reference_attribute,
28
- presence: true,
29
- uniqueness: true,
30
- format: {
31
- with: /[a-f0-9\-]{#{options[:length]}}/ },
32
- length: {
33
- is: options[:length] }
30
+ validates reference_attribute,
31
+ presence: true,
32
+ uniqueness: true,
33
+ format: {
34
+ with: /[a-f0-9\-]{#{options[:length]}}/ },
35
+ length: {
36
+ is: options[:length] }
34
37
 
35
38
  define_method(reference_attribute) do
36
- send("generate_#{options[:type]}_guid", reference_attribute, options[:length] / 2)
39
+ send("generate_#{options[:type]}_guid",
40
+ reference_attribute,
41
+ options[:length] / 2)
37
42
  end
38
43
 
39
44
  define_singleton_method("by_#{reference_attribute}") do |guid_to_find|
40
45
  where(:"#{reference_attribute}" => guid_to_find).
41
- first ||
42
- unknown_reference_object
46
+ first ||
47
+ unknown_reference_object
43
48
  end
44
49
 
45
- after_initialize lambda { send("generate_#{options[:type]}_guid", reference_attribute, options[:length] / 2) }
50
+ after_initialize lambda do
51
+ send("generate_#{options[:type]}_guid",
52
+ reference_attribute,
53
+ options[:length] / 2)
54
+ end
46
55
  end
47
56
 
48
57
  private
49
58
 
50
59
  define_method(:generate_hex_guid) do |reference_attribute, length|
51
- read_attribute(reference_attribute) || write_attribute(reference_attribute, SecureRandom.hex(length))
60
+ read_attribute(reference_attribute) || write_attribute(reference_attribute,
61
+ SecureRandom.hex(length))
52
62
  end
53
63
 
54
- define_method(:generate_uuid_guid) do |reference_attribute, length|
55
- read_attribute(reference_attribute) || write_attribute(reference_attribute, SecureRandom.uuid)
64
+ define_method(:generate_uuid_guid) do |reference_attribute, _length|
65
+ read_attribute(reference_attribute) || write_attribute(reference_attribute,
66
+ SecureRandom.uuid)
56
67
  end
57
68
 
58
69
  define_singleton_method(:unknown_reference_object) do
@@ -62,6 +73,7 @@ module Referehencible
62
73
  end
63
74
  end
64
75
  end
76
+ # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
65
77
 
66
78
  def self.included(base)
67
79
  base.extend ClassMethods
metadata CHANGED
@@ -1,15 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: referehencible
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - jfelchner
8
- - m5rk
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-06-25 00:00:00.000000000 Z
11
+ date: 2015-03-26 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
@@ -39,22 +38,8 @@ dependencies:
39
38
  - - "~>"
40
39
  - !ruby/object:Gem::Version
41
40
  version: 0.45.0
42
- - !ruby/object:Gem::Dependency
43
- name: codeclimate-test-reporter
44
- requirement: !ruby/object:Gem::Requirement
45
- requirements:
46
- - - "~>"
47
- - !ruby/object:Gem::Version
48
- version: 0.3.0
49
- type: :development
50
- prerelease: false
51
- version_requirements: !ruby/object:Gem::Requirement
52
- requirements:
53
- - - "~>"
54
- - !ruby/object:Gem::Version
55
- version: 0.3.0
56
41
  description: ''
57
- email: support@chirrpy.com
42
+ email: accounts+git@thekompanee.com
58
43
  executables: []
59
44
  extensions: []
60
45
  extra_rdoc_files:
@@ -87,10 +72,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
87
72
  version: '0'
88
73
  requirements: []
89
74
  rubyforge_project: referehencible
90
- rubygems_version: 2.2.2
75
+ rubygems_version: 2.4.6
91
76
  signing_key:
92
77
  specification_version: 4
93
78
  summary: Enable unique reference numbers on all the things
94
79
  test_files:
95
80
  - spec/lib/referehencible_spec.rb
96
- has_rdoc: