yeti 0.3.13 → 0.3.14

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 145a74cad12c6112a80a599647cf928007430f08
4
+ data.tar.gz: 4121ad4c8a7dbddb0f839740f9ccb0441acd0e07
5
+ SHA512:
6
+ metadata.gz: c8f4c71f9d98231a3878b54db2706e258faf39a22d3d827672a60ca31b136fa55a1be879963a1bbcbe90f13a0330317b66a04003197fb009b16e0373b8bdcfe2
7
+ data.tar.gz: 433275a0ad3e8ff1ca689a49f58dbce2e7df34f93e707c4b88d5625a65d7d46b7b67e8d0c7b3c3b5173e2e349777656671889f869b9e0373774ceff3793c229d
data/lib/yeti/editor.rb CHANGED
@@ -111,6 +111,14 @@ module Yeti
111
111
 
112
112
  private
113
113
 
114
+ def self.accessor_module
115
+ unless const_defined? "AccessorMethods"
116
+ accessor_module = const_set "AccessorMethods", Module.new
117
+ include accessor_module
118
+ end
119
+ const_get "AccessorMethods"
120
+ end
121
+
114
122
  def self.attribute(name, opts={})
115
123
  opts[:attribute_name] = name
116
124
  opts[:from] = :edited unless opts.has_key? :from
@@ -126,7 +134,7 @@ module Yeti
126
134
  else
127
135
  "#{opts[:from]}.#{name}"
128
136
  end
129
- class_eval """
137
+ accessor_module.module_eval """
130
138
  def #{name}
131
139
  unless defined? @#{name}
132
140
  opts = self.class.attribute_options[:#{name}]
data/lib/yeti/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Yeti
2
- VERSION = "0.3.13"
2
+ VERSION = "0.3.14"
3
3
  end
@@ -2,7 +2,7 @@ RSpec::Matchers.define :delegates do |delegated_method|
2
2
  match do |subject|
3
3
  stubbed = send(@delegate).stub(@delegate_method)
4
4
  stubbed.with @delegate_params if @delegate_params
5
- stubbed.and_return expected=mock
5
+ stubbed.and_return expected=double
6
6
  subject.send(delegated_method) === expected
7
7
  end
8
8
 
@@ -30,16 +30,16 @@ describe Yeti::Context do
30
30
  context "when account_id" do
31
31
  subject{ Yeti::Context.new account_id: 1 }
32
32
  it "uses find_account_by_id to find account" do
33
- subject.stub(:find_account_by_id).with(1).and_return(expected = mock)
33
+ subject.stub(:find_account_by_id).with(1).and_return(expected = double)
34
34
  subject.account.should be expected
35
35
  end
36
36
  it "#find_account_by_id is virtual" do
37
- lambda do
37
+ expect do
38
38
  subject.find_account_by_id 1
39
- end.should raise_error NotImplementedError
39
+ end.to raise_error NotImplementedError
40
40
  end
41
41
  it "#account_id returns account.id" do
42
- subject.stub(:find_account_by_id).with(1).and_return mock(id: 2)
42
+ subject.stub(:find_account_by_id).with(1).and_return double(id: 2)
43
43
  subject.account_id.should be 2
44
44
  end
45
45
  end
@@ -1,30 +1,30 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe ::Yeti::Editor do
4
- let(:context){ mock :context }
4
+ let(:context){ double :context }
5
5
  subject{ described_class.new context }
6
6
  it ".new_object is virtual" do
7
- lambda do
7
+ expect do
8
8
  described_class.new_object context
9
- end.should raise_error NotImplementedError, "Yeti::Editor.new_object"
9
+ end.to raise_error NotImplementedError, "Yeti::Editor.new_object"
10
10
  end
11
11
  it ".find_by_id is virtual" do
12
- lambda do
12
+ expect do
13
13
  described_class.find_by_id context, 1
14
- end.should raise_error NotImplementedError, "Yeti::Editor.find_by_id"
14
+ end.to raise_error NotImplementedError, "Yeti::Editor.find_by_id"
15
15
  end
16
16
  describe "initialization" do
17
- let(:new_object){ mock :new_object }
18
- let(:existing_object){ mock :existing_object }
17
+ let(:new_object){ double :new_object }
18
+ let(:existing_object){ double :existing_object }
19
19
  context "with context only" do
20
20
  before{ described_class.stub(:new_object).with(context).and_return new_object }
21
21
  it "keeps given context" do
22
22
  subject.context.should be context
23
23
  end
24
24
  it "#persist! is virtual" do
25
- lambda do
25
+ expect do
26
26
  subject.persist!
27
- end.should raise_error NotImplementedError, "Yeti::Editor#persist!"
27
+ end.to raise_error NotImplementedError, "Yeti::Editor#persist!"
28
28
  end
29
29
  it "uses .new_object to initialize edited object" do
30
30
  subject.edited.should == new_object
@@ -52,9 +52,9 @@ describe ::Yeti::Editor do
52
52
  subject.context.should be context
53
53
  end
54
54
  it "#persist! is virtual" do
55
- lambda do
55
+ expect do
56
56
  subject.persist!
57
- end.should raise_error NotImplementedError, "Yeti::Editor#persist!"
57
+ end.to raise_error NotImplementedError, "Yeti::Editor#persist!"
58
58
  end
59
59
  it "delegates id to edited object" do
60
60
  should delegates(:id).to :existing_object
@@ -68,8 +68,8 @@ describe ::Yeti::Editor do
68
68
  end
69
69
  end
70
70
  describe ".from_id(context, given_id)" do
71
- let(:new_object){ mock :new_object }
72
- let(:existing_object){ mock :existing_object, id: 1 }
71
+ let(:new_object){ double :new_object }
72
+ let(:existing_object){ double :existing_object, id: 1 }
73
73
  subject{ described_class.from_id context, given_id }
74
74
  context "when given_id is nil" do
75
75
  let(:given_id){ nil }
@@ -199,7 +199,7 @@ describe ::Yeti::Editor do
199
199
  end
200
200
  end
201
201
  context "existing record" do
202
- let(:existing_object){ mock :existing_object, id: 1, name: "Anthony" }
202
+ let(:existing_object){ double :existing_object, id: 1, name: "Anthony" }
203
203
  subject{ described_class.new context, existing_object }
204
204
  it("gets id from record"){ subject.id.should be 1 }
205
205
  it "gets name from record" do
@@ -210,14 +210,14 @@ describe ::Yeti::Editor do
210
210
  subject.stub(:format_output).with("Anthony", {
211
211
  attribute_name: :name,
212
212
  from: :edited,
213
- }).and_return(expected = mock)
213
+ }).and_return(expected = double)
214
214
  subject.name.should be expected
