SFEley-acts_as_icontact 0.1.5 → 0.2.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/VERSION +1 -1
- data/acts_as_icontact.gemspec +18 -6
- data/init.rb +1 -0
- data/lib/acts_as_icontact/rails/macro.rb +15 -0
- data/lib/acts_as_icontact/rails.rb +21 -0
- data/rails/init.rb +3 -0
- data/spec/examples/schema.rb +15 -0
- data/spec/rails_spec.rb +36 -0
- data/spec/spec_helper.rb +4 -1
- data/spec/support/active_record/connection_adapters/nulldb_adapter.rb +217 -0
- data/spec/support/nulldb_rspec.rb +93 -0
- data/spec/{spec_fakeweb.rb → support/spec_fakeweb.rb} +0 -0
- metadata +16 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
data/acts_as_icontact.gemspec
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{acts_as_icontact}
|
5
|
-
s.version = "0.
|
5
|
+
s.version = "0.2.0"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Stephen Eley"]
|
9
|
-
s.date = %q{2009-07-
|
9
|
+
s.date = %q{2009-07-26}
|
10
10
|
s.description = %q{ActsAsIcontact connects Ruby applications with the iContact e-mail marketing service using the iContact API v2.0. Building on the RestClient gem, it offers two significant feature sets:
|
11
11
|
|
12
12
|
* Simple, consistent access to all resources in the iContact API; and
|
@@ -24,10 +24,13 @@ Gem::Specification.new do |s|
|
|
24
24
|
"Rakefile",
|
25
25
|
"VERSION",
|
26
26
|
"acts_as_icontact.gemspec",
|
27
|
+
"init.rb",
|
27
28
|
"lib/acts_as_icontact.rb",
|
28
29
|
"lib/acts_as_icontact/config.rb",
|
29
30
|
"lib/acts_as_icontact/connection.rb",
|
30
31
|
"lib/acts_as_icontact/exceptions.rb",
|
32
|
+
"lib/acts_as_icontact/rails.rb",
|
33
|
+
"lib/acts_as_icontact/rails/macro.rb",
|
31
34
|
"lib/acts_as_icontact/resource.rb",
|
32
35
|
"lib/acts_as_icontact/resource_collection.rb",
|
33
36
|
"lib/acts_as_icontact/resources/account.rb",
|
@@ -35,8 +38,11 @@ Gem::Specification.new do |s|
|
|
35
38
|
"lib/acts_as_icontact/resources/contact.rb",
|
36
39
|
"lib/acts_as_icontact/resources/list.rb",
|
37
40
|
"lib/acts_as_icontact/resources/message.rb",
|
41
|
+
"rails/init.rb",
|
38
42
|
"spec/config_spec.rb",
|
39
43
|
"spec/connection_spec.rb",
|
44
|
+
"spec/examples/schema.rb",
|
45
|
+
"spec/rails_spec.rb",
|
40
46
|
"spec/resource_collection_spec.rb",
|
41
47
|
"spec/resource_spec.rb",
|
42
48
|
"spec/resources/account_spec.rb",
|
@@ -45,8 +51,10 @@ Gem::Specification.new do |s|
|
|
45
51
|
"spec/resources/list_spec.rb",
|
46
52
|
"spec/resources/message_spec.rb",
|
47
53
|
"spec/spec.opts",
|
48
|
-
"spec/
|
49
|
-
"spec/
|
54
|
+
"spec/spec_helper.rb",
|
55
|
+
"spec/support/active_record/connection_adapters/nulldb_adapter.rb",
|
56
|
+
"spec/support/nulldb_rspec.rb",
|
57
|
+
"spec/support/spec_fakeweb.rb"
|
50
58
|
]
|
51
59
|
s.homepage = %q{http://github.com/SFEley/acts_as_icontact}
|
52
60
|
s.rdoc_options = ["--charset=UTF-8"]
|
@@ -57,6 +65,8 @@ Gem::Specification.new do |s|
|
|
57
65
|
s.test_files = [
|
58
66
|
"spec/config_spec.rb",
|
59
67
|
"spec/connection_spec.rb",
|
68
|
+
"spec/examples/schema.rb",
|
69
|
+
"spec/rails_spec.rb",
|
60
70
|
"spec/resource_collection_spec.rb",
|
61
71
|
"spec/resource_spec.rb",
|
62
72
|
"spec/resources/account_spec.rb",
|
@@ -64,8 +74,10 @@ Gem::Specification.new do |s|
|
|
64
74
|
"spec/resources/contact_spec.rb",
|
65
75
|
"spec/resources/list_spec.rb",
|
66
76
|
"spec/resources/message_spec.rb",
|
67
|
-
"spec/
|
68
|
-
"spec/
|
77
|
+
"spec/spec_helper.rb",
|
78
|
+
"spec/support/active_record/connection_adapters/nulldb_adapter.rb",
|
79
|
+
"spec/support/nulldb_rspec.rb",
|
80
|
+
"spec/support/spec_fakeweb.rb"
|
69
81
|
]
|
70
82
|
|
71
83
|
if s.respond_to? :specification_version then
|
data/init.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/rails/init.rb"
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module ActsAsIcontact
|
2
|
+
module Rails
|
3
|
+
module ClassMethods
|
4
|
+
module Macro
|
5
|
+
|
6
|
+
# The core macro for ActsAsIcontact's Rails integration. Establishes callbacks to keep Rails models in
|
7
|
+
# sync with iContact. See the README for more on what it does.
|
8
|
+
def acts_as_icontact(options = {})
|
9
|
+
true
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Load all of our Rails files
|
2
|
+
Dir[File.join(File.dirname(__FILE__), 'rails', '*.rb')].sort.each do |path|
|
3
|
+
filename = File.basename(path, '.rb')
|
4
|
+
require "acts_as_icontact/rails/#{filename}"
|
5
|
+
end
|
6
|
+
|
7
|
+
module ActsAsIcontact
|
8
|
+
module Rails
|
9
|
+
module ClassMethods
|
10
|
+
include Macro
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
if defined?(::ActiveRecord)
|
16
|
+
module ::ActiveRecord
|
17
|
+
class Base
|
18
|
+
extend ActsAsIcontact::Rails::ClassMethods
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/rails/init.rb
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
ActiveRecord::Schema.define do
|
2
|
+
create_table "people", :force => true do |t|
|
3
|
+
t.string "firstName"
|
4
|
+
t.string "surname"
|
5
|
+
t.string "email", :null => false
|
6
|
+
t.string "icontact_status"
|
7
|
+
t.string "status"
|
8
|
+
t.string "icontact_id"
|
9
|
+
t.datetime "icontact_created"
|
10
|
+
t.string "bounces"
|
11
|
+
t.string "custom_field"
|
12
|
+
t.datetime "created_at"
|
13
|
+
t.datetime "updated_at"
|
14
|
+
end
|
15
|
+
end
|
data/spec/rails_spec.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
+
|
3
|
+
require 'activerecord'
|
4
|
+
require 'rails/init'
|
5
|
+
|
6
|
+
# Dummy model
|
7
|
+
class Person < ActiveRecord::Base
|
8
|
+
# create_table "people", :force => true do |t|
|
9
|
+
# t.string "firstName"
|
10
|
+
# t.string "surname"
|
11
|
+
# t.string "email", :null => false
|
12
|
+
# t.string "icontact_status"
|
13
|
+
# t.string "status"
|
14
|
+
# t.string "icontact_id"
|
15
|
+
# t.datetime "icontact_created"
|
16
|
+
# t.string "bounces"
|
17
|
+
# t.string "custom_field"
|
18
|
+
# t.datetime "created_at"
|
19
|
+
# t.datetime "updated_at"
|
20
|
+
# end
|
21
|
+
|
22
|
+
acts_as_icontact
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "Rails integration" do
|
26
|
+
before(:all) do
|
27
|
+
ActiveRecord::Base.establish_connection :adapter => :nulldb,
|
28
|
+
:schema => File.dirname(__FILE__) + '/examples/schema.rb'
|
29
|
+
end
|
30
|
+
|
31
|
+
it "relies on a model with an email address" do
|
32
|
+
@person = Person.new(:email => "john@example.org")
|
33
|
+
@person.email.should == "john@example.org"
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,10 +1,13 @@
|
|
1
1
|
require 'spec'
|
2
2
|
|
3
3
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
4
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'support'))
|
4
5
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
5
6
|
require 'acts_as_icontact'
|
6
7
|
|
7
|
-
|
8
|
+
# Requires supporting files with custom matchers and macros, etc,
|
9
|
+
# in ./support/ and its subdirectories.
|
10
|
+
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
8
11
|
|
9
12
|
Spec::Runner.configure do |config|
|
10
13
|
# config.after(:each) do
|
@@ -0,0 +1,217 @@
|
|
1
|
+
require 'logger'
|
2
|
+
require 'stringio'
|
3
|
+
require 'singleton'
|
4
|
+
require 'activerecord'
|
5
|
+
require 'active_record/connection_adapters/abstract_adapter'
|
6
|
+
|
7
|
+
class ActiveRecord::Base
|
8
|
+
# Instantiate a new NullDB connection. Used by ActiveRecord internally.
|
9
|
+
def self.nulldb_connection(config)
|
10
|
+
ActiveRecord::ConnectionAdapters::NullDBAdapter.new(config)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class ActiveRecord::ConnectionAdapters::NullDBAdapter <
|
15
|
+
ActiveRecord::ConnectionAdapters::AbstractAdapter
|
16
|
+
|
17
|
+
class Statement
|
18
|
+
attr_reader :entry_point, :content
|
19
|
+
|
20
|
+
def initialize(entry_point, content = "")
|
21
|
+
@entry_point, @content = entry_point, content
|
22
|
+
end
|
23
|
+
|
24
|
+
def ==(other)
|
25
|
+
self.entry_point == other.entry_point
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
class Checkpoint < Statement
|
30
|
+
def initialize
|
31
|
+
super(:checkpoint, "")
|
32
|
+
end
|
33
|
+
|
34
|
+
def ==(other)
|
35
|
+
self.class == other.class
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
TableDefinition = ActiveRecord::ConnectionAdapters::TableDefinition
|
40
|
+
|
41
|
+
class NullObject
|
42
|
+
def method_missing(*args, &block)
|
43
|
+
nil
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# A convenience method for integratinginto RSpec. See README for example of
|
48
|
+
# use.
|
49
|
+
def self.insinuate_into_spec(config)
|
50
|
+
config.before :all do
|
51
|
+
ActiveRecord::Base.establish_connection(:adapter => :nulldb)
|
52
|
+
end
|
53
|
+
|
54
|
+
config.after :all do
|
55
|
+
ActiveRecord::Base.establish_connection(:test)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
# Recognized options:
|
60
|
+
#
|
61
|
+
# [+:schema+] path to the schema file, relative to RAILS_ROOT
|
62
|
+
def initialize(config={})
|
63
|
+
@log = StringIO.new
|
64
|
+
@logger = Logger.new(@log)
|
65
|
+
@last_unique_id = 0
|
66
|
+
@tables = {'schema_info' => TableDefinition.new(nil)}
|
67
|
+
@schema_path = config.fetch(:schema){ "db/schema.rb" }
|
68
|
+
super(nil, @logger)
|
69
|
+
end
|
70
|
+
|
71
|
+
# A log of every statement that has been "executed" by this connection adapter
|
72
|
+
# instance.
|
73
|
+
def execution_log
|
74
|
+
(@execution_log ||= [])
|
75
|
+
end
|
76
|
+
|
77
|
+
# A log of every statement that has been "executed" since the last time
|
78
|
+
# #checkpoint! was called, or since the connection was created.
|
79
|
+
def execution_log_since_checkpoint
|
80
|
+
checkpoint_index = @execution_log.rindex(Checkpoint.new)
|
81
|
+
checkpoint_index = checkpoint_index ? checkpoint_index + 1 : 0
|
82
|
+
@execution_log[(checkpoint_index..-1)]
|
83
|
+
end
|
84
|
+
|
85
|
+
# Inserts a checkpoint in the log. See also #execution_log_since_checkpoint.
|
86
|
+
def checkpoint!
|
87
|
+
self.execution_log << Checkpoint.new
|
88
|
+
end
|
89
|
+
|
90
|
+
def adapter_name
|
91
|
+
"NullDB"
|
92
|
+
end
|
93
|
+
|
94
|
+
def supports_migrations?
|
95
|
+
true
|
96
|
+
end
|
97
|
+
|
98
|
+
def create_table(table_name, options = {})
|
99
|
+
table_definition = ActiveRecord::ConnectionAdapters::TableDefinition.new(self)
|
100
|
+
unless options[:id] == false
|
101
|
+
table_definition.primary_key(options[:primary_key] || "id")
|
102
|
+
end
|
103
|
+
|
104
|
+
yield table_definition
|
105
|
+
|
106
|
+
@tables[table_name] = table_definition
|
107
|
+
end
|
108
|
+
|
109
|
+
def add_fk_constraint(*args)
|
110
|
+
# NOOP
|
111
|
+
end
|
112
|
+
|
113
|
+
def add_pk_constraint(*args)
|
114
|
+
# NOOP
|
115
|
+
end
|
116
|
+
|
117
|
+
# Retrieve the table names defined by the schema
|
118
|
+
def tables
|
119
|
+
@tables.keys.map(&:to_s)
|
120
|
+
end
|
121
|
+
|
122
|
+
# Retrieve table columns as defined by the schema
|
123
|
+
def columns(table_name, name = nil)
|
124
|
+
if @tables.size <= 1
|
125
|
+
ActiveRecord::Migration.verbose = false
|
126
|
+
Kernel.load(File.join(@schema_path))
|
127
|
+
end
|
128
|
+
table = @tables[table_name]
|
129
|
+
table.columns.map do |col_def|
|
130
|
+
ActiveRecord::ConnectionAdapters::Column.new(col_def.name.to_s,
|
131
|
+
col_def.default,
|
132
|
+
col_def.type,
|
133
|
+
col_def.null)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
def execute(statement, name = nil)
|
138
|
+
self.execution_log << Statement.new(entry_point, statement)
|
139
|
+
NullObject.new
|
140
|
+
end
|
141
|
+
|
142
|
+
def insert(statement, name, primary_key, object_id, sequence_name)
|
143
|
+
returning(object_id || next_unique_id) do
|
144
|
+
with_entry_point(:insert) do
|
145
|
+
super(statement, name, primary_key, object_id, sequence_name)
|
146
|
+
end
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
def update(statement, name=nil)
|
151
|
+
with_entry_point(:update) do
|
152
|
+
super(statement, name)
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
def delete(statement, name=nil)
|
157
|
+
with_entry_point(:delete) do
|
158
|
+
super(statement, name)
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
def select_all(statement, name=nil)
|
163
|
+
with_entry_point(:select_all) do
|
164
|
+
super(statement, name)
|
165
|
+
end
|
166
|
+
end
|
167
|
+
|
168
|
+
def select_one(statement, name=nil)
|
169
|
+
with_entry_point(:select_one) do
|
170
|
+
super(statement, name)
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
def select_value(statement, name=nil)
|
175
|
+
with_entry_point(:select_value) do
|
176
|
+
super(statement, name)
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
protected
|
181
|
+
|
182
|
+
def select(statement, name)
|
183
|
+
returning([]) do
|
184
|
+
self.execution_log << Statement.new(entry_point, statement)
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
private
|
189
|
+
|
190
|
+
def next_unique_id
|
191
|
+
@last_unique_id += 1
|
192
|
+
end
|
193
|
+
|
194
|
+
def with_entry_point(method)
|
195
|
+
if entry_point.nil?
|
196
|
+
with_thread_local_variable(:entry_point, method) do
|
197
|
+
yield
|
198
|
+
end
|
199
|
+
else
|
200
|
+
yield
|
201
|
+
end
|
202
|
+
end
|
203
|
+
|
204
|
+
def entry_point
|
205
|
+
Thread.current[:entry_point]
|
206
|
+
end
|
207
|
+
|
208
|
+
def with_thread_local_variable(name, value)
|
209
|
+
old_value = Thread.current[name]
|
210
|
+
Thread.current[name] = value
|
211
|
+
begin
|
212
|
+
yield
|
213
|
+
ensure
|
214
|
+
Thread.current[name] = old_value
|
215
|
+
end
|
216
|
+
end
|
217
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
require 'active_record/connection_adapters/nulldb_adapter'
|
2
|
+
|
3
|
+
module NullDB
|
4
|
+
module RSpec
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
module NullDB::RSpec::NullifiedDatabase
|
9
|
+
NullDBAdapter = ActiveRecord::ConnectionAdapters::NullDBAdapter
|
10
|
+
|
11
|
+
class HaveExecuted
|
12
|
+
|
13
|
+
def initialize(entry_point)
|
14
|
+
@entry_point = entry_point
|
15
|
+
end
|
16
|
+
|
17
|
+
def matches?(connection)
|
18
|
+
log = connection.execution_log_since_checkpoint
|
19
|
+
if entry_point == :anything
|
20
|
+
not log.empty?
|
21
|
+
else
|
22
|
+
log.include?(NullDBAdapter::Statement.new(@entry_point))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
def description
|
27
|
+
"connection should execute #{@entry_point} statement"
|
28
|
+
end
|
29
|
+
|
30
|
+
def failure_message
|
31
|
+
" did not execute #{@entry_point} statement when it should have"
|
32
|
+
end
|
33
|
+
|
34
|
+
def negative_failure_message
|
35
|
+
" executed #{@entry_point} statement when it should not have"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def self.globally_nullify_database
|
40
|
+
Spec::Runner.configure do |config|
|
41
|
+
nullify_database(config)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def self.contextually_nullify_database(context)
|
46
|
+
nullify_database(context)
|
47
|
+
end
|
48
|
+
|
49
|
+
# A matcher for asserting that database statements have (or have not) been
|
50
|
+
# executed. Usage:
|
51
|
+
#
|
52
|
+
# ActiveRecord::Base.connection.should have_executed(:insert)
|
53
|
+
#
|
54
|
+
# The types of statement that can be matched mostly mirror the public
|
55
|
+
# operations available in
|
56
|
+
# ActiveRecord::ConnectionAdapters::DatabaseStatements:
|
57
|
+
# - :select_one
|
58
|
+
# - :select_all
|
59
|
+
# - :select_value
|
60
|
+
# - :insert
|
61
|
+
# - :update
|
62
|
+
# - :delete
|
63
|
+
# - :execute
|
64
|
+
#
|
65
|
+
# There is also a special :anything symbol that will match any operation.
|
66
|
+
def have_executed(entry_point)
|
67
|
+
HaveExecuted.new(entry_point)
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
|
72
|
+
def self.included(other)
|
73
|
+
if other.ancestors.include?(Spec::Rails::Example::RailsExampleGroup)
|
74
|
+
contextually_nullify_database(other)
|
75
|
+
else
|
76
|
+
globally_nullify_database
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
def self.nullify_database(receiver)
|
81
|
+
receiver.before :all do
|
82
|
+
ActiveRecord::Base.establish_connection(:adapter => :nulldb)
|
83
|
+
end
|
84
|
+
|
85
|
+
receiver.before :each do
|
86
|
+
ActiveRecord::Base.connection.checkpoint!
|
87
|
+
end
|
88
|
+
|
89
|
+
receiver.after :all do
|
90
|
+
ActiveRecord::Base.establish_connection(:test)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: SFEley-acts_as_icontact
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen Eley
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-07-
|
12
|
+
date: 2009-07-26 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -29,10 +29,13 @@ files:
|
|
29
29
|
- Rakefile
|
30
30
|
- VERSION
|
31
31
|
- acts_as_icontact.gemspec
|
32
|
+
- init.rb
|
32
33
|
- lib/acts_as_icontact.rb
|
33
34
|
- lib/acts_as_icontact/config.rb
|
34
35
|
- lib/acts_as_icontact/connection.rb
|
35
36
|
- lib/acts_as_icontact/exceptions.rb
|
37
|
+
- lib/acts_as_icontact/rails.rb
|
38
|
+
- lib/acts_as_icontact/rails/macro.rb
|
36
39
|
- lib/acts_as_icontact/resource.rb
|
37
40
|
- lib/acts_as_icontact/resource_collection.rb
|
38
41
|
- lib/acts_as_icontact/resources/account.rb
|
@@ -40,8 +43,11 @@ files:
|
|
40
43
|
- lib/acts_as_icontact/resources/contact.rb
|
41
44
|
- lib/acts_as_icontact/resources/list.rb
|
42
45
|
- lib/acts_as_icontact/resources/message.rb
|
46
|
+
- rails/init.rb
|
43
47
|
- spec/config_spec.rb
|
44
48
|
- spec/connection_spec.rb
|
49
|
+
- spec/examples/schema.rb
|
50
|
+
- spec/rails_spec.rb
|
45
51
|
- spec/resource_collection_spec.rb
|
46
52
|
- spec/resource_spec.rb
|
47
53
|
- spec/resources/account_spec.rb
|
@@ -50,8 +56,10 @@ files:
|
|
50
56
|
- spec/resources/list_spec.rb
|
51
57
|
- spec/resources/message_spec.rb
|
52
58
|
- spec/spec.opts
|
53
|
-
- spec/spec_fakeweb.rb
|
54
59
|
- spec/spec_helper.rb
|
60
|
+
- spec/support/active_record/connection_adapters/nulldb_adapter.rb
|
61
|
+
- spec/support/nulldb_rspec.rb
|
62
|
+
- spec/support/spec_fakeweb.rb
|
55
63
|
has_rdoc: false
|
56
64
|
homepage: http://github.com/SFEley/acts_as_icontact
|
57
65
|
post_install_message:
|
@@ -81,6 +89,8 @@ summary: Automatic bridge between iContact e-mail marketing service and Rails Ac
|
|
81
89
|
test_files:
|
82
90
|
- spec/config_spec.rb
|
83
91
|
- spec/connection_spec.rb
|
92
|
+
- spec/examples/schema.rb
|
93
|
+
- spec/rails_spec.rb
|
84
94
|
- spec/resource_collection_spec.rb
|
85
95
|
- spec/resource_spec.rb
|
86
96
|
- spec/resources/account_spec.rb
|
@@ -88,5 +98,7 @@ test_files:
|
|
88
98
|
- spec/resources/contact_spec.rb
|
89
99
|
- spec/resources/list_spec.rb
|
90
100
|
- spec/resources/message_spec.rb
|
91
|
-
- spec/spec_fakeweb.rb
|
92
101
|
- spec/spec_helper.rb
|
102
|
+
- spec/support/active_record/connection_adapters/nulldb_adapter.rb
|
103
|
+
- spec/support/nulldb_rspec.rb
|
104
|
+
- spec/support/spec_fakeweb.rb
|