referehencible 0.5.0 → 0.5.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.
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: