jko_api 0.2.6 → 0.2.7.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 +4 -4
- data/jko_api.gemspec +1 -1
- data/lib/jko_api/class_descendants_builder.rb +37 -7
- data/lib/jko_api/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: def5a6888ceec83c82b7d42705feeb901978bfe6
|
4
|
+
data.tar.gz: 296866d4aaf9b5b08e6f819c9e7f1c23a57ec64d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 275184031ebb07f89eb0d75385ed586d666d2da619a02aadcfe589568791c64d63d737e78101032bb1e34899b29d624cff3d22ab377abc81a95d425136467a2f
|
7
|
+
data.tar.gz: 3a63fae9e3a2e2a9d6e626991ee0df9bcbcc116a41afdced4833befda7c48ed5436b3aa43875d44e6a7e0135ea86dc07cb3e33f56b73430cda733a9436d8a9cf
|
data/jko_api.gemspec
CHANGED
@@ -21,6 +21,6 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency "bundler", ">= 1.7"
|
22
22
|
spec.add_development_dependency "rake", ">= 10.0"
|
23
23
|
spec.add_dependency "responders", "2.4.0"
|
24
|
-
spec.add_dependency "rails", ">= 4.2.7", "
|
24
|
+
spec.add_dependency "rails", ">= 4.2.7", "<= 5.1.4"
|
25
25
|
spec.add_dependency "warden-oauth2"
|
26
26
|
end
|
@@ -16,8 +16,8 @@ module JkoApi
|
|
16
16
|
|
17
17
|
def build
|
18
18
|
initial_level.upto(upto) do |level|
|
19
|
-
unless Module.const_defined?(swap_level(level
|
20
|
-
build_descendant level
|
19
|
+
unless Module.const_defined?(swap_level(level))
|
20
|
+
build_descendant level.pred
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -25,16 +25,16 @@ module JkoApi
|
|
25
25
|
private
|
26
26
|
|
27
27
|
def build_descendant(level)
|
28
|
-
namespace(level
|
29
|
-
swap_level(level
|
30
|
-
Class.new(swap_level(level).constantize)
|
28
|
+
namespace(level).const_set(
|
29
|
+
swap_level(level).demodulize,
|
30
|
+
Class.new(swap_level(level.next).constantize)
|
31
31
|
)
|
32
32
|
end
|
33
33
|
|
34
34
|
def namespace(level)
|
35
35
|
deconstantized = swap_level(level).deconstantize
|
36
|
-
unless
|
37
|
-
|
36
|
+
unless qualified_const_defined?(deconstantized)
|
37
|
+
qualified_const_set(deconstantized, Module.new)
|
38
38
|
end
|
39
39
|
deconstantized.constantize
|
40
40
|
end
|
@@ -46,5 +46,35 @@ module JkoApi
|
|
46
46
|
def initial_level
|
47
47
|
descendant.name[LEVEL_REGEX].to_i
|
48
48
|
end
|
49
|
+
|
50
|
+
# Pulled from Rails 4.2 source
|
51
|
+
def qualified_const_defined?(path)
|
52
|
+
raise NameError, "#{path.inspect} is not a valid constant name!" unless /^(::)?([A-Z]\w*)(::[A-Z]\w*)*$/ =~ path
|
53
|
+
|
54
|
+
names = path.to_s.split('::')
|
55
|
+
names.shift if names.first.empty?
|
56
|
+
|
57
|
+
# We can't use defined? because it will invoke const_missing for the parent
|
58
|
+
# of the name we are checking.
|
59
|
+
names.inject(Module) do |mod, name|
|
60
|
+
return false unless mod.const_defined?(name, false)
|
61
|
+
mod.const_get name
|
62
|
+
end
|
63
|
+
return true
|
64
|
+
end
|
65
|
+
|
66
|
+
def qualified_const_set(path, value)
|
67
|
+
raise NameError.new("wrong constant name #$&") if path =~ /\A::[^:]+/
|
68
|
+
const_name = path.demodulize
|
69
|
+
mod_name = path.deconstantize
|
70
|
+
mod = mod_name.empty? ? self : qualified_const_get(mod_name)
|
71
|
+
mod.const_set(const_name, value) unless mod.const_defined?(const_name)
|
72
|
+
end
|
73
|
+
|
74
|
+
def qualified_const_get(path)
|
75
|
+
path.split('::').inject(Module) do |mod, name|
|
76
|
+
mod.const_get(name)
|
77
|
+
end
|
78
|
+
end
|
49
79
|
end
|
50
80
|
end
|
data/lib/jko_api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jko_api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Woertink
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-03-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -59,9 +59,9 @@ dependencies:
|
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: 4.2.7
|
62
|
-
- - "
|
62
|
+
- - "<="
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: 5.1.
|
64
|
+
version: 5.1.4
|
65
65
|
type: :runtime
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,9 +69,9 @@ dependencies:
|
|
69
69
|
- - ">="
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: 4.2.7
|
72
|
-
- - "
|
72
|
+
- - "<="
|
73
73
|
- !ruby/object:Gem::Version
|
74
|
-
version: 5.1.
|
74
|
+
version: 5.1.4
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: warden-oauth2
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|