215
215
  end
216
216
  it "input formatting can be customized" do
217
217
  subject.stub(:format_input).with("Tony", {
218
218
  attribute_name: :name,
219
219
  from: :edited,
220
- }).and_return(expected = mock)
220
+ }).and_return(expected = double)
221
221
  subject.name = "Tony"
222
222
  subject.name.should be expected
223
223
  end
@@ -272,7 +272,7 @@ describe ::Yeti::Editor do
272
272
  subject.related_id.should == 2
273
273
  end
274
274
  it "attribute raises if value cannot be found in source" do
275
- lambda{ subject.invalid }.should raise_error NoMethodError
275
+ expect{ subject.invalid }.to raise_error NoMethodError
276
276
  end
277
277
  end
278
278
  describe "#mandatory?" do
@@ -294,14 +294,14 @@ describe ::Yeti::Editor do
294
294
  end
295
295
  end
296
296
  describe "equality" do
297
- let(:existing){ mock :object, id: 1, persisted?: true }
298
- let(:another){ mock :object, id: 2, persisted?: true }
297
+ let(:existing){ double :object, id: 1, persisted?: true }
298
+ let(:another){ double :object, id: 2, persisted?: true }
299
299
  subject{ described_class.from_id context, 1 }
300
300
  before do
301
301
  described_class.stub(:find_by_id).with(context, 1).and_return existing
302
302
  described_class.stub(:find_by_id).with(context, 2).and_return another
303
303
  described_class.stub(:new_object).with(context).and_return do
304
- mock persisted?: false, id: nil
304
+ double persisted?: false, id: nil
305
305
  end
306
306
  end
307
307
  it "two new editors are not equal" do
@@ -339,7 +339,7 @@ describe ::Yeti::Editor do
339
339
  attribute :valid_from, as: :date
340
340
  end
341
341
  end
342
- let(:record){ mock :new_record, valid_from: Date.parse("2002-09-01") }
342
+ let(:record){ double :new_record, valid_from: Date.parse("2002-09-01") }
343
343
  it "when a new value is assigned" do
344
344
  subject.valid_from = "2002-12-31"
345
345
  subject.attributes.should == {valid_from: "2002-12-31"}
@@ -378,7 +378,7 @@ describe ::Yeti::Editor do
378
378
  attribute :name
379
379
  end
380
380
  end
