topoisomerase 0.1.3 → 0.1.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 3d6fbc0409b85e6fee55102846a9ac377c227aa6
4
- data.tar.gz: 544470dcb10e26a5575207c38bbeb1e17b955976
2
+ SHA256:
3
+ metadata.gz: 6e8aefd45f9a9034ca6fbf4f92916af9ffa16d01b78233fba93d20aaea883e13
4
+ data.tar.gz: fb2b497e2033f2ee9dfd6ebd2610a8370409587f28aac8e103e479ec2267daf5
5
5
  SHA512:
6
- metadata.gz: 6a2499fe4dd9e2ebb2d406edd7781e325c83f35b1c9e360f7bbd6bcf79c06f6c2654192a853f2a919f31129c4da5265bdabe258abf181d63e307af745fed9fa4
7
- data.tar.gz: dbb63522e85182c36dd0f79ff7bc40439348eb81dd35ea4ddd6c7b08362facb41a8caf2b02a97e0527561f2fbc34bd8f3689eee7cd71e10a10a0f1091b3eb30a
6
+ metadata.gz: 789c48ecd3772e93249f6d2c58baf251ed5d55f6e783c2cd8ac588482bb5e85a719beafb9c6d54476a24b6534e004525affffedeee8e005e3d2d2806b678b27a
7
+ data.tar.gz: 0a43d3a013b4814c896410f6fc29bc363ba9f2e7381b1eff89adb5154038796da8cd5526cb9defac1c66430680a364e13e009063500aadc7266c131d82ac0684
@@ -3,6 +3,7 @@ require 'method_source'
3
3
  require 'fileutils'
4
4
  require 'topoisomerase/core_ext/string'
5
5
  require 'topoisomerase/comments'
6
+ require 'rubocop'
6
7
 
7
8
  # Module for parsing and creating stubs for dynamic methods
8
9
  module Topoisomerase
@@ -67,15 +68,15 @@ module Topoisomerase
67
68
 
68
69
  # Reads from 'comments_added' variable if no comment added above dynamic method
69
70
  # @return [String] Comment defined by 'comments_added'
70
- def comment_for(method_to_stub, method_data)
71
+ def comment_for(stub_method, method_data)
71
72
  return extracted_comment(method_data) unless comments_added[@inheriting_class]
72
73
 
73
- method_to_stub = method_to_stub.to_s
74
+ stub_method = stub_method.to_s
74
75
  comments_added[@inheriting_class].each do |comment_matcher|
75
76
  matchers = comment_matcher[:matchers]
76
77
  return ERB.new(comment_matcher[:message]).result(binding) if matchers.all? do |matcher_type, matcher_value|
77
78
  extracted_match = case matcher_type
78
- when :method_name then match?(method_to_stub, matcher_value)
79
+ when :method_name then match?(stub_method, matcher_value)
79
80
  when :source then match? method_data[:source], matcher_value
80
81
  else
81
82
  raise Topoisomerase::Error, "Undefined matcher #{matcher_type}"
@@ -100,8 +101,8 @@ module Topoisomerase
100
101
  puts "Creating stubs for #{class_name} at #{filename}"
101
102
  FileUtils.mkdir_p File.dirname(filename)
102
103
  IO.write filename, ERB.new(File.read(template)).result(binding)
103
- require 'rubocop'
104
- RuboCop::CLI.new.run(['-a', filename, '-f', 'q', '-o', 'stub_log'])
104
+ RuboCop::CLI.new.run(['-a', filename, '-o', 'stub_log'])
105
+ FileUtils.rm 'stub_log' # TODO: Should be a way of not producing this in first place
105
106
  end
106
107
 
107
108
  # Create stub files for each class that inherits from passed in class
@@ -6,42 +6,52 @@ require 'topoisomerase'
6
6
  #
7
7
  # Topoisomerase.comments_added[PageObject] = [
8
8
  # {
9
- # message: "@return [PageObject::Elements::Element] An object representing the '<%= method_to_stub.to_s.gsub('_element', '') %>' element",
9
+ # message: "@return [PageObject::Elements::Element] An object representing the '<%= stub_method.gsub('_element', '') %>' element",
10
10
  # matchers: { method_name: /_element$/ } # If either matcher matches, result returned
11
11
  # },
12
12
  # {
13
- # message: "@return [Boolean] Whether the '<%= method_to_stub.to_s.gsub('?', '') %>' element is present",
13
+ # message: "@return [Boolean] Whether the '<%= stub_method.gsub('?', '') %>' element is present",
14
14
  # matchers: { method_name: /\?$/ }
15
15
  # },
16
16
  # # Testing whether 2 matchers use AND
17
17
  # {
