tessa 0.5.0 → 0.6.0

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: 8a12436b10f2fa00988bce92ba546e84d7d39f33
4
- data.tar.gz: b601a69166646ac06659519cecee7f487609edbf
3
+ metadata.gz: 8251efd9d4e25987dd0704a7b24f28dac8d29620
4
+ data.tar.gz: 5500c81dd663327791f2ff5a3f9e0e5e1eb98b99
5
5
  SHA512:
6
- metadata.gz: eb4517664519fcf6f650fc715b1f08cf556df91618bf7ba52a1171b6f9f11fc0bf452276562c563c19ba99a178837422e1fa2e5d8d55ebff89f510fac297d925
7
- data.tar.gz: a83ec8ea8bc251c9d9420654e98b728d5e524bebade9ad89f3174b11eaebae433a0fa5259137afd6588b3c1ffdc94cc5e990fff24da091b675b259270f18a19f
6
+ metadata.gz: 18870a22878208b5af37c96080789ae3e0f9e61fb49f2cf66b42a1e96dc5c28070b7a191ef1879a28c5e4f97db4591da1023c019b1007894dc94ca1f714ac733
7
+ data.tar.gz: a6b338c14d1eccc9e0e9571393417b73f77eabb7b5b2c78aff3f4ed84b56e53b009ae9845f8548e53071acca635bfc7e8b5b58a9e3847f7dce6dd1f923bd9bf2
@@ -0,0 +1,3 @@
1
+ machine:
2
+ ruby:
3
+ version: 2.2.0
@@ -55,7 +55,9 @@ module Tessa
55
55
  def asset(name, args={})
56
56
  field = tessa_fields[name] = Field.new(args.merge(name: name))
57
57
 
58
- define_method(name) do
58
+ dynamic_extensions = Module.new
59
+
60
+ dynamic_extensions.send(:define_method, name) do
59
61
  if instance_variable_defined?(ivar = "@#{name}")
60
62
  instance_variable_get(ivar)
61
63
  else
@@ -66,7 +68,7 @@ module Tessa
66
68
  end
67
69
  end
68
70
 
69
- define_method("#{name}=") do |value|
71
+ dynamic_extensions.send(:define_method, "#{name}=") do |value|
70
72
  change_set = field.change_set_for(value)
71
73
 
72
74
  if !(field.multiple? && value.is_a?(AssetChangeSet))
@@ -78,6 +80,8 @@ module Tessa
78
80
 
79
81
  field.apply(change_set, on: self)
80
82
  end
83
+
84
+ include dynamic_extensions
81
85
  end
82
86
 
83
87
  def tessa_fields
@@ -1,3 +1,3 @@
1
1
  module Tessa
2
- VERSION = "0.5.0"
2
+ VERSION = "0.6.0"
3
3
  end
@@ -15,6 +15,7 @@ RSpec.describe Tessa::Model do
15
15
  context "with a field named :avatar" do
16
16
  subject(:instance) { model.new }
17
17
  before do
18
+ model.send :attr_accessor, :avatar_id
18
19
  model.asset :avatar
19
20
  end
20
21
 
@@ -25,6 +26,18 @@ RSpec.describe Tessa::Model do
25
26
  it "creates an #avatar= method" do
26
27
  expect(instance).to respond_to(:avatar=)
27
28
  end
29
+
30
+ it "allows overriding and calling super" do
31
+ model.class_eval do
32
+ def avatar
33
+ @override_test = true
34
+ super
35
+ end
36
+ end
37
+
38
+ instance.avatar
39
+ expect(instance.instance_variable_get(:@override_test)).to eq(true)
40
+ end
28
41
  end
29
42
 
30
43
  context "with customized field" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tessa
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Powell
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-05-12 00:00:00.000000000 Z
12
+ date: 2015-08-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: faraday
@@ -97,6 +97,7 @@ files:
97
97
  - LICENSE.txt
98
98
  - README.md
99
99
  - Rakefile
100
+ - circle.yml
100
101
  - lib/tessa.rb
101
102
  - lib/tessa/asset.rb
102
103
  - lib/tessa/asset/failure.rb