golden_silk 0.0.1 → 0.0.2.pumpkin
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.
- checksums.yaml +4 -4
 - data/.ruby-gemset +1 -0
 - data/.ruby-version +1 -0
 - data/bin/golden_silk +6 -0
 - data/golden_silk.gemspec +5 -1
 - data/lib/golden_silk.rb +5 -4
 - data/lib/golden_silk/result/diff.rb +27 -0
 - data/lib/golden_silk/result/no_effect.rb +15 -0
 - data/lib/golden_silk/spinner.rb +95 -0
 - data/lib/golden_silk/step/click.rb +20 -0
 - data/lib/golden_silk/step/visit.rb +19 -0
 - data/lib/golden_silk/version.rb +1 -1
 - metadata +65 -14
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 837c3ae481ed052bf24042cdcf26a3bdfd77663e
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: b713946e8d511a9dd69c260d98f90b54e6f05515
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 208a5e692b053e186b3fbb2a6449a61d654cc2eb7c47a6152a39a1b7f9093ffa3d2e922caf5eec89c09bfbec6029e16c4728c058c5797ca29ebfae70a2d72786
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: fdda1169f15bf9cdc75ae3daafc74274cc2fc5c4b0148de1aa7b702273e3f9953c757a65026d759148b0e5130b2bd16e83f8f78709ba8b3df3f23f281231d460
         
     | 
    
        data/.ruby-gemset
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            golden_silk
         
     | 
    
        data/.ruby-version
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ruby-2.1.5
         
     | 
    
        data/bin/golden_silk
    ADDED
    
    
    
        data/golden_silk.gemspec
    CHANGED
    
    | 
         @@ -17,6 +17,10 @@ Gem::Specification.new do |spec| 
     | 
|
| 
       17 
17 
     | 
    
         
             
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         
     | 
| 
       18 
18 
     | 
    
         
             
              spec.require_paths = ["lib"]
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
      
 20 
     | 
    
         
            +
              spec.add_dependency "capybara", "~> 2.4.4"
         
     | 
| 
      
 21 
     | 
    
         
            +
              spec.add_dependency "capybara-webkit", "~> 1.4.1"
         
     | 
| 
      
 22 
     | 
    
         
            +
              spec.add_dependency "diffy"
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
       20 
24 
     | 
    
         
             
              spec.add_development_dependency "bundler", "~> 1.6"
         
     | 
| 
       21 
     | 
    
         
            -
              spec.add_development_dependency "rake"
         
     | 
| 
      
 25 
     | 
    
         
            +
              spec.add_development_dependency "rake",    "~> 10.4.2"
         
     | 
| 
       22 
26 
     | 
    
         
             
            end
         
     | 
    
        data/lib/golden_silk.rb
    CHANGED
    
    | 
         @@ -1,5 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require "golden_silk/version"
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
      
 2 
     | 
    
         
            +
            require "golden_silk/spinner"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "golden_silk/result/diff"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "golden_silk/result/no_effect"
         
     | 
| 
      
 5 
     | 
    
         
            +
            require "golden_silk/step/click"
         
     | 
| 
      
 6 
     | 
    
         
            +
            require "golden_silk/step/visit"
         
     | 
| 
         @@ -0,0 +1,27 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module GoldenSilk
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Result
         
     | 
| 
      
 3 
     | 
    
         
            +
                class Diff
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def initialize(options = {})
         
     | 
| 
      
 5 
     | 
    
         
            +
                    @steps = options[:steps]
         
     | 
| 
      
 6 
     | 
    
         
            +
                    @diff  = options[:diff]
         
     | 
| 
      
 7 
     | 
    
         
            +
                  end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  def to_s
         
     | 
| 
      
 10 
     | 
    
         
            +
                    s = "Steps:\n"
         
     | 
| 
      
 11 
     | 
    
         
            +
                    s << @steps.join("\n") + "\n"
         
     | 
| 
      
 12 
     | 
    
         
            +
                    s << "Diff:\n"
         
     | 