18
- # message: "Set the text of the '<%= method_to_stub.to_s.gsub('?', '') %>' text field\n # @param [String] _value Value to set",
18
+ # message: "Set the text of the '<%= stub_method.gsub('?', '') %>' text field\n # @param [String] _value Value to set",
19
19
  # matchers: { method_name: /=$/, source: /text_field_value_set/ }
20
20
  # },
21
21
  # {
22
- # message: "Set the value of '<%= method_to_stub.to_s.gsub('?', '') %>' element\n # @param [String] _value Value to set",
22
+ # message: "Set the value of '<%= stub_method.gsub('?', '') %>' element\n # @param [String] _value Value to set",
23
23
  # matchers: { method_name: /=$/ }
24
24
  # },
25
25
  # {
26
- # message: "@return [String] The text of the '<%= method_to_stub.to_s.gsub('?', '') %>' element",
26
+ # message: "@return [String] The text of the '<%= stub_method.gsub('?', '') %>' element",
27
27
  # matchers: { source: /\.text/ }
28
28
  # },
29
29
  # {
30
- # message: "Click the '<%= method_to_stub.to_s.gsub('?', '') %>' element",
30
+ # message: "Click the '<%= stub_method.gsub('?', '') %>' element",
31
31
  # matchers: { source: /\.click/ }
32
32
  # }
33
33
  # ]
34
34
 
35
-
36
- # message: "@return [Watir::Elements::Element] An object representing the '<%= method_to_stub.to_s.gsub('_element', '') %>' element",
37
- # matchers: { method_name: /_element$/ } # If either matcher matches, result returned
38
- # },
39
-
40
35
  Topoisomerase::Comments.add_for_class PageObject do
41
36
  comment "Url of the page. Used by 'goto' method and when using 'visit'", method_name: 'page_url_value'
42
37
  comment 'Open the page on the browser', method_name: 'goto'
43
- comment "@return [PageObject::Elements::Element] An object representing the '<%= method_to_stub.to_s.gsub('_element', '') %>' element",
38
+ comment "@return [PageObject::Elements::Element] An object representing the '<%= stub_method.gsub('_element', '') %>' element",
44
39
  method_name: /_element$/
40
+ comment "Set the text of the '<%= stub_method.gsub('=', '') %>' text field\n # @param [String] _value Value to set",
41
+ method_name: /=$/, source: /text_field_value_set/
42
+ comment "Set the value of '<%= stub_method.gsub('=', '') %>' element\n # @param [String] _value Value to set",
43
+ method_name: /=$/
44
+ comment "Check the '<%= stub_method.gsub('check', '') %>' checkbox element", method_name: /^check_/
45
+ comment "uncheck the '<%= stub_method.gsub('uncheck', '') %>' checkbox element", method_name: /^uncheck_/
46
+ comment "@returns [Boolean] Whether the '<%= stub_method.gsub('_checked?', '') %>' Checkbox is checked",
47
+ method_name: /_checked\?$/
48
+ comment "Selects the '<%= stub_method.gsub('select', '') %>' radio element", method_name: /^select_/
49
+ comment "Clears the selected '<%= stub_method.gsub('clear_', '') %>' radio element", method_name: /^clear_/
50
+ comment "@returns [Boolean] Whether the '<%= stub_method.gsub('_selected?', '') %>' radiobox is selected",
51
+ method_name: /_selected\?$/
52
+ comment "@return [Boolean] Whether the '<%= stub_method.gsub('?', '') %>' element is present",
53
+ method_name: /\?$/
54
+
45
55
  end
46
56
 
47
57
  # This block demonstrates how a real browser could be used to create stubs.
@@ -1,4 +1,4 @@
1
1
  module Topoisomerase
2
2
  # @return [String] Version of the gem
3
- VERSION = '0.1.3'.freeze
3
+ VERSION = '0.1.5'.freeze
4
4
  end
@@ -37,6 +37,7 @@ Gem::Specification.new do |spec|
37
37
  spec.add_dependency 'rubocop' # Clean up generated files
38
38
  spec.add_development_dependency 'bundler', '~> 2.0'
39
39
  spec.add_development_dependency 'page-object'
40
+ spec.add_development_dependency 'ffi'
40
41
  spec.add_development_dependency 'rake'
41
42
  spec.add_development_dependency 'rspec', '~> 3.0'
42
43
  spec.add_development_dependency 'webdrivers' # Only used for testing page-object gem
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: topoisomerase
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Garratt
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-16 00:00:00.000000000 Z
11
+ date: 2019-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: method_source
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: ffi
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: rake
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -174,7 +188,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
174
188
  version: '0'
175
189
  requirements: []
176
190
  rubyforge_project:
177
- rubygems_version: 2.6.14
191
+ rubygems_version: 2.7.9
178
192
  signing_key:
179
193
  specification_version: 4
180
194
  summary: Used to create stubs for documenting dynamic Ruby methods.