mini_object 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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +11 -0
- data/Gemfile +5 -0
- data/Gemfile.lock +10 -0
- data/README.md +4 -0
- data/lib/box.rb +1 -0
- data/lib/injectable.rb +7 -4
- data/lib/inline.rb +6 -5
- data/lib/mini_object.rb +1 -0
- data/lib/remarkable_inspect.rb +1 -1
- data/lib/version.rb +1 -1
- data/mini_object-0.0.1.gem +0 -0
- data/mini_object.gemspec +3 -3
- data/spec/spec_helper.rb +3 -0
- metadata +10 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0aa379aae7d9c42cfcfb360a0ddb6fda0fcecdaa
|
4
|
+
data.tar.gz: 320b678ed4208c284b00d89d8d9d78fa0de57ae3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b0abff2dcdab9666d1c296e9072171c7b82dea205b469f8752a9dcf062688e9599153d508c0f1dbd61dff41b098e1806dae089d034f91983119b8a86989e03c
|
7
|
+
data.tar.gz: 6c2fc780b5cceb48245f03a8554f8cbce836e88f185ece9523ed353fbaf53ebbdfe0722546d1aa2dbd47e7185f711d61e662e00d75be73778ca4a14eb9ca3a09
|
data/.gitignore
CHANGED
@@ -0,0 +1 @@
|
|
1
|
+
pkg
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -6,9 +6,13 @@ PATH
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
+
codeclimate-test-reporter (0.4.5)
|
10
|
+
simplecov (>= 0.7.1, < 1.0.0)
|
9
11
|
coderay (1.1.0)
|
10
12
|
diff-lcs (1.2.5)
|
13
|
+
docile (1.1.5)
|
11
14
|
method_source (0.8.2)
|
15
|
+
multi_json (1.10.1)
|
12
16
|
pry (0.10.1)
|
13
17
|
coderay (~> 1.1.0)
|
14
18
|
method_source (~> 0.8.1)
|
@@ -26,6 +30,11 @@ GEM
|
|
26
30
|
rspec-mocks (3.1.3)
|
27
31
|
rspec-support (~> 3.1.0)
|
28
32
|
rspec-support (3.1.2)
|
33
|
+
simplecov (0.9.1)
|
34
|
+
docile (~> 1.1.0)
|
35
|
+
multi_json (~> 1.0)
|
36
|
+
simplecov-html (~> 0.8.0)
|
37
|
+
simplecov-html (0.8.0)
|
29
38
|
slop (3.6.0)
|
30
39
|
|
31
40
|
PLATFORMS
|
@@ -33,6 +42,7 @@ PLATFORMS
|
|
33
42
|
|
34
43
|
DEPENDENCIES
|
35
44
|
bundler (~> 1.3)
|
45
|
+
codeclimate-test-reporter
|
36
46
|
mini_object!
|
37
47
|
pry
|
38
48
|
rake
|
data/README.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# MiniObject
|
2
2
|
|
3
|
+
[](http://badge.fury.io/rb/mini_object)
|
4
|
+
[](https://travis-ci.org/manuelmorales/mini-object)
|
5
|
+
[](https://codeclimate.com/github/manuelmorales/mini-object)
|
6
|
+
|
3
7
|
A set of tools which will make easier to work with objects instead of classes
|
4
8
|
and injecting dependencies.
|
5
9
|
|
data/lib/box.rb
CHANGED
data/lib/injectable.rb
CHANGED
@@ -21,8 +21,9 @@ module MiniObject
|
|
21
21
|
end
|
22
22
|
else
|
23
23
|
if value == NULL
|
24
|
-
p = instance_variable_get("@#{name}_proc")
|
25
|
-
|
24
|
+
p = instance_variable_get("@#{name}_proc") ||
|
25
|
+
self.class.instance_variable_get("@#{name}_default_proc") ||
|
26
|
+
raise("No #{name} defined yet for #{inspect}")
|
26
27
|
p.call
|
27
28
|
else
|
28
29
|
send("#{name}=", value)
|
@@ -38,14 +39,16 @@ module MiniObject
|
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
41
|
-
def cattr_injectable name
|
42
|
+
def cattr_injectable name, &block
|
42
43
|
define_singleton_method name, &Injectable.getsetter_definition_for(name)
|
43
44
|
define_singleton_method "#{name}=", &Injectable.setter_definition_for(name)
|
45
|
+
send(name, &block) if block
|
44
46
|
end
|
45
47
|
|
46
|
-
def attr_injectable name
|
48
|
+
def attr_injectable name, &block
|
47
49
|
define_method name, &Injectable.getsetter_definition_for(name)
|
48
50
|
define_method "#{name}=", &Injectable.setter_definition_for(name)
|
51
|
+
instance_variable_set("@#{name}_default_proc", block) if block
|
49
52
|
end
|
50
53
|
|
51
54
|
def let name, &block
|
data/lib/inline.rb
CHANGED
@@ -5,20 +5,21 @@ module MiniObject
|
|
5
5
|
|
6
6
|
attr_accessor :inline_name
|
7
7
|
|
8
|
-
def initialize name = nil, &block
|
8
|
+
def initialize name = nil, args = {}, &block
|
9
|
+
args.each do |k,v|
|
10
|
+
define_singleton_method(k) { v }
|
11
|
+
end
|
12
|
+
|
9
13
|
@inline_name = name || 'inline'
|
10
14
|
instance_exec self, &block if block
|
11
15
|
end
|
12
16
|
|
13
17
|
def remarkable_methods
|
14
|
-
methods - self.class.instance_methods
|
18
|
+
(methods - self.class.instance_methods).sort
|
15
19
|
end
|
16
20
|
|
17
21
|
def remarkable_name
|
18
22
|
"#{inline_name || 'anon'} / Inline"
|
19
23
|
end
|
20
|
-
|
21
|
-
# TODO: Explore the possiblity of allowing access to methods and
|
22
|
-
# vars defined outside the block.
|
23
24
|
end
|
24
25
|
end
|
data/lib/mini_object.rb
CHANGED
data/lib/remarkable_inspect.rb
CHANGED
@@ -26,7 +26,7 @@ module MiniObject
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def remarkable_methods
|
29
|
-
(self.instance_methods - Box.instance_methods).map(&:to_s).tap do |mm|
|
29
|
+
(self.instance_methods - Box.instance_methods).sort.map(&:to_s).tap do |mm|
|
30
30
|
# Substittues [my_method, my_method=] by [my_method/=]
|
31
31
|
mm.grep(/\=$/).each do |setter|
|
32
32
|
getter = setter.gsub /\=$/, ''
|
data/lib/version.rb
CHANGED
Binary file
|
data/mini_object.gemspec
CHANGED
@@ -10,8 +10,8 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.version = MiniObject::VERSION
|
11
11
|
spec.authors = ["Manuel Morales"]
|
12
12
|
spec.email = ['manuelmorales@gmail.com']
|
13
|
-
spec.
|
14
|
-
spec.
|
13
|
+
spec.summary = 'Easier working with instances instead of classes and dependency injection'
|
14
|
+
spec.description = 'A set of tools which will make easier to work with objects instead of classes and injecting dependencies.'
|
15
15
|
spec.homepage = "https://github.com/manuelmorales/#{spec.name.gsub('_','-')}"
|
16
16
|
spec.license = "MIT"
|
17
17
|
|
@@ -21,5 +21,5 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.require_paths = ["lib"]
|
22
22
|
|
23
23
|
spec.add_development_dependency "bundler", "~> 1.3"
|
24
|
-
spec.add_development_dependency "rake"
|
24
|
+
spec.add_development_dependency "rake", '~> 10.4'
|
25
25
|
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mini_object
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Manuel Morales
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01
|
11
|
+
date: 2015-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -28,18 +28,18 @@ dependencies:
|
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '10.4'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '10.4'
|
41
41
|
description: A set of tools which will make easier to work with objects instead of
|
42
|
-
classes
|
42
|
+
classes and injecting dependencies.
|
43
43
|
email:
|
44
44
|
- manuelmorales@gmail.com
|
45
45
|
executables: []
|
@@ -47,6 +47,7 @@ extensions: []
|
|
47
47
|
extra_rdoc_files: []
|
48
48
|
files:
|
49
49
|
- ".gitignore"
|
50
|
+
- ".travis.yml"
|
50
51
|
- ".yardoc/checksums"
|
51
52
|
- ".yardoc/object_types"
|
52
53
|
- ".yardoc/objects/root.dat"
|
@@ -64,6 +65,7 @@ files:
|
|
64
65
|
- lib/remarkable_inspect.rb
|
65
66
|
- lib/resolver.rb
|
66
67
|
- lib/version.rb
|
68
|
+
- mini_object-0.0.1.gem
|
67
69
|
- mini_object.gemspec
|
68
70
|
- spec/box_spec.rb
|
69
71
|
- spec/injectable_spec.rb
|
@@ -96,7 +98,7 @@ rubyforge_project:
|
|
96
98
|
rubygems_version: 2.2.2
|
97
99
|
signing_key:
|
98
100
|
specification_version: 4
|
99
|
-
summary:
|
101
|
+
summary: Easier working with instances instead of classes and dependency injection
|
100
102
|
test_files:
|
101
103
|
- spec/box_spec.rb
|
102
104
|
- spec/injectable_spec.rb
|