lean-utils 0.0.1.pre
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 +15 -0
- data/README.md +1 -0
- data/lean-utils.gemspec +32 -0
- data/lib/lean-utils/inheritable_class_attributes.rb +13 -0
- data/lib/lean-utils/inheritable_class_attributes/class_methods.rb +39 -0
- data/lib/lean-utils/namespace.rb +17 -0
- data/lib/lean-utils/namespaced.rb +11 -0
- data/lib/lean-utils/namespaced/class_methods.rb +15 -0
- data/lib/lean-utils/version.rb +5 -0
- metadata +95 -0
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
OGY1N2FiYmE5MmM4NGI0MzZkY2Y5MWY4N2RmNTY1MTIyMTg4Zjg5MQ==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YWFlNTg0N2ZmNGRlZGUwYjFjMDc1MDUwOGE5YTQxZDNmMWJjMDQ5ZA==
|
7
|
+
SHA512:
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
YTRmOWJmMWNiNzZkNTRkNDhhMzUwM2NiZTE3NDE3M2ZlNmI0YjUyZjQ4NDYx
|
10
|
+
ZGU5Yzg3ZTYyNTljN2VkZDYxMzAzMzBmNWJjMTViNDIxMDdmOTA5ZjQ4MTI0
|
11
|
+
N2MxZGE1MWI1ZmNlYzI2ZTBmZGY1NWVjZTU3ZDI4ODUwNDM4ZGY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
YjAzZGRlN2JiZDBmZDAxZGM3ZjFkOGE5NDE2ZjQ4NWU1M2FkOGNmZGJiOTEx
|
14
|
+
NTg3ZTg5ZWQ1ZWIwNDNhZmU4ZTcyYTEwMWZhNTE3ZjllNWI3ZTBlMjU4ODU2
|
15
|
+
YWYxNDZkOTJkNTQ5Y2JhNGI2ODc3YTNlNDQ5NTU4MGU2MjNlZWE=
|
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# Lean::Utils
|
data/lean-utils.gemspec
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
lib = File.expand_path('../lib/', __FILE__)
|
2
|
+
$LOAD_PATH.unshift lib unless $LOAD_PATH.include?(lib)
|
3
|
+
|
4
|
+
require 'lean-utils/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = 'lean-utils'
|
8
|
+
s.version = Lean::Utils::VERSION
|
9
|
+
|
10
|
+
s.platform = Gem::Platform::RUBY
|
11
|
+
s.required_ruby_version = '>= 1.9.3'
|
12
|
+
s.rubygems_version = '>= 1.3.6'
|
13
|
+
|
14
|
+
s.homepage = 'https://github.com/lleolin/lean-utils'
|
15
|
+
s.authors = ['R. Elliott Mason']
|
16
|
+
s.email = ['r.elliott.mason@fastmail.fm']
|
17
|
+
s.summary = 'recurring utilities for Lean framework gems'
|
18
|
+
s.description = <<-desc
|
19
|
+
extracted utility methods used by Lean framework gems
|
20
|
+
desc
|
21
|
+
|
22
|
+
s.licenses = ['MIT']
|
23
|
+
|
24
|
+
s.files = `git ls-files -z -- lib/* bin/* LICENSE.md README.md \
|
25
|
+
CHANGELOG.md FEATURES.md lean-utils.gemspec`.split("\x0")
|
26
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
27
|
+
s.extra_rdoc_files = ['README.md']
|
28
|
+
s.require_paths = ['lib']
|
29
|
+
|
30
|
+
s.add_development_dependency 'rake', '~> 10.3', '>= 10.3.2'
|
31
|
+
s.add_development_dependency 'rspec', '~> 3.0', '>= 3.0.0'
|
32
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module Lean
|
2
|
+
module Utils
|
3
|
+
module InheritableClassAttributes
|
4
|
+
module ClassMethods
|
5
|
+
attr_writer :_inheritable_class_attrs
|
6
|
+
|
7
|
+
def _inheritable_class_attrs
|
8
|
+
@_inheritable_class_attrs ||= []
|
9
|
+
end
|
10
|
+
|
11
|
+
def inheritable_class_attr(attr_name)
|
12
|
+
self._inheritable_class_attrs += Array(attr_name)
|
13
|
+
end
|
14
|
+
|
15
|
+
def inherited(subclass)
|
16
|
+
_inheritable_class_attrs.each do |attribute|
|
17
|
+
subclass.instance_eval(inherited_class_attribute_method(attribute))
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def inherited_class_attribute_method(attribute)
|
22
|
+
<<-EOS
|
23
|
+
def #{attribute}(*args)
|
24
|
+
if @#{attribute}.nil?
|
25
|
+
@#{attribute} = begin
|
26
|
+
superclass.#{attribute}.clone
|
27
|
+
rescue TypeError
|
28
|
+
superclass.#{attribute}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
super
|
33
|
+
end
|
34
|
+
EOS
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Lean
|
2
|
+
module Utils
|
3
|
+
def self.namespace(object)
|
4
|
+
case object
|
5
|
+
when Class then namespace(object.name)
|
6
|
+
when String
|
7
|
+
begin
|
8
|
+
class_name = const_get(object).name
|
9
|
+
rescue NameError
|
10
|
+
class_name = object
|
11
|
+
end
|
12
|
+
|
13
|
+
class_name.split('::').tap(&:pop).join('::')
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
metadata
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: lean-utils
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1.pre
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- R. Elliott Mason
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-09-10 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rake
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '10.3'
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 10.3.2
|
23
|
+
type: :development
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '10.3'
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 10.3.2
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: rspec
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ~>
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '3.0'
|
40
|
+
- - ! '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 3.0.0
|
43
|
+
type: :development
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - ~>
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '3.0'
|
50
|
+
- - ! '>='
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 3.0.0
|
53
|
+
description: ! 'extracted utility methods used by Lean framework gems
|
54
|
+
|
55
|
+
'
|
56
|
+
email:
|
57
|
+
- r.elliott.mason@fastmail.fm
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files:
|
61
|
+
- README.md
|
62
|
+
files:
|
63
|
+
- README.md
|
64
|
+
- lean-utils.gemspec
|
65
|
+
- lib/lean-utils/inheritable_class_attributes.rb
|
66
|
+
- lib/lean-utils/inheritable_class_attributes/class_methods.rb
|
67
|
+
- lib/lean-utils/namespace.rb
|
68
|
+
- lib/lean-utils/namespaced.rb
|
69
|
+
- lib/lean-utils/namespaced/class_methods.rb
|
70
|
+
- lib/lean-utils/version.rb
|
71
|
+
homepage: https://github.com/lleolin/lean-utils
|
72
|
+
licenses:
|
73
|
+
- MIT
|
74
|
+
metadata: {}
|
75
|
+
post_install_message:
|
76
|
+
rdoc_options: []
|
77
|
+
require_paths:
|
78
|
+
- lib
|
79
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ! '>='
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 1.9.3
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ! '>'
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: 1.3.1
|
89
|
+
requirements: []
|
90
|
+
rubyforge_project:
|
91
|
+
rubygems_version: 2.4.5
|
92
|
+
signing_key:
|
93
|
+
specification_version: 4
|
94
|
+
summary: recurring utilities for Lean framework gems
|
95
|
+
test_files: []
|