blobject 0.2.2 → 0.2.3
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.
- data/benchmark.rb +71 -0
- data/benchmark0 +20 -0
- data/lib/blobject/version.rb +1 -1
- data/spec/blobject_spec.rb +5 -0
- metadata +8 -7
- data/TODO.txt +0 -20
data/benchmark.rb
ADDED
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'benchmark'
|
2
|
+
require_relative 'lib/blobject'
|
3
|
+
|
4
|
+
class A
|
5
|
+
attr_accessor :member1
|
6
|
+
|
7
|
+
def member1=v
|
8
|
+
$m1 ||=0
|
9
|
+
$m1 += 1
|
10
|
+
@member1 = v
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
iterations = 100000
|
15
|
+
|
16
|
+
a = A.new
|
17
|
+
b = blobject
|
18
|
+
h = {}
|
19
|
+
|
20
|
+
value = "VALUE"
|
21
|
+
|
22
|
+
a.member1 = value
|
23
|
+
b.modify { member1 value }
|
24
|
+
h[:member1] = value
|
25
|
+
|
26
|
+
puts "\n\nITERATIONS: #{iterations}\n\n"
|
27
|
+
puts "\nBENCHMARK: attr_write\n=====================\n\n"
|
28
|
+
|
29
|
+
Benchmark.bm do |benchmark|
|
30
|
+
|
31
|
+
benchmark.report("Object: ") do
|
32
|
+
iterations.times do
|
33
|
+
a.member1 = value
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
benchmark.report("Hash: ") do
|
38
|
+
iterations.times do
|
39
|
+
h[:member1] = value
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
benchmark.report("Blobject: ") do
|
44
|
+
iterations.times do
|
45
|
+
b.modify { member1 value }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
puts "\n\nBENCHMARK: attr_read\n=====================\n\n"
|
51
|
+
|
52
|
+
Benchmark.bm do |benchmark|
|
53
|
+
|
54
|
+
benchmark.report("Object: ") do
|
55
|
+
iterations.times do
|
56
|
+
v = a.member1
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
benchmark.report("Hash: ") do
|
61
|
+
iterations.times do
|
62
|
+
v = h[:member1]
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
benchmark.report("Blobject: ") do
|
67
|
+
iterations.times do
|
68
|
+
v = b.member1
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
data/benchmark0
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
ITERATIONS: 100000
|
2
|
+
|
3
|
+
BENCHMARK: attr_write
|
4
|
+
=====================
|
5
|
+
|
6
|
+
user system total real
|
7
|
+
Object: 0.030000 0.000000 0.030000 ( 0.029947)
|
8
|
+
Hash: 0.020000 0.000000 0.020000 ( 0.023872)
|
9
|
+
Blobject: 0.690000 0.000000 0.690000 ( 0.690897) ... oof!
|
10
|
+
|
11
|
+
|
12
|
+
BENCHMARK: attr_read
|
13
|
+
=====================
|
14
|
+
|
15
|
+
user system total real
|
16
|
+
Object: 0.020000 0.000000 0.020000 ( 0.017419)
|
17
|
+
Hash: 0.010000 0.000000 0.010000 ( 0.017054)
|
18
|
+
Blobject: 0.180000 0.000000 0.180000 ( 0.182304) ... oof!
|
19
|
+
|
20
|
+
|
data/lib/blobject/version.rb
CHANGED
data/spec/blobject_spec.rb
CHANGED
@@ -82,6 +82,11 @@ describe Blobject do
|
|
82
82
|
it 'should allow for nested modification blocks' do
|
83
83
|
|
84
84
|
blobject.modify do
|
85
|
+
|
86
|
+
name.middle = 'mittens'
|
87
|
+
|
88
|
+
# makes sure that previously assigned members can be modified with a block
|
89
|
+
|
85
90
|
name do
|
86
91
|
first 'barry'
|
87
92
|
last 'mcdoodle'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blobject
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
12
|
+
date: 2011-10-01 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &2152961620 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2152961620
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: ruby-debug19
|
27
|
-
requirement: &
|
27
|
+
requirement: &2152960320 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2152960320
|
36
36
|
description: Blobject provides a free flowing syntax for creating blobs of data.
|
37
37
|
email:
|
38
38
|
- sjltaylor@gmail.com
|
@@ -46,7 +46,8 @@ files:
|
|
46
46
|
- Gemfile
|
47
47
|
- README.md
|
48
48
|
- Rakefile
|
49
|
-
-
|
49
|
+
- benchmark.rb
|
50
|
+
- benchmark0
|
50
51
|
- blobject.gemspec
|
51
52
|
- blobject.png
|
52
53
|
- blobject.psd
|
data/TODO.txt
DELETED
@@ -1,20 +0,0 @@
|
|
1
|
-
|
2
|
-
EXAMPLES
|
3
|
-
> to/from yaml
|
4
|
-
> with controller params
|
5
|
-
> JSON response
|
6
|
-
> DSL
|
7
|
-
> Config
|
8
|
-
>>> can make config maintainable by translating it
|
9
|
-
|
10
|
-
|
11
|
-
> benefits: configuration ease
|
12
|
-
> using hashes with config/json and active record because of key symbolization
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
EXTRAS:
|
17
|
-
|
18
|
-
> load_config, monitor for changes
|
19
|
-
|
20
|
-
automatically handle json request params into blobjects
|