| 
      
 13 
     | 
    
         
            +
                    in_diff = true
         
     | 
| 
      
 14 
     | 
    
         
            +
                    @diff.split("\n").each do |line|
         
     | 
| 
      
 15 
     | 
    
         
            +
                      if line.match(/^ /) && in_diff
         
     | 
| 
      
 16 
     | 
    
         
            +
                        in_diff = false
         
     | 
| 
      
 17 
     | 
    
         
            +
                        s << "  ...\n"
         
     | 
| 
      
 18 
     | 
    
         
            +
                      elsif !line.match(/^ /)
         
     | 
| 
      
 19 
     | 
    
         
            +
                        in_diff = true
         
     | 
| 
      
 20 
     | 
    
         
            +
                        s << "  " + line + "\n"
         
     | 
| 
      
 21 
     | 
    
         
            +
                      end
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
                    s
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
              end
         
     | 
| 
      
 27 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,95 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'capybara/dsl'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'capybara/webkit'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'diffy'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            module GoldenSilk
         
     | 
| 
      
 6 
     | 
    
         
            +
              class Spinner
         
     | 
| 
      
 7 
     | 
    
         
            +
                include Capybara::DSL
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                # TODO: configurable depth
         
     | 
| 
      
 10 
     | 
    
         
            +
                MAX_DEPTH = 3
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                # TODO: configurable capybara driver
         
     | 
| 
      
 13 
     | 
    
         
            +
                Capybara.default_driver = :webkit
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                Diffy::Diff.default_format = :text
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def initialize(root_url)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  @root_url = root_url
         
     | 
| 
      
 19 
     | 
    
         
            +
                  # TODO: configurable click selector, take into account disabled states
         
     | 
| 
      
 20 
     | 
    
         
            +
                  @click_selector = 'button, .store-accessory'
         
     | 
| 
      
 21 
     | 
    
         
            +
                  @results = []
         
     | 
| 
      
 22 
     | 
    
         
            +
                  @queue   = []
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                def run
         
     | 
| 
      
 26 
     | 
    
         
            +
                  # TODO: get host from root_url
         
     | 
| 
      
 27 
     | 
    
         
            +
                  page.driver.allow_url("0.0.0.0")
         
     | 
| 
      
 28 
     | 
    
         
            +
                  page.driver.block_unknown_urls
         
     | 
| 
      
 29 
     | 
    
         
            +
             
     | 
| 
      
 30 
     | 
    
         
            +
                  visit @root_url
         
     | 
| 
      
 31 
     | 
    
         
            +
                  # TODO: configurable wait time
         
     | 
| 
      
 32 
     | 
    
         
            +
                  sleep 2
         
     | 
| 
      
 33 
     | 
    
         
            +
                  all(@click_selector).each { |node|
         
     | 
| 
      
 34 
     | 
    
         
            +
                    @queue << [
         
     | 
| 
      
 35 
     | 
    
         
            +
                      Step::Visit.new(url: @root_url, on: self),
         
     | 
| 
      
 36 
     | 
    
         
            +
                      Step::Click.new(xpath: node.path, text: node.text, on: self)
         
     | 
| 
      
 37 
     | 
    
         
            +
                    ]
         
     | 
| 
      
 38 
     | 
    
         
            +
                  }
         
     | 
| 
      
 39 
     | 
    
         
            +
                  stuff(@queue, @results)
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
                  @results.each do |result|
         
     | 
| 
      
 42 
     | 
    
         
            +
                    # TODO: quiet mode (or quiet by default and verbose mode)
         
     | 
| 
      
 43 
     | 
    
         
            +
                    puts "==============="
         
     | 
| 
      
 44 
     | 
    
         
            +
                    puts result
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
             
     | 
| 
      
 48 
     | 
    
         
            +
                private
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
                # TODO: better name, don't take queue/results as arguments
         
     | 
| 
      
 51 
     | 
    
         
            +
                def stuff(queue, results)
         
     | 
| 
      
 52 
     | 
    
         
            +
                  if queue.empty?
         
     | 
