representable 1.8.4 → 1.8.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 4deaff5b09416674afcd03dad6d42530c4cbdccc
4
- data.tar.gz: c52396c5dc2abab0976bfa1af407259147f6f80f
3
+ metadata.gz: 1a1a2857b730f1ccca3640f6c62cab57d6249e09
4
+ data.tar.gz: 52ad685bb60805ff9d8d866e356a1cd33eac1633
5
5
  SHA512:
6
- metadata.gz: 67e9a06f0d7d9d9e28134e49c483247a3c50677675f1a01eab3fd36bb5a15eadbf5214c7ce5860bcf10a86503176717c49d328ceeab6a2c7088beb0087a54fa4
7
- data.tar.gz: 795c1c153e8981ff5ab84bbdd95cc0082b3bf8f214676a9da97e11a0c2fed3421a5851366839c595b553b269dfe566a565a80151190bace26536bd8241ef5489
6
+ metadata.gz: 7a4c5aa9d35483807234ba1fe8c9e3b466c8d7e5879f38b5a635b68a0b2c1bb3df580841cadfe97159e4dddf7f63f9888dff7e73ddcc1a856270adb4d2894ad4
7
+ data.tar.gz: 93c1a493c867c4628595298bc49df0b04e62b7789d0a48fad84983093cc10ee43771c14791e917d580d94825f7b4a17bfd8a50b804b1285c0ab95ad8ce2783c0
data/CHANGES.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 1.8.5
2
+
3
+ * Binding now uses `#method_missing` instead of SimpleDelegator for a significant performance boost of many 100%s. Thanks to @0x4a616d6573 for figuring this.
4
+
1
5
  # 1.8.4
2
6
 
3
7
  * Make `representable/json` work without having to require `representable/hash`. Thanks to @acuppy!!!
@@ -1,10 +1,9 @@
1
- require "delegate"
2
1
  require "representable/deserializer"
3
2
  require "representable/serializer"
4
3
 
5
4
  module Representable
6
5
  # The Binding wraps the Definition instance for this property and provides methods to read/write fragments.
7
- class Binding < SimpleDelegator
6
+ class Binding
8
7
  class FragmentNotFound
9
8
  end
10
9
 
@@ -15,7 +14,7 @@ module Representable
15
14
  end
16
15
 
17
16
  def initialize(definition, represented, decorator, user_options={}) # TODO: remove default arg for user options.
18
- super(definition)
17
+ @definition = definition
19
18
  @represented = represented
20
19
  @decorator = decorator
21
20
  @user_options = user_options
@@ -89,6 +88,12 @@ module Representable
89
88
  end
90
89
 
91
90
  private
91
+ # Apparently, SimpleDelegator is super slow due to a regex, so we do it
92
+ # ourselves, right, Jimmy?
93
+ def method_missing(*args, &block)
94
+ @definition.send(*args, &block)
95
+ end
96
+
92
97
  def setup_exec_context!
93
98
  context = represented
94
99
  context = self if self[:exec_context] == :binding
@@ -1,3 +1,3 @@
1
1
  module Representable
2
- VERSION = "1.8.4"
2
+ VERSION = "1.8.5"
3
3
  end
metadata CHANGED
@@ -1,153 +1,153 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: representable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.4
4
+ version: 1.8.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Sutterer
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-05 00:00:00.000000000 Z
11
+ date: 2014-06-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - '>='
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - '>='
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: multi_json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - '>='
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - '>='
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: uber
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - '>='
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - '>='
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: test_xml
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: 0.1.6
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: 0.1.6
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: minitest
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ~>
88
88
  - !ruby/object:Gem::Version
89
89
  version: 5.0.0
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "~>"
94
+ - - ~>
95
95
  - !ruby/object:Gem::Version
96
96
  version: 5.0.0
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: mocha
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">="
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: 0.13.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ">="
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: 0.13.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: mongoid
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - ">="
115
+ - - '>='
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - ">="
122
+ - - '>='
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: virtus
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - "~>"
129
+ - - ~>
130
130
  - !ruby/object:Gem::Version
131
131
  version: 0.5.0
132
132
  type: :development
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - "~>"
136
+ - - ~>
137
137
  - !ruby/object:Gem::Version
138
138
  version: 0.5.0
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: json
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - "~>"
143
+ - - ~>
144
144
  - !ruby/object:Gem::Version
145
145
  version: 1.7.7
146
146
  type: :development
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - "~>"
150
+ - - ~>
151
151
  - !ruby/object:Gem::Version
152
152
  version: 1.7.7
153
153
  description: Renders and parses JSON/XML/YAML documents from and to Ruby objects.
@@ -158,8 +158,8 @@ executables: []
158
158
  extensions: []
159
159
  extra_rdoc_files: []
160
160
  files:
161
- - ".gitignore"
162
- - ".travis.yml"
161
+ - .gitignore
162
+ - .travis.yml
163
163
  - CHANGES.md
164
164
  - Gemfile
165
165
  - LICENSE
@@ -240,56 +240,19 @@ require_paths:
240
240
  - lib
241
241
  required_ruby_version: !ruby/object:Gem::Requirement
242
242
  requirements:
243
- - - ">="
243
+ - - '>='
244
244
  - !ruby/object:Gem::Version
245
245
  version: '0'
246
246
  required_rubygems_version: !ruby/object:Gem::Requirement
247
247
  requirements:
248
- - - ">="
248
+ - - '>='
249
249
  - !ruby/object:Gem::Version
250
250
  version: '0'
251
251
  requirements: []
252
252
  rubyforge_project:
253
- rubygems_version: 2.2.1
253
+ rubygems_version: 2.2.2
254
254
  signing_key:
255
255
  specification_version: 4
256
256
  summary: Renders and parses JSON/XML/YAML documents from and to Ruby objects. Includes
257
257
  plain properties, collections, nesting, coercion and more.
258
- test_files:
259
- - test/as_test.rb
260
- - test/class_test.rb
261
- - test/coercion_test.rb
262
- - test/config_test.rb
263
- - test/decorator_scope_test.rb
264
- - test/decorator_test.rb
265
- - test/definition_test.rb
266
- - test/example.rb
267
- - test/exec_context_test.rb
268
- - test/generic_test.rb
269
- - test/getter_setter_test.rb
270
- - test/hash_bindings_test.rb
271
- - test/hash_test.rb
272
- - test/if_test.rb
273
- - test/inherit_test.rb
274
- - test/inheritance_test.rb
275
- - test/inline_test.rb
276
- - test/instance_test.rb
277
- - test/is_representable_test.rb
278
- - test/json_test.rb
279
- - test/lonely_test.rb
280
- - test/mongoid_test.rb
281
- - test/nested_test.rb
282
- - test/parse_strategy_test.rb
283
- - test/pass_options_test.rb
284
- - test/prepare_test.rb
285
- - test/reader_writer_test.rb
286
- - test/representable_test.rb
287
- - test/serialize_deserialize_test.rb
288
- - test/stringify_hash_test.rb
289
- - test/test_helper.rb
290
- - test/test_helper_test.rb
291
- - test/wrap_test.rb
292
- - test/xml_bindings_test.rb
293
- - test/xml_test.rb
294
- - test/yaml_test.rb
295
- has_rdoc:
258
+ test_files: []