strong_struct 0.0.1 → 0.0.2

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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/strong_struct.rb +51 -0
  3. metadata +30 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0ee9dcb43cb8b3b6a788a89185b3c339cca1d451
4
- data.tar.gz: 33722aa53504aa2fc69fb09441d8608d4815a73c
3
+ metadata.gz: 6da0ce0fd400e2261e0d0d4a0c440a24e445c277
4
+ data.tar.gz: ed652d3f426af94e1e7440281882d9715aab0ba6
5
5
  SHA512:
6
- metadata.gz: 879fad4d740acbdf6f18a15917aebd9de21875dfc4e8318a58e25da288698dd88b1ec8e952f835f5bc30ae8dfa9cba7202a9b0f82bb6d05b0400434222806edc
7
- data.tar.gz: 8c402d601f73e40a7b5633f224be452b417284b8dd4e49b4792aa0c2215289c5c4d9045297403cb5c8fb45022385590bb2bb24be178a86a120d7ecabef343a5b
6
+ metadata.gz: a42475f2527501aedc7cf0b49cde07e2bd8540c55c9804ab66c14e5e81fc70a7ee7911c33a530f5383fe172908fc5701090b8fb8937d643a128c5ad183d59b42
7
+ data.tar.gz: 9f6fc7abf5c3784d38603beff5f7413a64ab1ecf38007db92853c8baa060a81ca6afd4b26d46309746bb1223c0179c00093ada9ccea0ae153e575d6644b2d0cb
data/lib/strong_struct.rb CHANGED
@@ -1,9 +1,33 @@
1
+ # frozen_string_literal: true
1
2
  module StrongStruct
2
3
  module ClassMethods
3
4
  def accessors
4
5
  @accessors ||= []
5
6
  end
6
7
 
8
+ def name
9
+ return super unless defined?(@name)
10
+ @name
11
+ end
12
+
13
+ def name=(value)
14
+ if defined?(@name)
15
+ raise "#{StrongStruct} pseudo-classes may not be renamed."
16
+ end
17
+
18
+ @name = value
19
+ end
20
+
21
+ def to_s
22
+ return super unless defined?(@name)
23
+ super.gsub(/^#<Class:/, "#<#{@name}:")
24
+ end
25
+
26
+ def inspect
27
+ return super unless defined?(@name)
28
+ super.gsub(/^#<Class:/, "#<#{@name}:")
29
+ end
30
+
7
31
  private
8
32
 
9
33
  def add_accessor(accessor)
@@ -30,8 +54,35 @@ module StrongStruct
30
54
  hash
31
55
  end
32
56
 
57
+ def to_s
58
+ base = super
59
+ klass_name = class_name
60
+ return base unless klass_name != 'Object'
61
+ base.gsub(/^#<#<Class:/, "#<#<#{klass_name}:")
62
+ end
63
+
64
+
65
+ def inspect
66
+ base = super
67
+ klass_name = class_name
68
+ return base unless klass_name != 'Object'
69
+ base.gsub(/^#<#<Class:/, "#<#<#{klass_name}:")
70
+ end
71
+
33
72
  private
34
73
 
74
+ def class_name
75
+ klass = self.class
76
+ return klass.name if klass.name
77
+
78
+ while klass.superclass
79
+ klass = klass.superclass
80
+ break if klass.name
81
+ end
82
+
83
+ klass.name
84
+ end
85
+
35
86
  def accessors
36
87
  @accessors ||= get_accessors
37
88
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: strong_struct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Travis Herrick
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-31 00:00:00.000000000 Z
11
+ date: 2016-09-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -80,6 +80,34 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: travis-yaml
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'
97
+ - !ruby/object:Gem::Dependency
98
+ name: wwtd
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
83
111
  description: A structure that has strong attributes
84
112
  email:
85
113
  - tthetoad@gmail.com