Class: Scaffolding

Inherits:
Thor::Group
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/scaffolding/scaffolding.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#uses=(value) ⇒ Object (writeonly)

Sets the attribute uses

Parameters:

  • value

    the value to set the attribute uses to.



14
15
16
# File 'lib/scaffolding/scaffolding.rb', line 14

def uses=(value)
  @uses = value
end

Class Method Details

.source_rootObject



16
17
18
# File 'lib/scaffolding/scaffolding.rb', line 16

def self.source_root
  "#{File.dirname(__FILE__)}/templates"
end

Instance Method Details

#automation_typeObject



77
78
79
# File 'lib/scaffolding/scaffolding.rb', line 77

def automation_type
  ScaffoldProjectDetector.detect_automation
end

#class_nameObject

— Template helpers (available in .tt files) —



53
54
55
# File 'lib/scaffolding/scaffolding.rb', line 53

def class_name
  NameNormalizer.to_class_name(name)
end

#default_path(standard_path, file_type) ⇒ Object



101
102
103
# File 'lib/scaffolding/scaffolding.rb', line 101

def default_path(standard_path, file_type)
  path ? "#{path}/#{normalized_name}#{file_type}" : standard_path
end

#framework_typeObject



81
82
83
# File 'lib/scaffolding/scaffolding.rb', line 81

def framework_type
  ScaffoldProjectDetector.detect_framework
end

#generate_componentObject



42
43
44
# File 'lib/scaffolding/scaffolding.rb', line 42

def generate_component
  template('component.tt', default_path("page_objects/components/#{normalized_name}.rb", '.rb'))
end

#generate_configObject



46
47
48
49
# File 'lib/scaffolding/scaffolding.rb', line 46

def generate_config
  template('../../generators/templates/common/config.tt',
           default_path('config/config.yml', '.yml'))
end

#generate_featureObject



26
27
28
# File 'lib/scaffolding/scaffolding.rb', line 26

def generate_feature
  template('feature.tt', default_path("features/#{normalized_name}.feature", '.feature'))
end

#generate_helperObject



34
35
36
# File 'lib/scaffolding/scaffolding.rb', line 34

def generate_helper
  template('helper.tt', default_path("helpers/#{normalized_name}_helper.rb", '_helper.rb'))
end

#generate_pageObject

— Generation methods —



22
23
24
# File 'lib/scaffolding/scaffolding.rb', line 22

def generate_page
  template('page_object.tt', default_path("page_objects/pages/#{normalized_name}.rb", '_page.rb'))
end

#generate_specObject



30
31
32
# File 'lib/scaffolding/scaffolding.rb', line 30

def generate_spec
  template('spec.tt', default_path("spec/#{normalized_name}_page_spec.rb", '_spec.rb'))
end

#generate_stepsObject



38
39
40
# File 'lib/scaffolding/scaffolding.rb', line 38

def generate_steps
  template('steps.tt', default_path("features/step_definitions/#{normalized_name}_steps.rb", '_steps.rb'))
end

#leaf_nameObject



73
74
75
# File 'lib/scaffolding/scaffolding.rb', line 73

def leaf_name
  NameNormalizer.leaf_name(name)
end

#module_partsObject



69
70
71
# File 'lib/scaffolding/scaffolding.rb', line 69

def module_parts
  NameNormalizer.module_parts(name)
end

#nested?Boolean

Returns:

  • (Boolean)


65
66
67
# File 'lib/scaffolding/scaffolding.rb', line 65

def nested?
  NameNormalizer.nested?(name)
end

#normalized_nameObject



61
62
63
# File 'lib/scaffolding/scaffolding.rb', line 61

def normalized_name
  NameNormalizer.normalize(name)
end

#page_class_nameObject



57
58
59
# File 'lib/scaffolding/scaffolding.rb', line 57

def page_class_name
  NameNormalizer.to_page_class(name)
end

#project_configObject



85
86
87
# File 'lib/scaffolding/scaffolding.rb', line 85

def project_config
  ScaffoldProjectDetector.config
end

#selenium?Boolean

Returns:

  • (Boolean)


89
90
91
# File 'lib/scaffolding/scaffolding.rb', line 89

def selenium?
  automation_type == 'selenium'
end

#uses_listObject



97
98
99
# File 'lib/scaffolding/scaffolding.rb', line 97

def uses_list
  Array(@uses).reject(&:empty?)
end

#watir?Boolean

Returns:

  • (Boolean)


93
94
95
# File 'lib/scaffolding/scaffolding.rb', line 93

def watir?
  automation_type == 'watir'
end