| 
      
 53 
     | 
    
         
            +
                    puts "Queue is empty, we're done!"
         
     | 
| 
      
 54 
     | 
    
         
            +
                    return
         
     | 
| 
      
 55 
     | 
    
         
            +
                  end
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                  current_action_set = queue.shift
         
     | 
| 
      
 58 
     | 
    
         
            +
                  depth = current_action_set.length
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                  last_action = current_action_set.pop
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
                  current_action_set.each { |a| a.execute }
         
     | 
| 
      
 63 
     | 
    
         
            +
                  sleep 2
         
     | 
| 
      
 64 
     | 
    
         
            +
                  before_snapshot = html
         
     | 
| 
      
 65 
     | 
    
         
            +
                  last_action.execute
         
     | 
| 
      
 66 
     | 
    
         
            +
                  sleep 2
         
     | 
| 
      
 67 
     | 
    
         
            +
                  after_snapshot = html
         
     | 
| 
      
 68 
     | 
    
         
            +
                  diff = Diffy::Diff.new(before_snapshot, after_snapshot).to_s
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                  if diff.empty?
         
     | 
| 
      
 71 
     | 
    
         
            +
                    puts "No change, adding to results but not queue."
         
     | 
| 
      
 72 
     | 
    
         
            +
                    results << Result::NoEffect.new(steps: current_action_set + [last_action])
         
     | 
| 
      
 73 
     | 
    
         
            +
                  else
         
     | 
| 
      
 74 
     | 
    
         
            +
                    puts "Change, adding to results."
         
     | 
| 
      
 75 
     | 
    
         
            +
                    results << Result::Diff.new(diff: diff, steps: current_action_set + [last_action])
         
     | 
| 
      
 76 
     | 
    
         
            +
             
     | 
| 
      
 77 
     | 
    
         
            +
                    if depth == MAX_DEPTH
         
     | 
| 
      
 78 
     | 
    
         
            +
                      puts "Hit max depth."
         
     | 
| 
      
 79 
     | 
    
         
            +
                    else
         
     | 
| 
      
 80 
     | 
    
         
            +
                      puts "Looking for more steps to take."
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
      
 82 
     | 
    
         
            +
                      all(@click_selector).map { |node|
         
     | 
| 
      
 83 
     | 
    
         
            +
                        queue << current_action_set + [
         
     | 
| 
      
 84 
     | 
    
         
            +
                          last_action,
         
     | 
| 
      
 85 
     | 
    
         
            +
                          Step::Click.new(xpath: node.path, text: node.text, on: self)
         
     | 
| 
      
 86 
     | 
    
         
            +
                        ]
         
     | 
| 
      
 87 
     | 
    
         
            +
                      }
         
     | 
| 
      
 88 
     | 
    
         
            +
                    end
         
     | 
| 
      
 89 
     | 
    
         
            +
                  end
         
     | 
| 
      
 90 
     | 
    
         
            +
             
     | 
| 
      
 91 
     | 
    
         
            +
                  puts "Recursing. Queue length: #{queue.length}, Results length: #{results.length}"
         
     | 
| 
      
 92 
     | 
    
         
            +
                  stuff(queue, results)
         
     | 
| 
      
 93 
     | 
    
         
            +
                end
         
     | 
| 
      
 94 
     | 
    
         
            +
              end
         
     | 
| 
      
 95 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,20 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module GoldenSilk
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Step
         
     | 
| 
      
 3 
     | 
    
         
            +
                class Click
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def initialize(options = {})
         
     | 
| 
      
 5 
     | 
    
         
            +
                    @xpath = options[:xpath]
         
     | 
| 
      
 6 
     | 
    
         
            +
                    @text  = options[:text]
         
     | 
| 
      
 7 
     | 
    
         
            +
                    @object = options[:on]
         
     | 
| 
      
 8 
     | 
    
         
            +
                  end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  def execute
         
     | 
| 
      
 11 
     | 
    
         
            +
                    puts "Following instructions to click #{@text}"
         
     | 
