zertico 0.2.0 → 0.3.0

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/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in zertico.gemspec
4
- gemspec
4
+ gemspec
data/Rakefile CHANGED
@@ -1,7 +1,7 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
3
 
4
4
  RSpec::Core::RakeTask.new
5
5
 
6
- desc "Default Task"
6
+ desc 'Default Task'
7
7
  task :default => [ :spec ]
@@ -0,0 +1,42 @@
1
+ module Zertico
2
+ class Accessor
3
+ def initialize(object)
4
+ instance_variable_set("@#{interface_name}", object)
5
+ end
6
+
7
+ def self.find(id)
8
+ instance_variable_set("@#{interface_name}", interface_class.find(id))
9
+ self
10
+ end
11
+
12
+ def method_missing(method_name, *args)
13
+ if instance_variable_get("@#{interface_name}").respond_to?(method_name)
14
+ return instance_variable_get("@#{interface_name}").send(method_name, *args)
15
+ end
16
+ super
17
+ end
18
+
19
+ def respond_to_missing?(method_name, include_private = false)
20
+ return true if interface_class.respond_to?(method_name)
21
+ super
22
+ end
23
+
24
+ protected
25
+
26
+ def self.interface_name
27
+ self.name.chomp('Accessor').singularize.underscore
28
+ end
29
+
30
+ def interface_name
31
+ self.class.name.chomp('Accessor').singularize.underscore
32
+ end
33
+
34
+ def self.interface_class
35
+ self.interface_name.camelize.constantize
36
+ end
37
+
38
+ def interface_class
39
+ self.interface_name.camelize.constantize
40
+ end
41
+ end
42
+ end
@@ -1,4 +1,4 @@
1
- require "action_controller"
1
+ require 'action_controller'
2
2
 
3
3
  module Zertico
4
4
  class Controller < ActionController::Base
@@ -51,4 +51,4 @@ module Zertico
51
51
  end
52
52
  end
53
53
  end
54
- end
54
+ end
@@ -31,7 +31,7 @@ module Zertico
31
31
  protected
32
32
 
33
33
  def interface_name
34
- self.class.name.chomp("Controller").split("::").last.singularize.underscore
34
+ self.class.name.chomp('Controller').split('::').last.singularize.underscore
35
35
  end
36
36
 
37
37
  def interface_class
@@ -1,3 +1,3 @@
1
1
  module Zertico
2
- VERSION = "0.2.0"
3
- end
2
+ VERSION = '0.3.0'
3
+ end
data/lib/zertico.rb CHANGED
@@ -1,7 +1,8 @@
1
- require "zertico/version"
2
- require "active_support/core_ext/string"
1
+ require 'zertico/version'
2
+ require 'active_support/core_ext/string'
3
3
 
4
4
  module Zertico
5
- autoload :Controller, "zertico/controller"
6
- autoload :Service, "zertico/service"
5
+ autoload :Controller, 'zertico/controller'
6
+ autoload :Service, 'zertico/service'
7
+ autoload :Accessor, 'zertico/accessor'
7
8
  end
@@ -1,2 +1,5 @@
1
1
  class User
2
+ def name
3
+ 'User Name'
4
+ end
2
5
  end
@@ -0,0 +1,2 @@
1
+ class UserAccessor < Zertico::Accessor
2
+ end
data/spec/spec_helper.rb CHANGED
@@ -1,5 +1,5 @@
1
- require "rspec"
2
- require "coveralls"
1
+ require 'rspec'
2
+ require 'coveralls'
3
3
 
4
4
  Coveralls.wear!
5
5
 
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe Zertico::Accessor do
4
+ let(:user) { User.new }
5
+
6
+ describe '.initialize' do
7
+ it 'should initialize the interface object on a instance variable' do
8
+ UserAccessor.new(user).instance_variable_get('@user').should == user
9
+ end
10
+ end
11
+
12
+ describe '.find' do
13
+ before :each do
14
+ User.stub(:find => user)
15
+ end
16
+
17
+ it 'should initialize the interface object on a instance variable' do
18
+ UserAccessor.find(3).instance_variable_get('@user').should == user
19
+ end
20
+ end
21
+
22
+ describe '#method_missing' do
23
+ it 'should pass the method to the interface model if it responds to it' do
24
+ UserAccessor.new(user).should respond_to(:name)
25
+ end
26
+ end
27
+ end
@@ -1,109 +1,109 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe Zertico::Controller do
4
4
  let(:controller) { Zertico::Controller.new }
