stratagem 0.2.0 → 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/LICENSE +29 -0
- data/Manifest +40 -38
- data/Rakefile +3 -3
- data/lib/stratagem.rb +22 -7
- data/lib/stratagem/authentication.rb +2 -1
- data/lib/stratagem/auto_mock/aquifer.rb +88 -15
- data/lib/stratagem/auto_mock/factory.rb +19 -30
- data/lib/stratagem/auto_mock/value_generator.rb +3 -1
- data/lib/stratagem/client.rb +3 -2
- data/lib/stratagem/crawler/authentication.rb +10 -3
- data/lib/stratagem/crawler/form.rb +2 -2
- data/lib/stratagem/crawler/html_utils.rb +12 -1
- data/lib/stratagem/crawler/parameter_resolver.rb +18 -4
- data/lib/stratagem/crawler/route_invoker.rb +58 -16
- data/lib/stratagem/crawler/session.rb +13 -5
- data/lib/stratagem/crawler/site_model.rb +20 -8
- data/lib/stratagem/extensions/object.rb +2 -2
- data/lib/stratagem/extensions/string.rb +2 -2
- data/lib/stratagem/instrumentation.rb +18 -0
- data/lib/stratagem/{framework_extensions → instrumentation}/method_invocation.rb +1 -1
- data/lib/stratagem/instrumentation/models.rb +25 -0
- data/lib/stratagem/instrumentation/models/annotations.rb +114 -0
- data/lib/stratagem/instrumentation/models/association.rb +40 -0
- data/lib/stratagem/instrumentation/models/authentication.rb +7 -0
- data/lib/stratagem/{framework_extensions/models/adapters → instrumentation/models/authentication}/authlogic/detect.rb +2 -2
- data/lib/stratagem/instrumentation/models/authentication/authlogic/instrumentation.rb +13 -0
- data/lib/stratagem/{framework_extensions/models/adapters → instrumentation/models/authentication}/authlogic/metadata.rb +1 -3
- data/lib/stratagem/instrumentation/models/authentication/devise/detect.rb +11 -0
- data/lib/stratagem/instrumentation/models/authentication/devise/instrumentation.rb +18 -0
- data/lib/stratagem/{framework_extensions/models/adapters → instrumentation/models/authentication}/devise/metadata.rb +7 -3
- data/lib/stratagem/{framework_extensions/models/adapters/util/authentication_metadata.rb → instrumentation/models/authentication/metadata.rb} +2 -2
- data/lib/stratagem/{framework_extensions/models/adapters → instrumentation/models/authentication}/restful_authentication/detect.rb +2 -4
- data/lib/stratagem/{framework_extensions/models/adapters/restful_authentication/extensions.rb → instrumentation/models/authentication/restful_authentication/instrumentation.rb} +1 -1
- data/lib/stratagem/{framework_extensions/models/adapters → instrumentation/models/authentication}/restful_authentication/metadata.rb +2 -2
- data/lib/stratagem/{framework_extensions → instrumentation}/models/detect.rb +1 -1
- data/lib/stratagem/{framework_extensions → instrumentation}/models/metadata.rb +6 -4
- data/lib/stratagem/{framework_extensions → instrumentation}/models/mocking.rb +1 -1
- data/lib/stratagem/instrumentation/models/persistence.rb +9 -0
- data/lib/stratagem/instrumentation/models/persistence/active_record/detect.rb +18 -0
- data/lib/stratagem/{framework_extensions/models/adapters → instrumentation/models/persistence}/active_record/extensions.rb +5 -1
- data/lib/stratagem/{framework_extensions/models/adapters → instrumentation/models/persistence}/active_record/metadata.rb +25 -9
- data/lib/stratagem/{framework_extensions/models/adapters → instrumentation/models/persistence}/active_record/tracing.rb +4 -2
- data/lib/stratagem/instrumentation/models/persistence/common/detect.rb +7 -0
- data/lib/stratagem/{framework_extensions/models/adapters → instrumentation/models/persistence}/common/extensions.rb +0 -0
- data/lib/stratagem/{framework_extensions/models/adapters → instrumentation/models/persistence}/common/metadata.rb +6 -2
- data/lib/stratagem/instrumentation/models/persistence/common/tracing.rb +4 -0
- data/lib/stratagem/instrumentation/models/support_libraries.rb +7 -0
- data/lib/stratagem/{framework_extensions/models/adapters → instrumentation/models/support_libraries}/friendly_id/detect.rb +2 -2
- data/lib/stratagem/{framework_extensions/models/adapters → instrumentation/models/support_libraries}/friendly_id/metadata.rb +2 -2
- data/lib/stratagem/instrumentation/models/support_libraries/state_machine/detect.rb +11 -0
- data/lib/stratagem/instrumentation/models/support_libraries/state_machine/metadata.rb +17 -0
- data/lib/stratagem/{framework_extensions → instrumentation}/models/tracing.rb +2 -2
- data/lib/stratagem/{framework_extensions → instrumentation}/rails.rb +0 -0
- data/lib/stratagem/{framework_extensions → instrumentation}/rails2/action_controller.rb +0 -0
- data/lib/stratagem/{framework_extensions → instrumentation}/rails2/action_mailer.rb +0 -0
- data/lib/stratagem/{framework_extensions → instrumentation}/rails3/parameters.rb +0 -0
- data/lib/stratagem/{framework_extensions → instrumentation}/request_forgery_protection.rb +0 -0
- data/lib/stratagem/model/application.rb +30 -15
- data/lib/stratagem/model/components/controller.rb +2 -2
- data/lib/stratagem/model/components/reference.rb +2 -2
- data/lib/stratagem/model/components/view.rb +1 -1
- data/lib/stratagem/model_builder.rb +19 -8
- data/lib/stratagem/scanner.rb +1 -1
- data/lib/stratagem/site_crawler.rb +4 -2
- data/stratagem.gemspec +7 -7
- data/templates/install/tasks/stratagem.rake +9 -1
- metadata +86 -82
- data/lib/stratagem/framework_extensions.rb +0 -18
- data/lib/stratagem/framework_extensions/models.rb +0 -21
- data/lib/stratagem/framework_extensions/models/adapters/active_record/detect.rb +0 -7
- data/lib/stratagem/framework_extensions/models/adapters/authlogic/extensions.rb +0 -10
- data/lib/stratagem/framework_extensions/models/adapters/authlogic/tracing.rb +0 -4
- data/lib/stratagem/framework_extensions/models/adapters/common/detect.rb +0 -7
- data/lib/stratagem/framework_extensions/models/adapters/common/tracing.rb +0 -4
- data/lib/stratagem/framework_extensions/models/adapters/devise/detect.rb +0 -11
- data/lib/stratagem/framework_extensions/models/adapters/devise/extensions.rb +0 -0
- data/lib/stratagem/framework_extensions/models/adapters/devise/tracing.rb +0 -4
- data/lib/stratagem/framework_extensions/models/adapters/friendly_id/extensions.rb +0 -0
- data/lib/stratagem/framework_extensions/models/adapters/friendly_id/tracing.rb +0 -4
- data/lib/stratagem/framework_extensions/models/adapters/restful_authentication/tracing.rb +0 -4
- data/lib/stratagem/framework_extensions/models/annotations.rb +0 -78
@@ -1,18 +0,0 @@
|
|
1
|
-
module Stratagem::ApplicationExtensions; end
|
2
|
-
|
3
|
-
require 'stratagem/framework_extensions/rails'
|
4
|
-
require 'stratagem/framework_extensions/method_invocation'
|
5
|
-
require 'stratagem/framework_extensions/models'
|
6
|
-
require 'stratagem/framework_extensions/request_forgery_protection'
|
7
|
-
|
8
|
-
if (Stratagem.rails_3?)
|
9
|
-
require 'stratagem/framework_extensions/rails3/parameters'
|
10
|
-
elsif (Stratagem.rails_2?)
|
11
|
-
require 'stratagem/framework_extensions/rails2/action_controller'
|
12
|
-
require 'stratagem/framework_extensions/rails2/action_mailer'
|
13
|
-
else
|
14
|
-
raise "Unsupported Rails version #{Stratagem.rails_version}"
|
15
|
-
end
|
16
|
-
|
17
|
-
|
18
|
-
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module Stratagem::ApplicationExtensions::Models; end
|
2
|
-
module Stratagem::ApplicationExtensions::Models::Adapters; end
|
3
|
-
|
4
|
-
require 'stratagem/framework_extensions/models/mocking'
|
5
|
-
require 'stratagem/framework_extensions/models/metadata'
|
6
|
-
require 'stratagem/framework_extensions/models/tracing'
|
7
|
-
require 'stratagem/framework_extensions/models/annotations'
|
8
|
-
require 'stratagem/framework_extensions/models/detect'
|
9
|
-
|
10
|
-
base = File.join(File.dirname(__FILE__), 'models', 'adapters', 'util')
|
11
|
-
Dir.entries(base).select {|s| s =~ /\.rb$/}.each {|helper|
|
12
|
-
require File.join(base, helper.gsub(/\.rb/, ''))
|
13
|
-
}
|
14
|
-
|
15
|
-
base = File.join(File.dirname(__FILE__), 'models', 'adapters')
|
16
|
-
Dir.entries(base).select {|s| s !~ /^\./ && s != 'util' }.each {|adapter_dir|
|
17
|
-
require File.join(base, adapter_dir, 'detect')
|
18
|
-
require File.join(base, adapter_dir, 'tracing')
|
19
|
-
require File.join(base, adapter_dir, 'metadata')
|
20
|
-
require File.join(base, adapter_dir, 'extensions')
|
21
|
-
}
|
@@ -1,10 +0,0 @@
|
|
1
|
-
if defined?(Authlogic)
|
2
|
-
module Authlogic::ActsAsAuthentic::MagicColumns::Methods
|
3
|
-
def self.included(model)
|
4
|
-
# automatically activate the account
|
5
|
-
model.class_eval do
|
6
|
-
before_save { |record| record.active = true if record.methods_include?(:active) }
|
7
|
-
end
|
8
|
-
end
|
9
|
-
end
|
10
|
-
end
|
File without changes
|
File without changes
|
@@ -1,78 +0,0 @@
|
|
1
|
-
# Defines the stratagem namespace attached to the model
|
2
|
-
module Stratagem::ApplicationExtensions::Models
|
3
|
-
ValidatorDefinition = Struct.new(:validation, :field, :args, :model_class)
|
4
|
-
|
5
|
-
class InstanceAnnotations
|
6
|
-
include Mocking
|
7
|
-
|
8
|
-
def initialize(object)
|
9
|
-
@object = object
|
10
|
-
end
|
11
|
-
|
12
|
-
def method_missing(method, *args, &block)
|
13
|
-
@object.class.stratagem.send(method, *args, &block)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
class Annotations
|
18
|
-
include Metadata
|
19
|
-
include Tracing
|
20
|
-
|
21
|
-
attr_reader :model
|
22
|
-
|
23
|
-
AdapterDescriptor = Struct.new(:tracing, :metadata, :detector)
|
24
|
-
|
25
|
-
class << self
|
26
|
-
def configure(model)
|
27
|
-
puts "configuring #{model.name}"
|
28
|
-
|
29
|
-
# add the stratagem namespace
|
30
|
-
model.class_eval do
|
31
|
-
def self.stratagem
|
32
|
-
# one stratagem instance per subclass
|
33
|
-
@@stratagem ||= {}
|
34
|
-
@@stratagem[self] ||= Stratagem::ApplicationExtensions::Models::Annotations.new(self)
|
35
|
-
end
|
36
|
-
|
37
|
-
|
38
|
-
def stratagem
|
39
|
-
@stratagem ||= Stratagem::ApplicationExtensions::Models::InstanceAnnotations.new(self)
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
# connect the adapters
|
44
|
-
detect_adapters(model).each {|adapter|
|
45
|
-
if adapter.detector.supports?(model)
|
46
|
-
model.send(:include, adapter.tracing)
|
47
|
-
end
|
48
|
-
}
|
49
|
-
end
|
50
|
-
|
51
|
-
def detect_adapters(model)
|
52
|
-
Detect.subclasses.map do |detector|
|
53
|
-
namespace = detector.name.split('::')
|
54
|
-
namespace.pop
|
55
|
-
namespace = namespace.join('::')
|
56
|
-
|
57
|
-
tracing = module_eval(namespace+"::Tracing")
|
58
|
-
metadata = module_eval(namespace+"::Metadata").new(model)
|
59
|
-
|
60
|
-
AdapterDescriptor.new(tracing, metadata, detector)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
def initialize(model)
|
66
|
-
puts "initializing stratagem for #{model.name}"
|
67
|
-
@model = model
|
68
|
-
end
|
69
|
-
|
70
|
-
def adapters
|
71
|
-
# supported adapters may change throughout the lifecycle of a class / object
|
72
|
-
@adapters ||= self.class.detect_adapters(model)
|
73
|
-
end
|
74
|
-
|
75
|
-
|
76
|
-
end
|
77
|
-
|
78
|
-
end
|