| 
      
 12 
     | 
    
         
            +
                    @object.find(:xpath, @xpath).click
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  def to_s
         
     | 
| 
      
 16 
     | 
    
         
            +
                    "Click #{@text}"
         
     | 
| 
      
 17 
     | 
    
         
            +
                  end
         
     | 
| 
      
 18 
     | 
    
         
            +
                end
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,19 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module GoldenSilk
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Step
         
     | 
| 
      
 3 
     | 
    
         
            +
                class Visit
         
     | 
| 
      
 4 
     | 
    
         
            +
                  def initialize(options = {})
         
     | 
| 
      
 5 
     | 
    
         
            +
                    @url = options[:url]
         
     | 
| 
      
 6 
     | 
    
         
            +
                    @object = options[:on]
         
     | 
| 
      
 7 
     | 
    
         
            +
                  end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                  def execute
         
     | 
| 
      
 10 
     | 
    
         
            +
                    puts "Visiting #{@url}"
         
     | 
| 
      
 11 
     | 
    
         
            +
                    @object.visit @url
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                  def to_s
         
     | 
| 
      
 15 
     | 
    
         
            +
                    "visit '#{@url}'"
         
     | 
| 
      
 16 
     | 
    
         
            +
                  end
         
     | 
| 
      
 17 
     | 
    
         
            +
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
              end
         
     | 
| 
      
 19 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/golden_silk/version.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,57 +1,108 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: golden_silk
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.2.pumpkin
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Carol (Nichols || Goulding)
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date: 2015-03- 
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2015-03-15 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
      
 13 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 14 
     | 
    
         
            +
              name: capybara
         
     | 
| 
      
 15 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 16 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 17 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 18 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 19 
     | 
    
         
            +
                    version: 2.4.4
         
     | 
| 
      
 20 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 21 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 22 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 23 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 24 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 26 
     | 
    
         
            +
                    version: 2.4.4
         
     | 
| 
      
 27 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 28 
     | 
    
         
            +
              name: capybara-webkit
         
     | 
| 
      
 29 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 30 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: 1.4.1
         
     | 
| 
      
 34 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 35 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 36 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 37 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: 1.4.1
         
     | 
| 
      
 41 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 42 
     | 
    
         
            +
              name: diffy
         
     | 
| 
      
 43 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 44 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 45 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 46 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 47 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 48 
     | 
    
         
            +
              type: :runtime
         
     | 
| 
      
 49 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 50 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 51 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 52 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 53 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 54 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
       13 
55 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
56 
     | 
    
         
             
              name: bundler
         
     | 
| 
       15 
57 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
58 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
     | 
    
         
            -
                - - ~>
         
     | 
| 
      
 59 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       18 
60 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
61 
     | 
    
         
             
                    version: '1.6'
         
     | 
| 
       20 
62 
     | 
    
         
             
              type: :development
         
     | 
| 
       21 
63 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
64 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
65 
     | 
    
         
             
                requirements:
         
     | 
| 
       24 
     | 
    
         
            -
                - - ~>
         
     | 
| 
      
 66 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       25 
67 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
68 
     | 
    
         
             
                    version: '1.6'
         
     | 
| 
       27 
69 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       28 
70 
     | 
    
         
             
              name: rake
         
     | 
| 
       29 
71 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       30 
72 
     | 
    
         
             
                requirements:
         
     | 
| 
       31 
     | 
    
         
            -
                - -  
     | 
| 
      
 73 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       32 
74 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       33 
     | 
    
         
            -
                    version:  
     | 
| 
      
 75 
     | 
    
         
            +
                    version: 10.4.2
         
     | 
| 
       34 
76 
     | 
    
         
             
              type: :development
         
     | 
| 
       35 
77 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       36 
78 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       37 
79 
     | 
    
         
             
                requirements:
         
     | 
| 
       38 
     | 
    
         
            -
                - -  
     | 
| 
      
 80 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
       39 
81 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       40 
     | 
    
         
            -
                    version:  
     | 
| 
      
 82 
     | 
    
         
            +
                    version: 10.4.2
         
     | 