5
5
  let(:user_controller) { UserController.new }
6
6
 
7
- context "without a custom service" do
8
- it "should extend Zertico::Service" do
7
+ context 'without a custom service' do
8
+ it 'should extend Zertico::Service' do
9
9
  controller.should respond_to :all
10
10
  end
11
11
  end
12
12
 
13
- context "with a custom service" do
14
- it "should extend Zertico::Service" do
13
+ context 'with a custom service' do
14
+ it 'should extend Zertico::Service' do
15
15
  user_controller.should respond_to :all
16
16
  end
17
17
 
18
- it "should extend it!" do
18
+ it 'should extend it!' do
19
19
  user_controller.should respond_to :user
20
20
  end
21
21
  end
22
22
 
23
- context "#index" do
23
+ context '#index' do
24
24
  before :each do
25
- controller.stub(:all).and_return({ :user => "user" })
25
+ controller.stub(:all).and_return({ :user => 'user' })
26
26
  controller.index
27
27
  end
28
28
 
29
- it "should initialize a collection of objects" do
30
- controller.instance_variable_get("@user").should == "user"
29
+ it 'should initialize a collection of objects' do
30
+ controller.instance_variable_get('@user').should == 'user'
31
31
  end
32
32
  end
33
33
 
34
- context "#new" do
34
+ context '#new' do
35
35
  before :each do
36
- controller.stub(:build).and_return({ :user => "user" })
36
+ controller.stub(:build).and_return({ :user => 'user' })
37
37
  controller.new
38
38
  end
39
39
 
40
- it "should initialize an object" do
41
- controller.instance_variable_get("@user").should == "user"
40
+ it 'should initialize an object' do
41
+ controller.instance_variable_get('@user').should == 'user'
42
42
  end
43
43
  end
44
44
 
45
- context "#show" do
45
+ context '#show' do
46
46
  before :each do
47
47
  controller.stub(:params).and_return({ :id => 1 })
48
- controller.stub(:find).and_return({ :user => "user" })
48
+ controller.stub(:find).and_return({ :user => 'user' })
49
49
  controller.show
50
50
  end
51
51
 
52
- it "should initialize an object" do
53
- controller.instance_variable_get("@user").should == "user"
52
+ it 'should initialize an object' do
53
+ controller.instance_variable_get('@user').should == 'user'
54
54
  end
55
55
  end
56
56
 
57
- context "#edit" do
57
+ context '#edit' do
58
58
  before :each do
59
59
  controller.stub(:params).and_return({ :id => 1 })
60
- controller.stub(:find).and_return({ :user => "user" })
60
+ controller.stub(:find).and_return({ :user => 'user' })
61
61
  controller.edit
62
62
  end
63
63
 
64
- it "should initialize an object" do
65
- controller.instance_variable_get("@user").should == "user"
64
+ it 'should initialize an object' do
65
+ controller.instance_variable_get('@user').should == 'user'
66
66
  end
67
67
  end
68
68
 
69
- context "#create" do
69
+ context '#create' do
70
70
  before :each do
71
71
  controller.stub_chain(:interface_name, :to_sym).and_return(:user)
72
- controller.stub(:params).and_return({ :user => "user" })
73
- controller.stub(:generate => { :user => "user" } )
72
+ controller.stub(:params).and_return({ :user => 'user' })
73
+ controller.stub(:generate => { :user => 'user' } )
74
74
  controller.stub(:respond_with)
75
75
  controller.create
76
76
  end
77
77
 
78
- it "should create an object" do
79
- controller.instance_variable_get("@user").should == "user"
78
+ it 'should create an object' do
79
+ controller.instance_variable_get('@user').should == 'user'
80
80
  end
81
81
  end
82
82
 
83
- context "#update" do
83
+ context '#update' do
84
84
  before :each do
85
85
  controller.stub(:interface_name, :to_sym).and_return(:user)
86
- controller.stub(:params).and_return({:id => 1, :user => "user" })
87
- controller.stub(:modify => { :user => "user" })
86
+ controller.stub(:params).and_return({:id => 1, :user => 'user' })
87
+ controller.stub(:modify => { :user => 'user' })
88
88
  controller.stub(:respond_with)