381
- let(:record){ mock :new_record, name: nil }
381
+ let(:record){ double :new_record, name: nil }
382
382
  it "uses format_input_for_persist on each value" do
383
383
  subject.name = "Tony"
384
384
  subject.should_receive(:format_input_for_persist).with(
@@ -1,13 +1,13 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe Yeti::Search do
4
- let(:context){ mock :context }
4
+ let(:context){ double :context }
5
5
  context "initialization" do
6
6
  it "does require a context and a hash" do
7
7
  message = "wrong number of arguments (1 for 2)"
8
- lambda do
8
+ expect do
9
9
  Yeti::Search.new context
10
- end.should raise_error ArgumentError, message
10
+ end.to raise_error ArgumentError, message
11
11
  end
12
12
  end
13
13
  context "given context and an empty hash" do
@@ -35,7 +35,7 @@ describe Yeti::Search do
35
35
  "uncommon_filter" => "1",
36
36
  }
37
37
  end
38
- let(:results){ mock :results }
38
+ let(:results){ double :results }
39
39
  subject{ Yeti::Search.new context, search: search }
40
40
  before{ subject.stub(:results).and_return results }
41
41
  it "#search comes from hash" do
@@ -53,8 +53,8 @@ describe Yeti::Search do
53
53
  end
54
54
  it "doesn't get everything from search" do
55
55
  subject.should_not respond_to(:uncommon_filter)
56
- lambda{ subject.invalid_method }.should raise_error NoMethodError
57
- lambda{ subject.uncommon_filter }.should raise_error NoMethodError
56
+ expect{ subject.invalid_method }.to raise_error NoMethodError
57
+ expect{ subject.uncommon_filter }.to raise_error NoMethodError
58
58
  end
59
59
  it "#page comes from hash" do
60
60
  Yeti::Search.new(context, page: "2").page.should be 2
@@ -80,9 +80,9 @@ describe Yeti::Search do
80
80
  search_class.new(context, per_page: "9999").per_page.should be 50
81
81
  end
82
82
  it "#paginated_results is virtual" do
83
- lambda do
83
+ expect do
84
84
  subject.paginated_results
85
- end.should raise_error NotImplementedError
85
+ end.to raise_error NotImplementedError
86
86
  end
87
87
  it{ should delegates(:to_ary).to :results }
88
88
  it{ should delegates(:empty?).to :results }
@@ -91,7 +91,7 @@ describe Yeti::Search do
91
91
  it{ should delegates(:size).to :results }
92
92
  end
93
93
  context "when paginated_results is defined" do
94
- let(:paginated_results){ mock :paginated_results }
94
+ let(:paginated_results){ double :paginated_results }
95
95
  subject{ Yeti::Search.new context, {} }
96
96
  before{ subject.stub(:paginated_results).and_return paginated_results }
97
97
  it{ should delegates(:page_count).to :paginated_results }
@@ -1,14 +1,14 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe ::Yeti::Viewer do
4
- let(:context){ mock :context }
4
+ let(:context){ double :context }
5
5
  it ".find_by_id is virtual" do
6
- lambda do
6
+ expect do
7
7
  described_class.find_by_id context, 1
8
- end.should raise_error NotImplementedError, "Yeti::Viewer.find_by_id"
8
+ end.to raise_error NotImplementedError, "Yeti::Viewer.find_by_id"
9
9
  end
10
10
  describe "initialization" do
11
- let(:existing_object){ mock :existing_object }
11
+ let(:existing_object){ double :existing_object }
12
12
  subject{ described_class.new context, existing_object }
13
13
  it "keeps given context" do
14
14
  subject.context.should be context
@@ -27,7 +27,7 @@ describe ::Yeti::Viewer do
27
27
  end
28
28
  end
29
29
  describe ".from_id(context, given_id)" do
30
- let(:existing_object){ mock :existing_object }
30
+ let(:existing_object){ double :existing_object }
31
31
  subject{ described_class.from_id context, "1" }
32
32
  it "uses .find_by_id to find object to edit" do
33
33
  described_class.should_receive(:find_by_id).with(context, "1").and_return do
@@ -37,8 +37,8 @@ describe ::Yeti::Viewer do
37
37
  end
38
38
  end
39
39
  describe "equality" do
40
- let(:existing){ mock :object, id: 1 }
41
- let(:another){ mock :object, id: 2 }
40
+ let(:existing){ double :object, id: 1 }
41
+ let(:another){ double :object, id: 2 }
42
42
  subject{ described_class.from_id context, 1 }
43
43
  before do
44
44
  described_class.stub(:find_by_id).with(context, 1).and_return existing