| 
       41 
83 
     | 
    
         
             
            description: 
         
     | 
| 
       42 
84 
     | 
    
         
             
            email:
         
     | 
| 
       43 
85 
     | 
    
         
             
            - carol.nichols@gmail.com
         
     | 
| 
       44 
     | 
    
         
            -
            executables: 
     | 
| 
      
 86 
     | 
    
         
            +
            executables:
         
     | 
| 
      
 87 
     | 
    
         
            +
            - golden_silk
         
     | 
| 
       45 
88 
     | 
    
         
             
            extensions: []
         
     | 
| 
       46 
89 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
       47 
90 
     | 
    
         
             
            files:
         
     | 
| 
       48 
     | 
    
         
            -
            - .gitignore
         
     | 
| 
      
 91 
     | 
    
         
            +
            - ".gitignore"
         
     | 
| 
      
 92 
     | 
    
         
            +
            - ".ruby-gemset"
         
     | 
| 
      
 93 
     | 
    
         
            +
            - ".ruby-version"
         
     | 
| 
       49 
94 
     | 
    
         
             
            - Gemfile
         
     | 
| 
       50 
95 
     | 
    
         
             
            - LICENSE.txt
         
     | 
| 
       51 
96 
     | 
    
         
             
            - README.md
         
     | 
| 
       52 
97 
     | 
    
         
             
            - Rakefile
         
     | 
| 
      
 98 
     | 
    
         
            +
            - bin/golden_silk
         
     | 
| 
       53 
99 
     | 
    
         
             
            - golden_silk.gemspec
         
     | 
| 
       54 
100 
     | 
    
         
             
            - lib/golden_silk.rb
         
     | 
| 
      
 101 
     | 
    
         
            +
            - lib/golden_silk/result/diff.rb
         
     | 
| 
      
 102 
     | 
    
         
            +
            - lib/golden_silk/result/no_effect.rb
         
     | 
| 
      
 103 
     | 
    
         
            +
            - lib/golden_silk/spinner.rb
         
     | 
| 
      
 104 
     | 
    
         
            +
            - lib/golden_silk/step/click.rb
         
     | 
| 
      
 105 
     | 
    
         
            +
            - lib/golden_silk/step/visit.rb
         
     | 
| 
       55 
106 
     | 
    
         
             
            - lib/golden_silk/version.rb
         
     | 
| 
       56 
107 
     | 
    
         
             
            homepage: https://github.com/carols10cents/golden_silk
         
     | 
| 
       57 
108 
     | 
    
         
             
            licenses:
         
     | 
| 
         @@ -63,17 +114,17 @@ require_paths: 
     | 
|
| 
       63 
114 
     | 
    
         
             
            - lib
         
     | 
| 
       64 
115 
     | 
    
         
             
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
       65 
116 
     | 
    
         
             
              requirements:
         
     | 
| 
       66 
     | 
    
         
            -
              - -  
     | 
| 
      
 117 
     | 
    
         
            +
              - - ">="
         
     | 
| 
       67 
118 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       68 
119 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       69 
120 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
       70 
121 
     | 
    
         
             
              requirements:
         
     | 
| 
       71 
     | 
    
         
            -
              - -  
     | 
| 
      
 122 
     | 
    
         
            +
              - - ">"
         
     | 
| 
       72 
123 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       73 
     | 
    
         
            -
                  version:  
     | 
| 
      
 124 
     | 
    
         
            +
                  version: 1.3.1
         
     | 
| 
       74 
125 
     | 
    
         
             
            requirements: []
         
     | 
| 
       75 
126 
     | 
    
         
             
            rubyforge_project: 
         
     | 
| 
       76 
     | 
    
         
            -
            rubygems_version: 2. 
     | 
| 
      
 127 
     | 
    
         
            +
            rubygems_version: 2.4.3
         
     | 
| 
       77 
128 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       78 
129 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       79 
130 
     | 
    
         
             
            summary: Crawl your site to generate golden master tests.
         
     |