89
89
  controller.update
90
90
  end
91
91
 
92
- it "should update an object" do
93
- controller.instance_variable_get("@user").should == "user"
92
+ it 'should update an object' do
93
+ controller.instance_variable_get('@user').should == 'user'
94
94
  end
95
95
  end
96
96
 
97
- context "#destroy" do
97
+ context '#destroy' do
98
98
  before :each do
99
99
  controller.stub(:params).and_return({:id => 1})
100
- controller.stub(:delete => { :user => "user" })
100
+ controller.stub(:delete => { :user => 'user' })
101
101
  controller.stub(:respond_with)
102
102
  controller.destroy
103
103
  end
104
104
 
105
- it "should destroy an object" do
106
- controller.instance_variable_get("@user").should == "user"
105
+ it 'should destroy an object' do
106
+ controller.instance_variable_get('@user').should == 'user'
107
107
  end
108
108
  end
109
109
  end
@@ -1,84 +1,84 @@
1
- require "spec_helper"
1
+ require 'spec_helper'
2
2
 
3
3
  describe Zertico::Service do
4
4
  let(:controller) { UserController.new }
5
5
  let(:admin_controller) { Admin::UserController.new }
6
6
  let(:object) { Object.new }
7
7
 
8
- context "should find the interface class" do
9
- it "on a non namespaced controller" do
8
+ context 'should find the interface class' do
9
+ it 'on a non namespaced controller' do
10
10
  controller.send(:interface_class).should == User
11
11
  end
12
12
 
13
- it "on a namespaced controller" do
13
+ it 'on a namespaced controller' do
14
14
  admin_controller.send(:interface_class).should == User
15
15
  end
16
16
  end
17
17
 
18
- context "#all" do
18
+ context '#all' do
19
19
  before :each do
20
20
  controller.stub_chain(:interface_name, :pluralize, :to_sym).and_return(:users)
21
21
  controller.stub_chain(:interface_class, :all).and_return([])
22
22
  end
23
23
 
24
- it "should return a collection of objects" do
24
+ it 'should return a collection of objects' do
25
25
  controller.all.should == { :users => [] }
26
26
  end
27
27
  end
28
28
 
29
- context "#build" do
29
+ context '#build' do
30
30
  before :each do
31
31
  controller.stub_chain(:interface_name, :to_sym).and_return(:user)
32
32
  controller.stub_chain(:interface_class, :new).and_return(object)
33
33
  end
34
34
 
35
- it "should return a new object" do
35
+ it 'should return a new object' do
36
36
  controller.build.should == { :user => object }
37
37
  end
38
38
  end
39
39
 
40
- context "#find" do
40
+ context '#find' do
41
41
  before :each do
42
42
  controller.stub_chain(:interface_name, :to_sym).and_return(:user)
43
43
  controller.stub_chain(:interface_class, :find).with(1).and_return(object)
44
44
  end
45
45
 
46
- it "should return the specified object" do
46
+ it 'should return the specified object' do
47
47
  controller.find(1).should == { :user => object }
48
48
  end
49
49
  end
50
50
 
51
- context "#generate" do
51
+ context '#generate' do
52
52
  before :each do
53
53
  controller.stub_chain(:interface_name, :to_sym).and_return(:user)
54
54
  controller.stub_chain(:interface_class, :create).with({}).and_return(object)
55
55
  end
56
56
 
57
- it "should return the created object" do
57
+ it 'should return the created object' do
58
58
  controller.generate({}).should == { :user => object }
59
59
  end
60
60
  end
61
61
 
62
- context "#modify" do
62
+ context '#modify' do
63
63
  before :each do
64
64
  controller.stub(:find).with(1).and_return({ :user => object })
65
65
  object.stub(:update_attributes).with({}).and_return(true)
66
66
  controller.stub_chain(:interface_name, :to_sym).and_return(:user)
67
67
  end
68
68
 
69
- it "should return the updated object" do
69
+ it 'should return the updated object' do
70
70
  controller.modify(1, {}).should == { :user => object }
71
71
  end
72
72
  end
73
73
 
74
- context "#delete" do
74
+ context '#delete' do
75
75
  before :each do
76
76
  controller.stub(:find).with(1).and_return({ :user => object })
