Module2Class 0.0.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.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/lib/module2class.rb +11 -0
  3. metadata +45 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 0d6fc624245e68448d800a68f1d006fcb76bca40c276a093e6f9a20b7e3df181
4
+ data.tar.gz: 7847243ec4991cb801612280287c2da349dc67755572544681b2a506eee9c0c7
5
+ SHA512:
6
+ metadata.gz: 8ce94f44d1ab6580fe820cccf85884834054d5b206fd420272f2f10e2b77ff975123ddeb15daba052eb1265b7b68383b0d124b483659eecd450bfedb9668a714
7
+ data.tar.gz: 320602020ad5583b987c078a1b3b25bbf9bad496abab271bc91762a7449b33df82a4ac4f6690c95267b9f9d3213772999cbcc7eb954fae764dd63c84dae6dd38
@@ -0,0 +1,11 @@
1
+ class Module2Class
2
+ def self.convert(x)
3
+ (Object.const_get(x.name).instance_of?Class) ? var = Module.new : var = Class.new
4
+ arr=self.instance_methods(true)
5
+ (Object.const_get(x.name).instance_of?Class) ? (x.instance_methods(false).each{|meth| var.send(:define_method,meth,&x.new.method(meth))}) : var.include(x)
6
+ x.singleton_methods(false).each{|meth| var.send(:define_singleton_method,meth,&x.method(meth))}
7
+ x.constants.each{|const| var.const_set(const,x.const_get(const))}
8
+ Object.send(:remove_const,x.name)
9
+ Object.const_set(x.name,binding.local_variable_get(:var))
10
+ end
11
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: Module2Class
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Venkatesh Babu
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-02-18 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: "\tThis gem is used to convert a given single level Module to a Class
14
+ with \n\tsame name and with complete functionalities and vice versa.\n"
15
+ email: chitralavenky55@gmail.com
16
+ executables: []
17
+ extensions: []
18
+ extra_rdoc_files: []
19
+ files:
20
+ - lib/module2class.rb
21
+ homepage: http://rubygems.org/gems/module2class
22
+ licenses:
23
+ - Nonstandard
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 2.7.6
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: Module to Class and Class to Module converter
45
+ test_files: []