Class: Scaffoldhub::ScaffoldSpec

Inherits:
RemoteFile show all
Defined in:
lib/scaffoldhub/scaffold_spec.rb

Instance Method Summary collapse

Methods inherited from RemoteFile

#exists?, #http_request, #remote_file_contents!

Constructor Details

#initialize(scaffold, local, status_proc) ⇒ ScaffoldSpec

Returns a new instance of ScaffoldSpec.



4
5
6
7
8
9
# File 'lib/scaffoldhub/scaffold_spec.rb', line 4

def initialize(scaffold, local, status_proc)
  @scaffold    = scaffold
  @local       = local
  @status_proc = status_proc
  super(url, @status_proc)
end

Instance Method Details

#base_urlObject



60
61
62
63
64
65
66
# File 'lib/scaffoldhub/scaffold_spec.rb', line 60

def base_url
  if @local
    File.dirname(File.expand_path(@scaffold))
  else
    @spec[:base_url]
  end
end

#blog_postObject



68
69
70
71
72
73
74
# File 'lib/scaffoldhub/scaffold_spec.rb', line 68

def blog_post
  if @local
    Specification.blog_post
  else
    @spec[:blog_post]
  end
end

#download_and_parse!Object



11
12
13
14
15
16
17
# File 'lib/scaffoldhub/scaffold_spec.rb', line 11

def download_and_parse!
  if @local
    parse_local
  else
    parse_remote!
  end
end

#find_file(type) ⇒ Object



25
26
27
28
29
30
# File 'lib/scaffoldhub/scaffold_spec.rb', line 25

def find_file(type)
  file_spec = template_file_specs.detect { |file_spec| file_spec[:type].to_sym == type }
  unless file_spec.nil?
    TemplateFile.new file_spec[:src], file_spec[:dest], file_spec[:rename], @local, base_url, @status_proc
  end
end

#gemsObject



76
77
78
79
80
81
82
# File 'lib/scaffoldhub/scaffold_spec.rb', line 76

def gems
  if @local
    Specification.gems
  else
    YAML::load(@spec[:gems])
  end
end

#parameter_exampleObject



92
93
94
95
96
97
98
# File 'lib/scaffoldhub/scaffold_spec.rb', line 92

def parameter_example
  if @local
    Specification.parameter_example
  else
    @spec[:parameter_example]
  end
end

#parse_localObject



32
33
34
35
36
37
38
# File 'lib/scaffoldhub/scaffold_spec.rb', line 32

def parse_local
  if File.exists?(@scaffold)
    eval(File.read(@scaffold))
  else
    raise Errno::ENOENT.new(@scaffold)
  end
end

#parse_remote!Object



40
41
42
# File 'lib/scaffoldhub/scaffold_spec.rb', line 40

def parse_remote!
  @spec = YAML::load(remote_file_contents!)
end

#post_install_messageObject



84
85
86
87
88
89
90
# File 'lib/scaffoldhub/scaffold_spec.rb', line 84

def post_install_message
  if @local
    Specification.post_install_message
  else
    @spec[:post_install_message]
  end
end

#select_files(type) ⇒ Object



19
20
21
22
23
# File 'lib/scaffoldhub/scaffold_spec.rb', line 19

def select_files(type)
  template_file_specs.select { |file_spec| file_spec[:type].to_sym == type }.collect do |file_spec|
    TemplateFile.new file_spec[:src], file_spec[:dest], file_spec[:rename], @local, base_url, @status_proc
  end
end

#template_file_specsObject



44
45
46
47
48
49
50
# File 'lib/scaffoldhub/scaffold_spec.rb', line 44

def template_file_specs
  if @local
    Specification.files
  else
    @spec[:files]
  end
end

#to_yamlObject



100
101
102
# File 'lib/scaffoldhub/scaffold_spec.rb', line 100

def to_yaml
  Specification.to_yaml if @local
end

#urlObject



52
53
54
55
56
57
58
# File 'lib/scaffoldhub/scaffold_spec.rb', line 52

def url
  if @local
    @scaffold
  else
    "http://#{SCAFFOLD_HUB_SERVER}/scaffolds/#{@scaffold}/spec"
  end
end