77
77
  object.stub(:destroy).and_return(true)
78
78
  controller.stub_chain(:interface_name, :to_sym).and_return(:user)
79
79
  end
80
80
 
81
- it "should return the destroyed object" do
81
+ it 'should return the destroyed object' do
82
82
  controller.delete(1).should == { :user => object }
83
83
  end
84
84
  end
data/zertico.gemspec CHANGED
@@ -6,18 +6,17 @@ require 'zertico/version'
6
6
  Gem::Specification.new do |gem|
7
7
  gem.name = "zertico"
8
8
  gem.version = Zertico::VERSION
9
- gem.authors = ["Paulo Henrique Lopes Ribeiro"]
10
- gem.email = ["plribeiro3000@gmail.com"]
9
+ gem.authors = ['Paulo Henrique Lopes Ribeiro']
10
+ gem.email = ['plribeiro3000@gmail.com']
11
11
  gem.description = %q{Easy Rails development using the Zertico Way}
12
12
  gem.summary = %q{Models and patterns used by Zertico}
13
- gem.homepage = ""
14
13
 
15
14
  gem.files = `git ls-files`.split($/)
16
15
  gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
17
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
- gem.require_paths = ["lib"]
16
+ gem.test_files = gem.files.grep(%r{^(test|spec|features|gemfiles)/})
17
+ gem.require_paths = ['lib']
19
18
 
20
- gem.add_runtime_dependency "rails"
21
- gem.add_development_dependency "rspec"
22
- gem.add_development_dependency "coveralls"
23
- end
19
+ gem.add_runtime_dependency 'rails'
20
+ gem.add_development_dependency 'rspec'
21
+ gem.add_development_dependency 'coveralls'
22
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zertico
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-05-28 00:00:00.000000000 Z
12
+ date: 2013-06-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -78,19 +78,22 @@ files:
78
78
  - gemfiles/Gemfile.rails3.1
79
79
  - gemfiles/Gemfile.rails3.2
80
80
  - lib/zertico.rb
81
+ - lib/zertico/accessor.rb
81
82
  - lib/zertico/controller.rb
82
83
  - lib/zertico/service.rb
83
84
  - lib/zertico/version.rb
84
85
  - spec/fake_app/admin/user_controller.rb
85
86
  - spec/fake_app/admin/user_service.rb
86
87
  - spec/fake_app/user.rb
88
+ - spec/fake_app/user_accessor.rb
87
89
  - spec/fake_app/user_controller.rb
88
90
  - spec/fake_app/user_service.rb
89
91
  - spec/spec_helper.rb
92
+ - spec/zertico/accessor_spec.rb
90
93
  - spec/zertico/controller_spec.rb
91
94
  - spec/zertico/service_spec.rb
92
95
  - zertico.gemspec
93
- homepage: ''
96
+ homepage:
94
97
  licenses: []
95
98
  post_install_message:
96
99
  rdoc_options: []
@@ -104,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
107
  version: '0'
105
108
  segments:
106
109
  - 0
107
- hash: -3374581575376530341
110
+ hash: 1292267407537345106
108
111
  required_rubygems_version: !ruby/object:Gem::Requirement
109
112
  none: false
110
113
  requirements:
@@ -113,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
113
116
  version: '0'
114
117
  segments:
115
118
  - 0
116
- hash: -3374581575376530341
119
+ hash: 1292267407537345106
117
120
  requirements: []
118
121
  rubyforge_project:
119
122
  rubygems_version: 1.8.25
@@ -121,11 +124,15 @@ signing_key:
121
124
  specification_version: 3
122
125
  summary: Models and patterns used by Zertico
123
126
  test_files:
127
+ - gemfiles/Gemfile.rails3.1
128
+ - gemfiles/Gemfile.rails3.2
124
129
  - spec/fake_app/admin/user_controller.rb
125
130
  - spec/fake_app/admin/user_service.rb
126
131
  - spec/fake_app/user.rb
132
+ - spec/fake_app/user_accessor.rb
127
133
  - spec/fake_app/user_controller.rb
128
134
  - spec/fake_app/user_service.rb
129
135
  - spec/spec_helper.rb
136
+ - spec/zertico/accessor_spec.rb
130
137
  - spec/zertico/controller_spec.rb
131
138
  - spec/zertico/service_spec.rb