data/spec/yeti_spec.rb CHANGED
@@ -2,6 +2,6 @@ require "spec_helper"
2
2
 
3
3
  describe Yeti do
4
4
  it "version should be defined" do
5
- lambda{ Yeti::VERSION }.should_not raise_error NameError
5
+ expect{ Yeti::VERSION }.not_to raise_error
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,81 +1,72 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yeti
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.3.13
4
+ version: 0.3.14
6
5
  platform: ruby
7
6
  authors:
8
7
  - Joseph HALTER
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-04-08 00:00:00.000000000 Z
11
+ date: 2013-08-13 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: activemodel
16
15
  requirement: !ruby/object:Gem::Requirement
17
16
  requirements:
18
- - - ! '>='
17
+ - - '>='
19
18
  - !ruby/object:Gem::Version
20
19
  version: '0'
21
- none: false
22
20
  type: :runtime
21
+ prerelease: false
23
22
  version_requirements: !ruby/object:Gem::Requirement
24
23
  requirements:
25
- - - ! '>='
24
+ - - '>='
26
25
  - !ruby/object:Gem::Version
27
26
  version: '0'
28
- none: false
29
- prerelease: false
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: string_cleaner
32
29
  requirement: !ruby/object:Gem::Requirement
33
30
  requirements:
34
- - - ! '>='
31
+ - - '>='
35
32
  - !ruby/object:Gem::Version
36
33
  version: '0'
37
- none: false
38
34
  type: :runtime
35
+ prerelease: false
39
36
  version_requirements: !ruby/object:Gem::Requirement
40
37
  requirements:
41
- - - ! '>='
38
+ - - '>='
42
39
  - !ruby/object:Gem::Version
43
40
  version: '0'
44
- none: false
45
- prerelease: false
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rake
48
43
  requirement: !ruby/object:Gem::Requirement
49
44
  requirements:
50
- - - ! '>='
45
+ - - '>='
51
46
  - !ruby/object:Gem::Version
52
47
  version: '0'
53
- none: false
54
48
  type: :development
49
+ prerelease: false
55
50
  version_requirements: !ruby/object:Gem::Requirement
56
51
  requirements:
57
- - - ! '>='
52
+ - - '>='
58
53
  - !ruby/object:Gem::Version
59
54
  version: '0'
60
- none: false
61
- prerelease: false
62
55
  - !ruby/object:Gem::Dependency
63
56
  name: rspec
64
57
  requirement: !ruby/object:Gem::Requirement
65
58
  requirements:
66
- - - ! '>='
59
+ - - '>='
67
60
  - !ruby/object:Gem::Version
68
61
  version: '0'
69
- none: false
70
62
  type: :development
63
+ prerelease: false
71
64
  version_requirements: !ruby/object:Gem::Requirement
72
65
  requirements:
73
- - - ! '>='
66
+ - - '>='
74
67
  - !ruby/object:Gem::Version
75
68
  version: '0'
76
- none: false
77
- prerelease: false
78
- description: ! 'Yeti: Context, Editor and Search patterns'
69
+ description: 'Yeti: Context, Editor and Search patterns'
79
70
  email:
80
71
  - joseph@openhood.com
81
72
  executables: []
@@ -104,33 +95,26 @@ files:
104
95
  - yeti.gemspec
105
96
  homepage: ''
106
97
  licenses: []
98
+ metadata: {}
107
99
  post_install_message:
108
100
  rdoc_options: []
109
101
  require_paths:
110
102
  - lib
111
103
  required_ruby_version: !ruby/object:Gem::Requirement
112
104
  requirements:
113
- - - ! '>='
105
+ - - '>='
114
106
  - !ruby/object:Gem::Version
115
- segments:
116
- - 0
117
- hash: 3458428500017664215
118
107
  version: '0'
119
- none: false
120
108
  required_rubygems_version: !ruby/object:Gem::Requirement
121
109
  requirements:
122
- - - ! '>='
110
+ - - '>='
123
111
  - !ruby/object:Gem::Version
124
- segments:
125
- - 0
126
- hash: 3458428500017664215
127
112
  version: '0'
128
- none: false
129
113
  requirements: []
130
114
  rubyforge_project:
131
- rubygems_version: 1.8.25
115
+ rubygems_version: 2.0.3
132
116
  signing_key:
133
- specification_version: 3
117
+ specification_version: 4
134
118
  summary: Editor pattern simplifies edition of multiple objects at once using ActiveModel
135
119
  test_files:
136
120
  - spec/spec_helper.rb