Module: Stratagem

Defined in:
lib/stratagem.rb,
lib/stratagem/client.rb,
lib/stratagem/logger.rb,
lib/stratagem/scanner.rb,
lib/stratagem/snapshot.rb,
lib/stratagem/site_crawler.rb,
lib/stratagem/model_builder.rb,
lib/stratagem/authentication.rb,
lib/generators/stratagem/install/install_base.rb,
lib/generators/stratagem/install/install_generator.rb

Defined Under Namespace

Modules: ApplicationExtensions, AutoMock, Command, Commands, Crawler, Generators, Model, Scan Classes: Authentication, Client, InstallGenerator, Logger, ModelBuilder, Scanner, SiteCrawler, Snapshot

Class Method Summary collapse

Class Method Details

.analyzeObject



78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
# File 'lib/stratagem.rb', line 78

def analyze
  unless (@@running)
    @@running = true
    Thread.new {
      begin
        # RubyProf.start

        authentication = Stratagem::Authentication.instance
        snapshot = Stratagem::Snapshot.create(authentication.project)
        Stratagem::Client.new(authentication).send(snapshot)

        # result = RubyProf.stop
        # 
        # # Print a flat profile to text
        # printer = RubyProf::FlatPrinter.new(result)
        # printer.print(STDOUT, 0)
      rescue
        puts $!.message
        puts $!.backtrace
      ensure
        complete
      end
    }
  end
end

.completeObject



74
75
76
# File 'lib/stratagem.rb', line 74

def complete
  @@blocker.notify
end

.domainObject



66
67
68
# File 'lib/stratagem.rb', line 66

def domain
  ENV['STRATAGEM_HOST'] || 'stratagemapp.com'
end

.initObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/stratagem.rb', line 12

def init
  require 'haml'
  require 'launchy'
  require 'redparse'
  require 'stratagem/blocker'
  require 'stratagem/logger'
  require 'stratagem/extensions'
  require 'stratagem/framework_extensions'

  require 'stratagem/model'
  require 'stratagem/auto_mock'

  require 'stratagem/authentication'
  require 'stratagem/client'
  require 'stratagem/command'
  require 'stratagem/model_builder'
  require 'stratagem/scanner'
  require 'stratagem/scan'
  require 'stratagem/crawler'
  require 'stratagem/site_crawler'
  require 'stratagem/snapshot'

  require 'stratagem/commands'

  @@blocker = Blocker.new
  @@running = false
  @@session_id = Time.now.to_f.to_s # the interface uses this to determine which instance of the client it's talking to
end

.loggerObject



62
63
64
# File 'lib/stratagem.rb', line 62

def logger
  Stratagem::Logger.instance
end

.rails_2?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/stratagem.rb', line 54

def rails_2?
  rails_version.between?(200, 299)
end

.rails_3?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/stratagem.rb', line 50

def rails_3?
  rails_version.between?(300, 399)
end

.rails_versionObject



41
42
43
44
45
46
47
48
# File 'lib/stratagem.rb', line 41

def rails_version
  @@rails_version ||= begin
    rails_version = Rails.version.split('.').map {|v| v.size > 1 ? 9 : v.to_i }
    rails_version << 0 while rails_version.size < 3
    rails_version.pop while rails_version.size > 3
    rails_version.join.to_i
  end
end

.session_idObject



58
59
60
# File 'lib/stratagem.rb', line 58

def session_id
  @@session_id
end

.wait_for_completionObject



70
71
72
# File 'lib/stratagem.rb', line 70

def wait_for_completion
  @@blocker.wait
end