Class: Prick::Feature
Instance Attribute Summary
Attributes inherited from Build
#database, #migration, #project, #schema, #version
Instance Method Summary collapse
- #checkout ⇒ Object
- #create ⇒ Object
-
#feature ⇒ Object
Name of feature.
-
#initialize(project, base_release, name) ⇒ Feature
constructor
A new instance of Feature.
-
#node ⇒ Object
A feature’s node is the feature directory.
- #rebase(new_base_release) ⇒ Object
- #release_dir ⇒ Object
Methods inherited from Build
#<=>, #active?, #base_release, #build, #built?, #checkback, deref_node_file, #destroy, #exist?, #features, #history, #include_feature, #name, #present?, #rebuild, #remove_feature, #snapshot, #to_s
Methods included from Ensure
#ensure_state, #ensure_state_value, #revoke_state
Constructor Details
#initialize(project, base_release, name) ⇒ Feature
Returns a new instance of Feature.
325 326 327 328 329 330 331 |
# File 'lib/prick/build.rb', line 325 def initialize(project, base_release, name) base_release.is_a?(Release) || base_release.is_a?(Prerelease) or raise Internal, "Expected a Release object, got #{base_release.class}" version = Version.new(base_release.version, feature: name) migration = FeatureMigration.new(Migration.path(version)) super(project, base_release, version, migration) end |
Instance Method Details
#checkout ⇒ Object
333 334 335 336 |
# File 'lib/prick/build.rb', line 333 def checkout() super # FileUtils.ln_sf(feature, "feature") end |
#create ⇒ Object
338 339 340 341 342 343 344 345 |
# File 'lib/prick/build.rb', line 338 def create super migration.create migration.prepare Git.commit("Created feature #{feature}") migration.dump self end |
#feature ⇒ Object
Name of feature
318 |
# File 'lib/prick/build.rb', line 318 def feature() version.feature end |
#node ⇒ Object
A feature’s node is the feature directory
321 |
# File 'lib/prick/build.rb', line 321 def node() release_dir end |
#rebase(new_base_release) ⇒ Object
360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 |
# File 'lib/prick/build.rb', line 360 def rebase(new_base_release) # Checkout new_base_release # Merge feature # Establish symlinks # Create as branch # new_base > base_release or # raise Error, "Can't rebase from #{base_release.version} to #{new_base.version}" # new_feature = Feature.new(project, base_release, base.version, base: base) # new_feature.ensure(:active) # schema.version = version # FileUtils.ln_sf("../#{feature.release_dir}", new_feature.release_dir) # Git.add(new_feature.release_dir) # new_feature end |
#release_dir ⇒ Object
323 |
# File 'lib/prick/build.rb', line 323 def release_dir() migration.path end |